Apтём (19.12.2018 14:48, просмотров: 2415)
День добрый. Что-то я опять делаю не так, но не могу понять что. Пытаюсь переместить некоторые функции в ОЗУ. Для этого делаю следующие действия. 1) Определил в LD-файле секцию:
.sram_func :
{
. = ALIGN(4);
*(.sram_func)
*(.sram_func.*)
. = ALIGN(4);
} >ITCMRAM AT> FLASH
2) в исходнике определил функцию так:
__attribute__ ((section(".sram_func")))
void SetFrequency()
{
HAL_SRAM_Write_16b(&hsram1, (uint32_t *)(FPGA_BANK_ADDR + 0), (uint16_t *)&FrequencyWr[0], 3);
HAL_SRAM_Read_16b(&hsram1, (uint32_t *)(FPGA_BANK_ADDR + 0), (uint16_t *)&FrequencyRd[0], 3);
}
При вызове функции попадаю в HardFault (или MemManage_Handler). Что ж не так то?
P.S. МК - STM32H7.