_3m 9 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 1 минуту назад, haker_fox сказал: Адрес функции HardFault_Handler точно находится в используемой таблице векторов в соответствующем слоте? Это по map-файлу проверено? Это очень странно, что HF не вызывается при "записи" во Flash. Хотелось бы докопаться до сути. HardFault_Handler точно находится где надо и он даже срабатывает если накосячить. Совершенно непонятно почему вы считаете что обращение к существующему адресному пространству должно вызывать HF. Для процессора все выглядит Ок а что во флэш писать не имеет смысла это не проблемы cpu а именно того устройства. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба On 12/11/2023 at 1:52 PM, haker_fox said: В обработчике Hard Fauld стоит bkpt #0, В обработчике Hard Fault стоит while(1). А также в обработчике всех остальных исключительных ситуаций стоит while(1). On 12/11/2023 at 1:52 PM, haker_fox said: а программа, после "записи во FLASH" запущена на исполнение? Т.е. выполнена ни одна команда STR, а и несколько после неё? Да, запущена. И успешно выполняет свою работу, что видно (в моем случае) по printf(....) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 15 minutes ago, _3m said: Для процессора все выглядит Ок Так дело не в процессоре, а в шине AHB. И я ожидал бы BusFault/MemManageFault. 16 minutes ago, _3m said: Совершенно непонятно почему вы считаете что обращение к существующему адресному пространству должно вызывать HF. У других микроконтроллеров, даже фирмы ST, вызывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба On 12/11/2023 at 3:03 PM, haker_fox said: даже фирмы ST, вызывает. У каких ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 30 минут назад, dimka76 сказал: У каких ? F103. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба On 12/11/2023 at 3:41 PM, Arlleex said: F103. видимо они что-то поменяли Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 51 минуту назад, dimka76 сказал: У каких ? У XMC4700 при записи во флешь fault не возникает, но при записи в ROM - возникает. Запись - команда STR по адресу 0x1FFEB570. Fault от неё происходит по адресу 0x1FFEB57E. 1 час назад, haker_fox сказал: Так дело не в процессоре, а в шине AHB. И я ожидал бы BusFault/MemManageFault. Думаю - дело также в штатном механизме программирования FLASH. Например: у XMC4xxx механизм программирования FLASH построен на записи команд/данных в адресное пространство некешированной FLASH. Поэтому логично, что такие операции не должны приводить к fault-у. Иначе бы программирование FLASH было бы невозможно. А например у LPC17xx (и возможно других семейств LPC) механизм программирования FLASH построен на программном API, реализованном в ROM процессора. Т.е. - пользовательский код никогда не должен выполнять операции записи во FLASH. Почему бы тогда LPC не генерить fault при такой попытке? Каков механизм программирования FLASH у STM32 - я не знаю, не использовал его. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба Кроме того - fault-ы возникают разные: Если для кода выше возникает "imprecise data bus fault" (такой же fault возникает в случае адресаций с const смещениями и с постфиксной модификацией регистра адреса), то для кода с адресом, вычисляемым из двух регистров (базово-индексная адресация) происходит уже "precise data bus fault" по адресу инструкции STR. PS: XMC4700 имеет write buffer. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 1 hour ago, jcxz said: Думаю - дело также в штатном механизме программирования FLASH. Ну что ж, я узнал что-то новое - день прожит, как в своё время говорил мой сенсей, не зря! Спасибо! Выходит, что никто не заблуждался, все были правы с учётом собственного опыта... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться