|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 124
|
||||||
STM32F103 - время выполнения команд и их оптимизация25.10.2016, 14:44. Показов 10087. Ответов 10
Метки нет (Все метки)
Добрый день!
Пишу под STM32F103C8T6 в Visual Studyo 2013 использую плагин VisualGDB r5.1 На днях начал оптимизировать время выполнения кода. Для этого использую DWT (Data WatchPoint Trigger). До этого момента я думал, что простые команды, типа загрузить с памяти в регистр общего назначения uint32_t занимает один такт - оказалось 2 - проблема №1. Проблема №2:
В Ассемблере почти не разбираюсь, не могу понять зачем нужно выполнение команды во второй строчке -0x08000aca ldr r3, [r3, #0].
0
|
||||||
| 25.10.2016, 14:44 | |
|
Ответы с готовыми решениями:
10
Время выполнения команд в STM8L и STM8S Оптимизация. Определить тип во время выполнения программы. Составьте программу, суммирующую штрафное время команд при игре в хоккей. Выводить на экран суммарное штрафное время обеих команд |
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 334
|
||
| 25.10.2016, 14:56 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 124
|
||
| 25.10.2016, 15:13 | ||
Компилил, только тогда например перестают выводится данные в UART
0
|
||
|
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
|
|||||
| 25.10.2016, 17:00 | |||||
0
|
|||||
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 124
|
|||||||||||||||
| 25.10.2016, 18:08 | |||||||||||||||
В тему плохого кода: Как то был элементарный код:
И при оптимизации программа просто зависала в данном цикле. Сделал:
0
|
|||||||||||||||
|
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
|
|
| 25.10.2016, 18:16 | |
|
А как объявлена k?
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 124
|
||
| 25.10.2016, 18:18 | ||
volotile ничего тогда не дало!
0
|
||
|
0 / 0 / 0
Регистрация: 07.02.2016
Сообщений: 124
|
||
| 25.10.2016, 18:23 | ||
Или надо изучать как и что компилирует компилятор?
0
|
||
|
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
|
|
| 25.10.2016, 18:41 | |
|
volatile - общее свойство C, безотносительно платформы. И да, должно быть "volatile unsykned char k;", тогда оба цикла будут равнозначны.
0
|
|
|
1 / 1 / 0
Регистрация: 03.02.2011
Сообщений: 382
|
||
| 26.10.2016, 08:40 | ||
Оптимизацию -о3 следует применять только если хорошо представляешь как и что делает компилятор. У меня когда-то компилятор (gcc-arm-none-eabi для LPC2292) строчки местами поменял, и логика работы нарушилась.
0
|
||
|
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
|
|
| 26.10.2016, 10:44 | |
|
А на практике - я регулярно в течении многих лет программирования слышу жалобы на кривой компилятор, в итоге это всегда оказывается кривой код. Помню только один случай, когда действительно был виноват компилятор, что и было признано его разработчиками.
Я не могу себе представить, что можно сгенерировать не так из "while(k>1) {}".
0
|
|
| 26.10.2016, 10:44 | |
|
Помогаю со студенческими работами здесь
11
STM32F103 + EXTI + время Уменьшить время выполнения работы программы, увеличить скорость выполнения
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|