jcxz 231 15 августа, 2023 Опубликовано 15 августа, 2023 · Жалоба 1 час назад, Jon777 сказал: define symbol __ICFEDIT_region_ROM_end__ = 0x0803FFFF; ... Как пофиксить? На вкладке проекта Linker\Checksum указать реальный конец прошивки, а не конец всей флешь МК. Точнее - чуть больше реального, с небольшим запасом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jon777 0 15 августа, 2023 Опубликовано 15 августа, 2023 · Жалоба Указал в первую очередь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 15 августа, 2023 Опубликовано 15 августа, 2023 · Жалоба 1 час назад, Jon777 сказал: Указал в первую очередь. У вас прошивка размером 128КБ??? И если она реально 128КБ, то фраза: 3 часа назад, Jon777 сказал: При включении расчёта CRC размер прошивки увеличивается в 10+ раз. означает, что она увеличивается до ~1.2МБ ?? И как же вы умудряетесь её запихнуть в этот маленький МК? PS: Вы вообще поняли что вам советовали? Складывается ощущение что нет. PPS: И что такое по вашему "размер прошивки"? Как вы его измеряете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jon777 0 15 августа, 2023 Опубликовано 15 августа, 2023 · Жалоба В 15.08.2023 в 19:23, jcxz сказал: У вас прошивка размером 128КБ??? И если она реально 128КБ, то фраза: означает, что она увеличивается до ~1.2МБ ?? И как же вы умудряетесь её запихнуть в этот маленький МК? PS: Вы вообще поняли что вам советовали? Складывается ощущение что нет. PPS: И что такое по вашему "размер прошивки"? Как вы его измеряете? Под прошивкой подразумеваю файл с расширение bin, генерируемый IARом. Его в последствии мой загрузчик заливает в МК. Размер был 80КБ, стал 900КБ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 15 августа, 2023 Опубликовано 15 августа, 2023 · Жалоба 1 час назад, Jon777 сказал: Под прошивкой подразумеваю файл с расширение bin, генерируемый IARом. Его в последствии мой загрузчик заливает в МК. Размер был 80КБ, стал 900КБ. .bin - это просто образ памяти. Его размер должен быть равен разнице между максимальным и минимальным адресами образа + 1. Какие адреса вы включили в свой образ, что он стал больше размера всей флеши?? Очевидно вы добавили какие-то области за пределами флешь. Разбирайтесь как его генерите. PS: И зачем вообще .bin? Гораздо удобнее и правильнее использовать .hex. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jon777 0 15 августа, 2023 Опубликовано 15 августа, 2023 (изменено) · Жалоба В 15.08.2023 в 21:54, jcxz сказал: Какие адреса вы включили в свой образ, что он стал больше размера всей флеши?? Он не стал больше размера флеш, он стал ему равен. В 15.08.2023 в 21:54, jcxz сказал: PS: И зачем вообще .bin? Гораздо удобнее и правильнее использовать .hex. Чем hex удобнее? Я читаю bin и пишу в память МК как есть, без какой либо обработки, куда проще? Конкретизирую вопрос. Как заставить IAR размещать CRC по нужному мне адресу? Изменено 15 августа, 2023 пользователем Jon777 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 16 августа, 2023 Опубликовано 16 августа, 2023 · Жалоба On 8/16/2023 at 3:58 AM, Jon777 said: Как заставить IAR размещать CRC по нужному мне адресу? А Вы вообще документацию на инструментарий читаете? Она для IAR написана довольно внятно. Бывают, конечно, моменты, когда приходится что-то уточнять. Но прочитав данный раздел, Вы узнаете о существовании секции .checksum. Указав линковщику адрес размещения этой секции, сможете поместить контрольную сумму в любое место при условии, что она не входит в диапазон адресов, на основании которых она рассчитывается. Другими словами, Вы не сможете разместить КС в середине прошивки. Вот даже ответ на Ваш вопрос есть. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jon777 0 16 августа, 2023 Опубликовано 16 августа, 2023 · Жалоба Всем спасибо за участие! Мой косяк, подвела невнимательность, не заметил /*###ICF### Section handled by ICF editor, don't touch! ****/ прописал значение вручную и IAR его не подхватил. И ещё вопрос, для стирания flash использую функцию HAL_FLASHEx_Erase. В большинстве случаев всё работает корректно, но иногда контроллер зависает при её вызове. Куда копать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 17 августа, 2023 Опубликовано 17 августа, 2023 · Жалоба 19 hours ago, Jon777 said: прописал значение вручную и IAR его не подхватил. Между делом замечу, что скрипты линковщика с некоторых пор пишу сам, либо сильно-сильно рихтую готовые. В принципе, в них ничего страшного нет. Всё снова же описано в документации. Как результат - полный контроль на тем, что и куда легло в памяти микроконтроллера! 19 hours ago, Jon777 said: Куда копать? Как бы это парадоксально не звучало, микроконтроллер, вернее его процессор, как правило не завивисает, а либо переходит на обработчик ошибки типа HardFault, который является обработчиком системного прерывания ядра, либо в следствие ошибки программы "улетает" куда-то по случайным адресам, где попадает в какой-нибудь цикл, например. Поскольку нередко в startup-файле по умолчанию обработчики HardFault, UsageFault и т.п. представлены заглушками с бесконечным циклом, возникает ощущение, что процессор завис. На самом деле это не так. Он честно выполняет программу. Попробуйте остановить выполнение программы под отладчиком, и, скорее всего, Вы убедитесь в этом. Если процессор действительно словил исключение HardFault, то методы его расшифровки широко освещены в интернете, да и здесь, на форуме, есть нескольк тем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uni 6 25 августа, 2023 Опубликовано 25 августа, 2023 · Жалоба Вообще, у IAR есть апнота с примерами размещения crc: https://www.iar.com/knowledge/support/technical-notes/general/ielftool-checksum---placing-the-checksum/ Прикрепил пример, в котором значение CRC кладётся последним в прошивке. crc32last-uni-20230825.7z Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться