misyachniy (30.09.2016 18:33, просмотров: 361) ответил IBAH на Время выполнения команд stm32? почему нигде не написано?
Восток Время выполнения штука тонкая. На сайте ARM есть время выполнения в тактах для каждой команды, для каждого ARM.
Но в ней не учитывается архитектура конкретной реализации.
Наличие тактов ожидания при работе из FLASH/RAM длина конвейера и т.д.
Размещение кода в RAM не всегда убыстряет работу
Процитирую Википедию:
"Гарвардская архитектура — архитектура ЭВМ, отличительными признаками которой являются:
хранилище инструкций и хранилище данных представляют собой разные физические устройства;
канал инструкций и канал данных так же физически разделены.
Архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете."
По этому, если вы размещаете код в RAM и используете LDR из RAM то шина AHB для работы с кодом простаивает, а с данными работает 2 раза.
Если код во FLASH, а данные в RAM - то работа убыстряется.
На STM32F103 я разместил код и данные к нему в RAM и получил падение производительности.
Есть 3 метода поиска оптимальной скорости.
1 - перечитать все мануалы и подобрать теоретически - научный подход.
2 - пробовать с каждой функцией - метод научного тыка.
3 - перейти на более мощный процессор - инженерный подход.