реклама на сайте
подробности

 
 
> Blackfin VDSP как разместить массив в scratchpad?, И определить нужный размер стека
uriy
сообщение Mar 4 2016, 07:37
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Есть проект на BF533, из внешней памяти только SPI, внешней SRAM нет.
Весь код выполняется внутри. Поджимает объем памяти данных.
Возникло желание уменьшит стек и затолкать в scratchpad некоторые данные.
Приложена картинка как сейчас поделен scratchpad. Его общий объем 4КБ в моем проце.
Но я не все в этом понимаю.

1. Для чего используется System Heap? Предполагаю что это динамическое выделение памяти для библиотечных
функций. Как узнать использует или нет динамическую память то что я заинклудил?
Сейчас выставлено 512 байт для system heap. При недолгих тестах нарушений в работе устройства не вижу.

2. Для чего используется User Heap? Предполагаю что это область динамической памяти которую я сам могу создать. Мой код не использует динамическое выделение памяти, все статично. Наверно User heap мне не нужен?

Массив пробовал разместить двумя способами:
Код
section ("MyHeap") static uint8_t spi_tx_buffer[SPI_TX_BUFFER_SIZE];
section ("MEM_L1_SCRATCH") static uint8_t spi_tx_buffer[SPI_TX_BUFFER_SIZE];


В обоих случаях вылазит такое:
[Warning li2060] The following input section(s) that contain program code
and/or data have not been placed into the executable for processor 'p0'
as there are no relevant commands specified in the LDF:

.\Debug\spi.doj(MEM_L1_SCRATCH)


[Error li1060] The following symbols are referenced, but not mapped:
'_spi_tx_buffer' referenced from .\Debug\spi.doj(program)


В ldf файле такие секции есть
Код
         MyHeap_space = ldf_heap_end + 4;
         MyHeap_end = (MyHeap_space + (1024 - 4)) & 0xfffffffc;
         MyHeap_length = MyHeap_end - MyHeap_space;
      } > MEM_L1_SCRATCH


3. Как узнать необходимый размер стека. Я знаю только один способ. Залить предварительно область стека фиксированными данными, а потом смотреть докуда дополз стек. Но как в VDSP модифицировать код до main чтобы заполнить стек до входа в main. Ведь после входа в main это уже поздно делать.

Прикрепленное изображение
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 21:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016