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