C 将对各个数据缓冲区的引用作为成员结构或在函数中定义本地数组?

C 将对各个数据缓冲区的引用作为成员结构或在函数中定义本地数组?,c,embedded,C,Embedded,因此,我试图弄清楚是应该在中断处理程序中分配一个本地缓冲区,还是应该在main中将其定义为静态全局,然后让结构成员的指针指向它 int tx_buffer[10] = {1,2,4}; int rx_buffer[10]; Data data; int main(void) { data.txPtr = tx_buffer; data.rxPtr = rx_buffer; enable_irq(); } void IRQ_Handler(Data *data) { //

因此,我试图弄清楚是应该在中断处理程序中分配一个本地缓冲区,还是应该在
main
中将其定义为静态全局,然后让结构成员的指针指向它

int tx_buffer[10] = {1,2,4};
int rx_buffer[10];
Data data;

int main(void) {
    data.txPtr = tx_buffer;
    data.rxPtr = rx_buffer;
    enable_irq();
}
void IRQ_Handler(Data *data) { // interrupt handler
    transmit_data(data, data->txPr, data->rxPtr);
}
void transmit_data(Data *data, int *tx, int *rx) {
   // ....
}
为此,我想知道确定函数的堆栈使用情况是否有用,看看是否有足够的数据

以下是Eclipse上Stack Analyzer的捕获。我对local/max cost不是很确定——虽然它指的是用法/大小,但IRQ处理程序中单个组件的大小并不匹配


您还可以在IRQ中添加分配示例吗?您还可以在IRQ中添加分配示例吗?