x893, проблемное место нашел, только пока не понял почему так происходит. Использовал счетчик тактов ядра из модуля DWT для формирования задержек. На stm32f1 и stm32f4 это прекрасно работало. А на f7 почему-то не взлетело. Как только заменил эти задержки на серию "нопов" проблемы исчезли. Весь день убил на это дело уж никак подумать не мог, что виновата функция задержки, сделанная на модуле DWT, т.к. раньше претензий к ней не было.
А вот с запуском отладки из внутреннего ОЗУ, пока не получилось (кеил 5) Как делал на F4 и F1. В файле system_stm32fxx.c дефайнил "VECTAB_SRAM". Во вкладке Target -> IROM менял адрес flash на адрес ОЗУ т.е. 0x0800 0000 менял на 0x2000 0000, и устанавливал размер кода, например 0x10000. Затем на вкладке Target -> IRAM задавал начальный адрес ОЗУ с учетом значения, занятым кодом, т.е. 0x2001 0000, естественно уменьшал доступный объем ОЗУ. Дальше во вкладке Debug выбирал файл Dbg_Ram.ini, в котором тупо прописана функция Setup(), которая устанавливает указатель стека и программный счетчик величинами 0x2000 0000 и 0x2000 0004. Во вкладке Flash Settings также менял адрес с которого прошивать на 0x2000 0000. Затем компилировал и запускал отладку. Все работало. А на f7 такой способ не работает, прошивать - прошивает по заданным адресам, но отладка не запускается, и вываливается куча ошибок о несоответствии содержимого прошивки и того что там якобы должно быть. Может есть какой либо другой способ для запуска отладки из ОЗУ, применительно к f7, подскажите.
|