ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1406632 Топик полностью
VladislavS. (23.02.2024 09:59, просмотров: 480) ответил Adept на вопрос STM-щикам :) какая-там сейчас вменяемая среда проектирования? Есть желание в скором времени "пощупать за вымя", что-нить из быстрого (чем больше мегагерцев, тем лучше :)) и с большим количеством ОЗУ на борту, и/или интерфейсом для SDRAM.
Почитал тему и хочу отметить, что у вас наивное понимание что такое современные ARM. 

1. Сейчас это целый зоопарк ядер с разным набором команд. Компилятор знает как оптимально писать под каждое из них. Вплоть до оптимизации загрузки конвейера. Вам же руками надо будет написать разный код для Cortex-M0, M3, M4F, M7 и т.д.

2. Система команд Thumb-2 это смесь 32 и 16 битных инструкций, которые гибко подбираются под данные. Вполне обычно, что подёргать ножкой PA0 или PA15 нужно/можно разными командами. Да просто загружать в регистр разные константы нужно разным кодом. Плюс просчитывать оптимальную косвенную адресацию. Это вместе с пунктом 1 даёт огромную вариативность. Компилятор делает это не уставая на каждой коменде.

3. Архитектура и система команд процессора изначально разработаны под ЯВУ. Нет никаких ограничений для написания оптимального кода на С, кроме знаний и/или лени программиста. Тут как раз возможности С++ позволяют снять рутинную работу с программиста и переложить её на компилятор, который не устаёт.

4. Периферия ARM микроконтроллеров более продвинутая. DMA, FIFO, более функциональные периферийные модули. Грамотное их использование даёт выигрыш на порядки больший, чем экономия тактов асмом. Вполне обычное дело, когда АЦП сам цифрует много каналов и складывает их вам в массив без участия процессора. Подготовил в буфере данные, сказал отправить их в SPI, UART и т.д. и спи-отдыхай.

5. Обилие различных шин с разными частотами и задержками, с несколькими мастерами на них, кэшами и предвыборками.

6. RTOS вы сходу напишете лучше/быстрее существующих. Ну-ну.


Всё это вместевзятое передвигает порог, когда компилятор обходит вас как стоячего, сдвигается сильно вниз. Лучшее подтверждение этому - никто не пишет на асме для армов. Разве что, редкие перебезчики с 8-биток, такие как вы, с транспорантом "я научу вас писать оптимальный код". Только куда-то они после первой мигалки светодиодом пропадают. Большинству просто эта оптимальность не нужна при таком запасе производительности. Скорость написания кода и его переносимость побеждают. Кто хочет выжать максимум уходят в плюсы, которые позволяют переложить на компилятор оптимизации, ведь он не устаёт.


Вот и получается, что планировщик RTOS это единственное место, где в кодовой базе ARM используют асм. Программистов, которые этим занимаются, по пальцам пересчитать можно.


В конце концов, вы сами к этому придёте. Но раз уж спросили на форуме, то стоит послушать тех кто в теме. Сейчас гибкость это очень большое конкурентное преимущество.