Raven 9 Понедельник в 14:35 Опубликовано Понедельник в 14:35 · Жалоба 3 hours ago, Alexandr27 said: Да, я проверял во время сета через асемблер их так же - все корректно. Сейчас возникли подозрения что WCH-LinKUtility стирает память полностью или не зашивает по корректному адресу прошивку приложения. А что у вас в качестве средства разработки? MoonRiver? Т.е. Eclipse + OpenOCD? Тогда почему не воспользоваться возможностями OOCD (или в отдельности от ГУИ, или в составе)? Сделайте в OOCD: reset halt reg pc Увидите, куда вас выбрасывает по ресету. А потом можно еще и немного окружающую память посмотреть () mdw <адрес PC> Ну, и дальше развлекаться можно в исследовании обстоятельств. В частности, можно посмотреть, как пойдет исполнение кода (с помощью single step): step; reg pc step; reg pc .... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 153 Понедельник в 18:32 Опубликовано Понедельник в 18:32 · Жалоба В 21.06.2024 в 12:08, Alexandr27 сказал: Может кто-нибудь может подсказать как это сделать корректно? __disable_irq(); NVIC_SetVectorTable(NVIC_VectTab_FLASH, FLASH_APPLICATION_ADDRESS); __set_MSP(*(volatile uint32_t *)FLASH_APPLICATION_ADDRESS); ((void (*)(void))(*(volatile uint32_t *)FLASH_APPLICATION_ADDRESS + 4))(); P.S. А, я думал это Cortex-M. Тогда не знаю. Бегло посмотрел - на стековерфлоу пользуют код для Cortex-M, не знаю насколько их API совместим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 9 Понедельник в 19:45 Опубликовано Понедельник в 19:45 · Жалоба 12 hours ago, Alexandr27 said: Добрый день! Спасибо за ответ! В результате падаю в HardFault_Handler. Пробывал и такой адресс и адресс + 4 и пробовал даже прыгнуть снова в загрузчик - все так же HardFault_Handler Можете выложить ваш стартапный код в виде исходников и полученного листинг-файла? Тогда появится шанс понять, что у вас не так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться