Перейти к содержанию
    

STM32F407 на частоте 168МГц код работает как на 16МГц (в 10 раз медленнее)

aaarrr, я не являюсь автором ни одного компилятора, ни одной IDE. Зато я пользуюсь разными и мне нет смысла безосновательно "топить" за какую-то из них. Если редактор кода в IAR УГ, то я так и пишу. Зато отладка и анализ кода в том числе по листингам лучше.

2 часа назад, aaarrr сказал:

один адрес посмотреть

И что вам это без содержимого регистров даёт? Полюбому отладчик расчехлять. Использовать листинги для отладки так себе идея.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 часов назад, ViKo сказал:

Я на ассемблере делаю цикл за 4 такта.

кортексы это не авр, здесь программная задержка основанная на цикле это плюс минус лапоть в результате, который помимо прочего может еще зависеть от месторасположения этой самой задержки, чтобы удостовериться в этом, достаточно воспользоваться DWT счетчиком

 

п.с. это касается любого куска кода, если перемещать его, можно заметить отличия во времени выполнения

Изменено пользователем ASDFG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 часов назад, VladislavS сказал:

Я же говорю, с адресами не вопрос.

ЗЫ: Надеюсь, ТС увидел, пока мы тут пиписьками листингами меряемся, куда его 10 тактов делись?

увидел) спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, VladislavS said:

aaarrr, я не являюсь автором ни одного компилятора, ни одной IDE. Зато я пользуюсь разными и мне нет смысла безосновательно "топить" за какую-то из них. Если редактор кода в IAR УГ, то я так и пишу. Зато отладка и анализ кода в том числе по листингам лучше.

Можно подумать, я что-то имею против IAR.

 

3 hours ago, VladislavS said:

И что вам это без содержимого регистров даёт? Полюбому отладчик расчехлять. Использовать листинги для отладки так себе идея.

Содержимое регистров выдает обработчик HF. А иногда и адреса достаточно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, aaarrr сказал:

Содержимое регистров выдает обработчик HF.

Куда выдаёт? Держать под это дело UART?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, VladislavS said:

Куда выдаёт? Держать под это дело UART?

В любой канал связи с внешним миром. Это может быть и журнал событий на диске.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, VladislavS сказал:

И что вам это без содержимого регистров даёт? Полюбому отладчик расчехлять. Использовать листинги для отладки так себе идея.

Вполне нормально. Например у меня есть система ловушек: если происходит критическая ошибка (а также при различного рода fault-ах) - вызывается функция ловушки. Которая делает snap-shot регистров и верхушки стека (в точке ловушки). Далее (в зависимости от типа сборки - DEBUG/RELEASE) этот снимок или выплёвывается в отладочный вывод и зацикливается там (режим "голубого окна смерти") с периодическим повтором отладочного вывода; или сохраняется например в журнал сбоев и выполняется сброс МК. Теперь мне достаточно взять это защёлкнутое состояние, посмотреть там содержимое PC и по .map-файлу и листингам найти нужный участок кода. И можно анализировать - регистры и стек как минимум есть (хотя всей ОЗУ конечно нет).

И с помощью этой системы уже не раз находились баги в коде, работающем уже не на столе, куда отладчиком не подлезть.

 

PS: Кстати (насчёт IAR/неIAR :wink: ) - а другие какие-то компиляторы позволяют описать функцию как 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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 11/30/2020 at 1:40 PM, mantech said:

Уже давно с СТМом не работал, но это (про меньшую частоту) запомнил, иначе какой смысл в ССМ тогда - непонятно..

 

Разве что 64К RAMы в плюс. Хоть и сильно ограниченной, но в хорошем проекте этого ресурса без DDR всегда мало)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...