auric 0 5 декабря, 2023 Опубликовано 5 декабря, 2023 (изменено) · Жалоба 7 минут назад, x893 сказал: Где откопали стюардессу Кокос ? Чем Keil не угодил ? да привык как-то камни старые, работает и ладно. Работал и в кейле и в иаре, но они же платные были. Для себя не стал заморачиваться с ними. Изменено 5 декабря, 2023 пользователем auric Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 5 декабря, 2023 Опубликовано 5 декабря, 2023 · Жалоба On 12/5/2023 at 1:50 PM, auric said: temp локальная, MenuQnty, prog_write_buffer, MEM глобальные Сишные типы ? int, short, char ? покажите объявления этих переменных. просто строку, где они у вас объявлены, скопируйте сюда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
auric 0 5 декабря, 2023 Опубликовано 5 декабря, 2023 · Жалоба 12 минут назад, dimka76 сказал: Сишные типы ? int, short, char ? покажите объявления этих переменных. просто строку, где они у вас объявлены, скопируйте сюда. u16 prog_write_buffer[(FLASH_PAGE_SIZE/2)+2]; #define MenuQnty 4 u16 temp; const u16 MEM[MenuQnty] = {1,2,1,0}; только какое это имеет отношение к процессу, когда я прогоняю в дебаге место, где обычно ухожу в хардфаулт если запускаю шаг в обход, и не ухожу, если нажимаю шаг со входом и пошагово прохожу место. Если как писал не могу войти в шаг, то если активировать пошаговое исполнение ассемблерных команд, то и это место прохожу, главное шаги не делать с обходом, а выбирать шаг со входом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 5 декабря, 2023 Опубликовано 5 декабря, 2023 · Жалоба On 12/5/2023 at 2:36 PM, auric said: только какое это имеет отношение к процессу чтобы можно было что-то подсказать. А так действительно видимо дело не в этом. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TU-104 0 5 декабря, 2023 Опубликовано 5 декабря, 2023 · Жалоба Может, пошагово прерывания отключены, а в нормальном режиме срабатывают и вызывают фолт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 5 декабря, 2023 Опубликовано 5 декабря, 2023 · Жалоба Когда в дебаггере открыт SPI, то отладчик читает DR и никаких прерываний не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amaora 20 5 декабря, 2023 Опубликовано 5 декабря, 2023 · Жалоба Я тут делал передачу по SPI через DMA без прерываний. Нужен таймер и несколько (больше двух) каналов DMA. Можно и несколько CS так переключать. А вот может ли так F103 надо читать маны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Edit2007 3 6 декабря, 2023 Опубликовано 6 декабря, 2023 · Жалоба Еще можно стек увеличить, вдруг не хватает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
auric 0 6 декабря, 2023 Опубликовано 6 декабря, 2023 (изменено) · Жалоба Все... вопрос с выходом в хард отпал, нашел кучу неточностей, но в нокаут отправлял таймер, код перекочевал из другого проекта, но если там прерывания по обновлению были отключены, то здесь почему-то они каким-то чудным образом были активированы, но не предусмотрена функция их обработки (естественно, ведь таймер планировался в режиме ШИМа). В дебаге видимо прерывание не наступало, а вот вход в цикл или функцию не пошагово разрешало вызов этого прерывания. Почему-то отслеживая LR регистр я не нашел чего-то полезного, тупо 0xFFFFFFF9, который явно не указывает на то, что не было инструкции для обработки, жаль, я думал отследить такое событие проще. Изменено 6 декабря, 2023 пользователем auric Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 6 декабря, 2023 Опубликовано 6 декабря, 2023 · Жалоба 2 часа назад, auric сказал: Почему-то отслеживая LR регистр я не нашел чего-то полезного, тупо 0xFFFFFFF9, который явно не указывает на то, что не было инструкции для обработки, жаль, я думал отследить такое событие проще. Очевидно, что сначала вам нужно было тупо прочитать мануал на ядро своего МК. Тогда бы знали - что означает 0xFFFFFFF9 и почему оно находится в LR внутри ISR. И если бы прочитали мануал, то знали бы как найти указатель на инструкцию, вызвавшую HF. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
auric 0 6 декабря, 2023 Опубликовано 6 декабря, 2023 · Жалоба 16 минут назад, jcxz сказал: Очевидно, что сначала вам нужно было тупо прочитать мануал на ядро своего МК. Тогда бы знали - что означает 0xFFFFFFF9 и почему оно находится в LR внутри ISR. И если бы прочитали мануал, то знали бы как найти указатель на инструкцию, вызвавшую HF. Для меня это не так очевидно как вам это кажется, я читал как по регистрам отследить появление HF, но к сожалению при 0xFFFFFFF9 в LR вроде как отсыл был к неправильной адресации - для меня не особо говорит, что и где искать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 6 декабря, 2023 Опубликовано 6 декабря, 2023 · Жалоба Есть готовый код для HF. Ничего читать не надо. Перетащил мышью и все дела. Смотри сообщение и исправляй. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
auric 0 6 декабря, 2023 Опубликовано 6 декабря, 2023 (изменено) · Жалоба 11 минут назад, x893 сказал: Есть готовый код для HF. Ничего читать не надо. Перетащил мышью и все дела. Смотри сообщение и исправляй. Буду благодарен, если поделитесь, а то, что находил мне как-то не приглянулось - как мне показалось там тупо все в структуру помещали, так я и так на отладчике вижу и стек могу разглядеть, другое дело, я ожидал более очевидного деления сообщений причин попадания. Понимаю вопрос я поверхностно разобрал, просто не так часто с HF приходится взаимодействовать, да и зачастую находится быстро. Изменено 6 декабря, 2023 пользователем auric Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 35 6 декабря, 2023 Опубликовано 6 декабря, 2023 · Жалоба 2 hours ago, auric said: Буду благодарен, если поделитесь, а то, что находил мне как-то не приглянулось - как мне показалось там тупо все в структуру помещали, так я и так на отладчике вижу и стек могу разглядеть, другое дело, я ожидал более очевидного деления сообщений причин попадания. Понимаю вопрос я поверхностно разобрал, просто не так часто с HF приходится взаимодействовать, да и зачастую находится быстро. Устанавливаете SES и создаете проект. Там и будет обработчик HF Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 6 декабря, 2023 Опубликовано 6 декабря, 2023 · Жалоба 3 hours ago, auric said: но к сожалению при 0xFFFFFFF9 в LR вроде как отсыл был к неправильной адресации - для меня не особо говорит, что и где искать... Если Вы заинтересованы в профессиональной работе с ядром ARM, то Вы должны (или Вам следует) прочитать на него вообще документацию полностью. Понятно, что делается это не за один вечер, и, возможно, не за одну неделю. Можно почитать по диагонали, неважно. Но хотя бы Вы будете знать об основном устройстве ядра и о том, как оно работает. Не хотите читать официальную документацию, допускаю такое - она объёмная и разрознена по разным файлам, но почитайте популярную книгу Дж. Ю. (Joseph Yui) по Вашему ядру. Я всегда её рекомендую. И в своё время я её прочёл. Там есть среди прочих глава о прерываниях. И вот в ней-то и сказано, что содержимое регистра LR определят место, куда вернётся ядро при выходе из прерывания. Поэтому в LR находится не адрес, а вполне себе конкретная сигнатура, одна из нескольких (на изусть не помню, но знаю, где посмотреть и этого достаточно). P.S. В этих же книгах есть и описание HardFault, а также примеры обработчиков. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться