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

STM32F334 медленное исполнение?

Так же в вашем листинге видим:

19 часов назад, Alex-lab сказал:
 8000634:	20000032 	.word	0x20000032
 8000638:	2000119a 	.word	0x2000119a
 800063c:	200002d0 	.word	0x200002d0
 8000640:	20000ae8 	.word	0x20000ae8
 8000644:	20000b1c 	.word	0x20000b1c
 8000648:	20000b24 	.word	0x20000b24
 800064c:	200002c8 	.word	0x200002c8
 8000650:	20000b20 	.word	0x20000b20
 8000654:	20000b28 	.word	0x20000b28
 8000658:	200021d6 	.word	0x200021d6
 800065c:	200021d2 	.word	0x200021d2
 8000660:	200002c0 	.word	0x200002c0
 8000664:	200002b8 	.word	0x200002b8
 8000668:	200002b0 	.word	0x200002b0
 800066c:	20000ae4 	.word	0x20000ae4
 8000670:	200021d4 	.word	0x200021d4
 8000674:	20000b80 	.word	0x20000b80
 8000678:	20000b7e 	.word	0x20000b7e

что тоже дичь для нормального компилятора. Нормальный увидит, что все эти переменные находятся рядом (ну или сложит их рядом), а потом возьмёт на весь этот блок переменных один общий указатель (будет держать его всю функцию в каком-то регистре) и будет обращаться к ним без дополнительных загрузок адреса каждой переменной. Одно это может примерно на ~треть уменьшить время выполнения вашего кода.

У вас же где-то скорее всего компилятору установлено ограничение на количество используемых регистров (имхо). Поэтому нормально код строить он не может. Так как не хватает разрешённых регистров. А может ядро выбрано неправильное. Точно CM4 выставлено?

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


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

23 minutes ago, jcxz said:

Т.е. - даже в минус ушли???! :shok: Вы же писали, про 2.6мкс.

Пардон, 150 нс, конечно.

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


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

On 10/5/2023 at 12:56 PM, jcxz said:

что тоже дичь для нормального компилятора.

А вы не могли бы привести листинг для этого же самого кода, сгенерированного нормальным компилятором ?

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


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

8 минут назад, dimka76 сказал:

А вы не могли бы привести листинг для этого же самого кода, сгенерированного нормальным компилятором ?

Так я ещё в самом первом посте предлагал ТСу так сделать:

23 часа назад, jcxz сказал:

Видимо: что такое и как объявлена вся эта куча переменных/констант - предлагаете угадывать читателям?

Но он проигнорировал. Если бы он привёл нормальный полный исходник, то конечно - любой мог бы у себя проверить, скомпилить на своём компиляторе.

А гадать что там у него и как объявлено - не ясновидящий я (в отличие от некоторых :wink:  )

 

PS: но факт, что его компилятор генерит какую-то дичь. Которой не должно быть в принципе на Cortex-M4. Что-то не так с ключами, возможно.

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


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

On 10/5/2023 at 1:18 PM, jcxz said:

А гадать что там у него и как объявлено - не ясновидящий я (в отличие от некоторых :wink:  )

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

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


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

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

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

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

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

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

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

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

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

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