Comments 8
Рекомендовал бы обращаться к первоисточнику, а именно к сайту ARM
«LDR Rx,[PC,#imm] might add a cycle because of contention with the fetch unit.» а не 1 такт, более того, в последней ревизии TRM прямо указано 2 такта.
Ну и если кому интересно мнение программиста с 5+ опытом работы с Кортексами, ассемблер не для них. Только оптимизация коротких критичных секций, и то лучше ее сделать на C.
«LDR Rx,[PC,#imm] might add a cycle because of contention with the fetch unit.» а не 1 такт, более того, в последней ревизии TRM прямо указано 2 такта.
Ну и если кому интересно мнение программиста с 5+ опытом работы с Кортексами, ассемблер не для них. Только оптимизация коротких критичных секций, и то лучше ее сделать на C.
+2
не могу найти такую информацию :-(
не подскажите ссылку?
не подскажите ссылку?
0
infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337h/index.html здесь про дополнительный такт
infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337h/index.html здесь про время исполнения
infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337h/index.html здесь про время исполнения
+1
Еще одна «фича» микроконтроллера (и вообще «камней» с ядром ARM) возможность указания в инструкциях условия исполнения по флагам (EQ/NE, CS/CC, MI/PL и так далее).Это так при использовании Thumb2. В случае системы команд ARM четыре бита в опкоде использовались как раз для указания условий выполнения (включая вариант «всегда»), а в Thumb, если правильно помню, резервировалось три бита и набор условий для перехода был несколько менее богат.
Однако не все так просто: для возможности условного исполнения инструкций они должны быть включены в так называемый IT блок.
-1
И все же, я в свое время много писал на асме и для ДВК систем и для 48/ 51 и для АВР, а вот для Кортексов ну никак не могу рекомендовать. У них слишком богатая система команд с учетом всяких фич типа формирования констант, условий выполнения, сдвигов, разных способов формирования индексов, так что если раньше соотношение скорости было 3 к 1 в пользу человека, то с современными оптимизирующими компиляторами ну в лучшем случае 1.2 к 1 а то и чуть ли не наоборот. Есть у них (у компиляторов) не очень удачные места, но если ему хорошенько все расписать на С, то он сделает код почти не хуже, чем Вы сами врукопашную. Просто посмотрите код, который генерит, к примеру, IAR, и Вы увидите, что там почти нечего подправить руками.
0
Only those users with full accounts are able to leave comments. Log in, please.
STM32F4: GNU AS: Мигаем светодиодом (Оживление) (Часть 2)