Создайте большой буфер на pic18f с микрочипом c18 компилятор

Используя Микрочип компилятор C18 с pic18f, я хочу создать "большой" буфер 3 000 байтов в пространстве данных программы.

Если я поместил это в основном () (на стеке):

char tab[127];

У меня есть эта ошибка:

Error [1300] stack frame too large

Если я вставил его глобальный, у меня есть эта ошибка:

Error - section '.udata_main.o' can not fit the section. Section '.udata_main.o' length=0x0000007f

Как создать большой буфер? У Вас есть учебное руководство о том, как управлять большим буфером на pic18f с c18?

6
задан acemtp 6 June 2010 в 10:32
поделиться

1 ответ

Вот руководство именно по этому поводу: http://www.dwengo.org/tips-tricks/large-variables

По сути, вы объявляете свою переменную в специальном разделе , и указатель на него в разделе по умолчанию:

  #pragma udata DATA // section DATA
  int large_table[768];

  #pragma udata // return to default section
  int *table_ptr = &large_table[0];

Затем вы обновляете сценарий компоновщика, чтобы определить большой раздел, добавляя что-то вроде этого:

DATABANK   NAME=data      START=0x200          END=0x7FF          PROTECTED
SECTION    NAME=DATA      RAM=data

Обратите внимание, что обычно нет не отображенной памяти, в которой вы можете просто поместите свой раздел DATA, но обычно я предпочитаю использовать буферы USB в первую очередь (если, конечно, вам не нужен USB в том же проекте ...)

2
ответ дан 17 December 2019 в 20:29
поделиться