sasamy 9 6 декабря, 2023 Опубликовано 6 декабря, 2023 · Жалоба On 12/6/2023 at 11:05 AM, jenya7 said: когда передаю константную строку в качестве аргумента ToLower("WRITE"); поменяйте клавиатуру где caps lock не заедает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 6 декабря, 2023 Опубликовано 6 декабря, 2023 · Жалоба 1 час назад, dimka76 сказал: Почему ? У кортекса мосты между ОЗУ и ПЗУ и все будет прекрасно работать. Сам на кортексах посмотянно printf использую и все замечательно работает. printf("bla-bla-bla\r\n"); Чем это отличается от того, что привел ТС ? Хоть и опередили, но... Если посмотреть printf(), то у него все четко extern _ARMABI int printf(const char * __restrict /*format*/, ...) __attribute__((__nonnull__(1))); все внимание на const. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 4 7 декабря, 2023 Опубликовано 7 декабря, 2023 · Жалоба В 06.12.2023 в 11:46, haker_fox сказал: Только не на ARM))) HF или иное исключение шины гарантированно. Похоже вы ARM только в картинках видели. Отлично работает запись во внутреннюю флэш, только не изменяется ничего 🙂 Если обращаться в несуществующее адресное пространство -> HF. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 7 декабря, 2023 Опубликовано 7 декабря, 2023 · Жалоба 53 минуты назад, _3m сказал: Отлично работает запись во внутреннюю флэш STM32F103, ну попробуйте записать по указателю во Flash u8 или u32. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 8 декабря, 2023 Опубликовано 8 декабря, 2023 · Жалоба 10 hours ago, _3m said: Отлично работает запись во внутреннюю флэш, только не изменяется ничего 🙂 Вам не кажется, что написанное - противоречиво? С одной стороны я читаю "отлично работает запись", с другой стороны - "только не изменяется ничего". Если ничего не изменяется, то это уже не отлично. Это уже - провал. 10 hours ago, _3m said: Похоже вы ARM только в картинках видели. Это неуместное и неостроумное предположение можно развеять просто просмотрев мои сообщения и темы на этом форуме даже не за 20 лет, а хотя бы за полгода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 4 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба В 08.12.2023 в 06:37, haker_fox сказал: Вам не кажется, что написанное - противоречиво? С одной стороны я читаю "отлично работает запись", с другой стороны - "только не изменяется ничего". Если ничего не изменяется, то это уже не отлично. Это уже - провал. Исключений не возникает, все выполняется - значит работает. А ожидать изменений в ROM не очень разумно. Flash это же разновидность ROM только с электрическим стиранием. STM32F405, CubeIDE: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 9 минут назад, _3m сказал: Исключений не возникает, все выполняется - значит работает. Повторюсь - проведите сей эксперимент для STM32F103. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 19 minutes ago, _3m said: Исключений не возникает, все выполняется - значит работает. Возможно, это отдано на откуп производителю микроконтроллера. У меня нет STM32F405. Но есть LPC4337. Ядро то же самое. Запись во флешь приводит к Hard Fault с ошибкой шины. И это логично, т.к. мы фактически записать данные не можем в эту область данные, минуя специальный контроллер. GD32F450 ведёт себя также, вылетает в исключение. P.S. А Вы не смотрели в errata? Может быть для STM32F405 описанное поведение как раз ошибочным является? И задокументировано? P.S.S. Заглянул сам в errata. Такое поведение не описано, но, судя по количеству задокументированного, микроконтроллер с ошибками. Возможно, что данное поведение просто не отражено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 28 минут назад, _3m сказал: Исключений не возникает, все выполняется - значит работает. А ожидать изменений в ROM не очень разумно. Flash это же разновидность ROM только с электрическим стиранием. STM32F405, CubeIDE: Эксперимент некорректен. Из него совсем не видно, что "Исключений не возникает". Так как в таком случае скорее всего должен возникнуть "Imprecise bus fault". Особенно на более-менее продвинутых МК с "write buffer". Хотя - не на всяком МК. Некоторые МК могут вообще не генерить никакого fault-а. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба On 12/11/2023 at 11:40 AM, jcxz said: Эксперимент некорректен. Из него совсем не видно, что "Исключений не возникает". А как сделать, чтобы видно было ? Видяшку снять ? "У нас в клубе принято джентельменам верить на слово!" Ⓒ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба On 12/11/2023 at 11:14 AM, _3m said: Исключений не возникает, все выполняется - значит работает. Провел такой же тест на STM32F407. В Hard Fault не улетел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 57 минут назад, dimka76 сказал: А как сделать, чтобы видно было ? Видяшку снять ? Вы понимаете что такое "Imprecise bus fault"? 40 минут назад, dimka76 сказал: Провел такой же тест на STM32F407. В Hard Fault не улетел. похоже что нет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 56 minutes ago, dimka76 said: В Hard Fault не улетел. В обработчике Hard Fauld стоит bkpt #0, а программа, после "записи во FLASH" запущена на исполнение? Т.е. выполнена ни одна команда STR, а и несколько после неё? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 4 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 16 минут назад, haker_fox сказал: В обработчике Hard Fauld стоит bkpt #0, а программа, после "записи во FLASH" запущена на исполнение? Т.е. выполнена ни одна команда STR, а и несколько после неё? Куб автоматом генерит обработчики исключений - заглушки: /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) { /* USER CODE BEGIN W1_HardFault_IRQn 0 */ /* USER CODE END W1_HardFault_IRQn 0 */ } } Оно зацикливается если возникает исключение. Но все весело работает 🙂 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 11 декабря, 2023 Опубликовано 11 декабря, 2023 · Жалоба 26 minutes ago, _3m said: Оно зацикливается если возникает исключение. Но все весело работает 🙂 Адрес функции HardFault_Handler точно находится в используемой таблице векторов в соответствующем слоте? Это по map-файлу проверено? Это очень странно, что HF не вызывается при "записи" во Flash. Хотелось бы докопаться до сути. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться