Add aa.ino
This commit is contained in:
57
aa.ino
Normal file
57
aa.ino
Normal file
@@ -0,0 +1,57 @@
|
||||
// PSRAM에 Queue 버퍼 할당
|
||||
uint8_t *canQueueStorage = nullptr;
|
||||
uint8_t *serialQueueStorage = nullptr;
|
||||
StaticQueue_t canQueueBuffer;
|
||||
StaticQueue_t serialQueueBuffer;
|
||||
|
||||
bool allocateQueueBuffers() {
|
||||
// CAN Queue 버퍼 (PSRAM)
|
||||
size_t canQueueSize = CAN_QUEUE_SIZE * sizeof(CANMessage);
|
||||
canQueueStorage = (uint8_t*)heap_caps_malloc(canQueueSize,
|
||||
MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT);
|
||||
|
||||
if (canQueueStorage == nullptr) {
|
||||
Serial.println("✗ CAN Queue 버퍼 할당 실패!");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Serial Queue 버퍼 (PSRAM)
|
||||
size_t serialQueueSize = SERIAL_QUEUE_SIZE * sizeof(SerialMessage);
|
||||
serialQueueStorage = (uint8_t*)heap_caps_malloc(serialQueueSize,
|
||||
MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT);
|
||||
|
||||
if (serialQueueStorage == nullptr) {
|
||||
Serial.println("✗ Serial Queue 버퍼 할당 실패!");
|
||||
heap_caps_free(canQueueStorage);
|
||||
return false;
|
||||
}
|
||||
|
||||
Serial.printf("✓ CAN Queue 버퍼: %.1f KB (PSRAM)\n", canQueueSize / 1024.0);
|
||||
Serial.printf("✓ Serial Queue 버퍼: %.1f KB (PSRAM)\n", serialQueueSize / 1024.0);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Queue 생성 (PSRAM 버퍼 사용)
|
||||
void createQueues() {
|
||||
canQueue = xQueueCreateStatic(
|
||||
CAN_QUEUE_SIZE, // Queue 길이
|
||||
sizeof(CANMessage), // 아이템 크기
|
||||
canQueueStorage, // PSRAM 버퍼
|
||||
&canQueueBuffer // 정적 Queue 구조체
|
||||
);
|
||||
|
||||
serialQueue = xQueueCreateStatic(
|
||||
SERIAL_QUEUE_SIZE,
|
||||
sizeof(SerialMessage),
|
||||
serialQueueStorage,
|
||||
&serialQueueBuffer
|
||||
);
|
||||
|
||||
if (canQueue == NULL || serialQueue == NULL) {
|
||||
Serial.println("✗ Queue 생성 실패!");
|
||||
while (1) delay(1000);
|
||||
}
|
||||
|
||||
Serial.println("✓ Queue 생성 완료 (PSRAM)");
|
||||
}
|
||||
Reference in New Issue
Block a user