Upload files to "/"

This commit is contained in:
2026-02-20 17:50:40 +00:00
commit 1c20034fb0
31 changed files with 6095 additions and 0 deletions

58
psram_buffer.h Normal file
View File

@@ -0,0 +1,58 @@
// psram_buffer.h - PSRAM-based Ring Buffer for CAN FD Logger
#ifndef PSRAM_BUFFER_H
#define PSRAM_BUFFER_H
#include <Arduino.h>
#include "types.h"
#define PSRAM_CAN_BUFFER_SIZE (512 * 1024)
#define PSRAM_SD_BUFFER_SIZE (16 * 1024)
#define PSRAM_SIGNAL_BUFFER_SIZE (4 * 1024)
#define MAX_PSRAM_CAN_FRAMES (PSRAM_CAN_BUFFER_SIZE / sizeof(CanFrame))
class PSRAMRingBuffer {
public:
PSRAMRingBuffer();
~PSRAMRingBuffer();
bool begin(size_t capacity);
bool push(const CanFrame& frame);
bool pop(CanFrame& frame);
bool peek(CanFrame& frame);
size_t available();
size_t capacity();
size_t freeSpace();
bool isFull();
bool isEmpty();
void clear();
void flush();
CanFrame* getBuffer();
size_t getHead();
size_t getTail();
private:
CanFrame* _buffer;
size_t _capacity;
volatile size_t _head;
volatile size_t _tail;
volatile size_t _count;
SemaphoreHandle_t _mutex;
};
extern PSRAMRingBuffer canFrameBuffer;
bool initPSRAMBuffers();
void deinitPSRAMBuffers();
uint8_t* getSDWriteBuffer();
uint8_t* getSignalBuffer();
size_t getFreePSRAM();
size_t getUsedPSRAM();
size_t getTotalPSRAM();
void printMemoryStatus();
#endif // PSRAM_BUFFER_H