STM32 — скорость и размер кода. Часть 1

Модератор electronix.ru успел закрыть тему прежде чем я сумел ответить на вопрос Евгения:

Сказывается ли использование StdPeriph на громоздкости кода и быстродействии?

http://electronix.ru/forum/index.php?showtopic=108784

Когда я создал проект моргания светодиодом на базе стандартной библиотеки STM32, размер кода у меня получился что-то около 12 кБ.

Пару дней назад я «раскурил» другой способ работы с периферией. Примерно та же функциональность реализовалась в 220-280 байт. Сейчас на вскидку не вспомню, но в ближайшие дни во 2-ой части я опубликую отчет по этому делу.

Сегодня ночью я занимался прогой, которая через порты STM32 управляет линейкой из шести 74hc595 (шесть 7-мисегментных светодиодных индикаторов). Прога никчемная, просто тупо ежесекундно увеличивает значение числа и выводит его на индикатор. Мне это нужно для производственных целей — для создания одного навороченного стенда. (Не важно какого!)

К сожалению, я не могу сравнить скорость работы портов из-под библиотеки и непосредственную работу с портами, так как временнЫх показателей по работе с библиотекой я не сделал. А вот по работе с портами непосредственно, я уже кое-что пощупал.

Так, разбираясь с проблемой «почему не работает линейка 74hc595» мне пришлось достать осциллограф и посмотреть сигналы. Проц работал на своей основной частоте — 8 МГц, то есть без PLL. Каково же было мое удивление, когда я увидел на бациллоскопе импульс строба, который формируется двумя последовательными командами «ножку поднять-ножку опустить», —  шириной 250 нс… Я не думаю, что работа из-под библиотеки на такое способна.

И самое главное — не забывайте, что сориентировавшись на работу из-под библиотеки STD32-perif, вам, как разработчику, придется тащить двойную нагрузку. Ведь знания железа (регистров и битов) никто не отменял. Хотите ли вы этого или нет, но если вы утверждаете, что вы — профи, или хотите им стать, то вы будете вынуждены изучить и регистры, и их биты. Таким образом, помимо основной сути (знаний по железу) вам нужно будет поднимать еще и знания для «блондинок».

Ладно бы, если эти знания (знания железа и знания библиотеки) не пересекались бы, а лежали бы на разных уровнях абстракции — как например язык С и язык Бэйсик — но ведь они ж дублируют друг друга! Возникает законный вопрос, если собрались профессионально заниматься этим направлением, а не просто поиграться ради интереса, то наверно не стоит отвлекаться на фетиш?

Это мое мнение. Оно может не совпадать с мнением других людей.

Реклама

6 responses to “STM32 — скорость и размер кода. Часть 1

  1. А Вы работали или хотя бы «щупали» Forth процессор навроде GA144?

    • Нет, не доводилось. Даже не слыхал о таком.

      • Это новая разработка, довольно интересный процессор, сочетающий большую производительность, и малое энергопотребление, при этом может выполнять одновременно множество задач параллельно, и об этом не нужно специально заботиться, архитектура этому способствует. Хотелось бы на таком что-нибудь разработать, надеюсь, что доберусь до него когда-нибудь.

      • Ага. Уже нагуглил.

        Примерно год назад Ализар уже вывешивал публикацию на Хабре про этот проц.

      • Там же, продают от 10 шт. по 20$. Они не будут распространены в ближайшее время, пока не наработают базу готовых решений и программ, не напишут несколько учебников.

      • 600 рублей для такой игрушки для взрослых — это не деньги!

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

        Нужно заниматься тем, что принесет нечто, которым можно заплатить за квартиру, за жратву, за бензин, купить шмотки, лекарства, бабе цветы — детям мороженое…

        А так, что? В мире много чего интересного есть.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s