jcxz 240 5 октября, 2023 Опубликовано 5 октября, 2023 · Жалоба Так же в вашем листинге видим: 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 выставлено? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex-lab 4 5 октября, 2023 Опубликовано 5 октября, 2023 · Жалоба 23 minutes ago, jcxz said: Т.е. - даже в минус ушли???! Вы же писали, про 2.6мкс. Пардон, 150 нс, конечно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 5 октября, 2023 Опубликовано 5 октября, 2023 · Жалоба On 10/5/2023 at 12:56 PM, jcxz said: что тоже дичь для нормального компилятора. А вы не могли бы привести листинг для этого же самого кода, сгенерированного нормальным компилятором ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 240 5 октября, 2023 Опубликовано 5 октября, 2023 · Жалоба 8 минут назад, dimka76 сказал: А вы не могли бы привести листинг для этого же самого кода, сгенерированного нормальным компилятором ? Так я ещё в самом первом посте предлагал ТСу так сделать: 23 часа назад, jcxz сказал: Видимо: что такое и как объявлена вся эта куча переменных/констант - предлагаете угадывать читателям? Но он проигнорировал. Если бы он привёл нормальный полный исходник, то конечно - любой мог бы у себя проверить, скомпилить на своём компиляторе. А гадать что там у него и как объявлено - не ясновидящий я (в отличие от некоторых ) PS: но факт, что его компилятор генерит какую-то дичь. Которой не должно быть в принципе на Cortex-M4. Что-то не так с ключами, возможно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 62 5 октября, 2023 Опубликовано 5 октября, 2023 · Жалоба On 10/5/2023 at 1:18 PM, jcxz said: А гадать что там у него и как объявлено - не ясновидящий я (в отличие от некоторых ) Ой, у него переменные так названы, что и гадать ничего не надо. Все очевидно. Единственно волатиле или нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться