ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
971442 Топик полностью
Nikolay_Po (18.01.2020 19:40, просмотров: 236) ответил VLLV на "На Count==1999 вылетает HardFault." 1) 1999(2000) - странное число. Какие есть определения с этим числом 2) может не дождавшись вылета пройтись по шагам, глядя в ассемблер?
Это не первая моя попытка отладить код. Разные программы отказывали на разных этапах. Какая-то на 5-м элементе, какая-то на 68-м, эта - на 1998-м (1999-й это после инкремента счётчика). Если комментировать строчку с записью в массив, то крутится спокойно безконечно, без вылетов. В ассемблер глядеть пробовал. Видно, что ячейка, в которую только что была произведена запись, используется для восстановления программного счётчика, типа pop pc. И действительно, исполнение переходит на совсем левый адрес, вне текста программы. И, в зависимости от адреса, выравнивания и прочего, приводит либо к HardFault, либо просто неадекватное выполнение и вылет в DefaultHandler.