Чтобы поместить ссылки на соответствующие буферы данных в качестве структур-членов ИЛИ вместо этого определить локальные массивы внутри функции? - PullRequest
1 голос
/ 19 июня 2020

Итак, я пытаюсь выяснить, следует ли мне выделять локальный буфер внутри обработчика прерывания или он должен быть определен в main как stati c global, а затем указывать на него указатель члена структуры.

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) {
   // ....
}

Для этого мне было интересно, будет ли полезно определить использование функции в стеке и посмотреть, достаточно ли у меня.

Ниже приведен снимок из Stack Analyzer на Eclipse. Я не уверен в локальной / максимальной стоимости - думал, что это относится к использованию / размеру, но размер отдельного компонента внутри обработчика IRQ не совпадает.

Stack Analyzer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...