ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
2 мая
1382041 Топик полностью
VladislavS. (12.12.2023 18:28, просмотров: 101) ответил VVB на В ОЗУ размещаете используя отдельный скрипт линкера? То есть у вас имеется две конфигурации сборки: для озу и для флэш, различающиеся скриптами линкера и, возможно, прочими опциями оптимизации.
Да, разные скрипты линкера для разных конфигураций сборки. Иногда разные настройки оптимизации, чтобы легче отлаживать было, но чаще одинаковые. Ещё предопределена константа препроцессора __DEBUG_SRAM__, чтобы где надо код под выполнение из ОЗУ адаптировать. Например, в стартапе при отладке из ОЗУ не надо копировать секцию данных, она и так в RW области лежит. 
extern uint32_t _sidata[], _sdata[], _edata[], _sbss[], _ebss[];
#ifndef __DEBUG_SRAM__
for (volatile uint32_t* pSrc = _sidata, *pDst = _sdata; pDst != _edata; *pDst++ = *pSrc++);
#endif
for (volatile uint32_t* pDst = _sbss; pDst != _ebss; *pDst++ = 0); // Zero -> BSS