VladislavS 39 1 декабря, 2020 Опубликовано 1 декабря, 2020 · Жалоба aaarrr, я не являюсь автором ни одного компилятора, ни одной IDE. Зато я пользуюсь разными и мне нет смысла безосновательно "топить" за какую-то из них. Если редактор кода в IAR УГ, то я так и пишу. Зато отладка и анализ кода в том числе по листингам лучше. 2 часа назад, aaarrr сказал: один адрес посмотреть И что вам это без содержимого регистров даёт? Полюбому отладчик расчехлять. Использовать листинги для отладки так себе идея. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ASDFG 0 1 декабря, 2020 Опубликовано 1 декабря, 2020 (изменено) · Жалоба 17 часов назад, ViKo сказал: Я на ассемблере делаю цикл за 4 такта. кортексы это не авр, здесь программная задержка основанная на цикле это плюс минус лапоть в результате, который помимо прочего может еще зависеть от месторасположения этой самой задержки, чтобы удостовериться в этом, достаточно воспользоваться DWT счетчиком п.с. это касается любого куска кода, если перемещать его, можно заметить отличия во времени выполнения Изменено 1 декабря, 2020 пользователем ASDFG Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexKai 0 1 декабря, 2020 Опубликовано 1 декабря, 2020 · Жалоба 12 часов назад, VladislavS сказал: Я же говорю, с адресами не вопрос. ЗЫ: Надеюсь, ТС увидел, пока мы тут пиписьками листингами меряемся, куда его 10 тактов делись? увидел) спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 1 декабря, 2020 Опубликовано 1 декабря, 2020 · Жалоба 3 hours ago, VladislavS said: aaarrr, я не являюсь автором ни одного компилятора, ни одной IDE. Зато я пользуюсь разными и мне нет смысла безосновательно "топить" за какую-то из них. Если редактор кода в IAR УГ, то я так и пишу. Зато отладка и анализ кода в том числе по листингам лучше. Можно подумать, я что-то имею против IAR. 3 hours ago, VladislavS said: И что вам это без содержимого регистров даёт? Полюбому отладчик расчехлять. Использовать листинги для отладки так себе идея. Содержимое регистров выдает обработчик HF. А иногда и адреса достаточно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 1 декабря, 2020 Опубликовано 1 декабря, 2020 · Жалоба 4 минуты назад, aaarrr сказал: Содержимое регистров выдает обработчик HF. Куда выдаёт? Держать под это дело UART? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 1 декабря, 2020 Опубликовано 1 декабря, 2020 · Жалоба 1 minute ago, VladislavS said: Куда выдаёт? Держать под это дело UART? В любой канал связи с внешним миром. Это может быть и журнал событий на диске. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 1 декабря, 2020 Опубликовано 1 декабря, 2020 · Жалоба 7 часов назад, VladislavS сказал: И что вам это без содержимого регистров даёт? Полюбому отладчик расчехлять. Использовать листинги для отладки так себе идея. Вполне нормально. Например у меня есть система ловушек: если происходит критическая ошибка (а также при различного рода fault-ах) - вызывается функция ловушки. Которая делает snap-shot регистров и верхушки стека (в точке ловушки). Далее (в зависимости от типа сборки - DEBUG/RELEASE) этот снимок или выплёвывается в отладочный вывод и зацикливается там (режим "голубого окна смерти") с периодическим повтором отладочного вывода; или сохраняется например в журнал сбоев и выполняется сброс МК. Теперь мне достаточно взять это защёлкнутое состояние, посмотреть там содержимое PC и по .map-файлу и листингам найти нужный участок кода. И можно анализировать - регистры и стек как минимум есть (хотя всей ОЗУ конечно нет). И с помощью этой системы уже не раз находились баги в коде, работающем уже не на столе, куда отладчиком не подлезть. PS: Кстати (насчёт IAR/неIAR ) - а другие какие-то компиляторы позволяют описать функцию как SVC-вызов? Как в IAR: #pragma swi_number=SVCF_trap0 __swi void trap(u32); #pragma swi_number=SVCF_trap1 __swi void trap(u32, u32); #pragma swi_number=SVCF_trap2 __swi void trap(u32, u32, u32); #pragma swi_number=SVCF_trap3 __swi void trap(u32, u32, u32, u32); листинг: trap(TRAP_CAN, ERR_CAN_SR, j, i); ... MOV R2,R5 MOVS R1,#+1 MOVS R0,#+20 SVC 0x3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a_electronic 0 17 февраля, 2021 Опубликовано 17 февраля, 2021 · Жалоба On 11/30/2020 at 1:40 PM, mantech said: Уже давно с СТМом не работал, но это (про меньшую частоту) запомнил, иначе какой смысл в ССМ тогда - непонятно.. Разве что 64К RAMы в плюс. Хоть и сильно ограниченной, но в хорошем проекте этого ресурса без DDR всегда мало) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться