Ассемблер для STM32. Сложно ли, стоит ли пытаться?
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942080#p3942080"]Если и начинать изучать С++ это надо начинать с буквы А и года 4 зубрить.[/uquote]
Сдается мне, что четырех лет не хватит!
Это С можно за полгода спокойно изучить. А вот С++…
И при этом вообще не видно никакой выгоды над С! Зато тексты исходников получаются на порядок-два сложней, компилируются они значительно дольше, да еще и неприятным "бонусом" является необходимость каждый год изучать, что там нового всякие козлы в С++ привнесли! Зато С стабилен, и выучив его один раз, можно пользоваться всю жизнь!!!
Сдается мне, что четырех лет не хватит!
Это С можно за полгода спокойно изучить. А вот С++…
И при этом вообще не видно никакой выгоды над С! Зато тексты исходников получаются на порядок-два сложней, компилируются они значительно дольше, да еще и неприятным "бонусом" является необходимость каждый год изучать, что там нового всякие козлы в С++ привнесли! Зато С стабилен, и выучив его один раз, можно пользоваться всю жизнь!!!
- Реклама
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942330#p3942330"]Не знаю поддерживает ли GCC uint128_t?[/uquote]
Не поддерживает, а иногда было бы полезно, в основном на C++, т.к. там такой тип можно использовать на стадии компиляции.
По коду... Указатель - 4 байта, 8 пинов - 1 байт, итого 5, но по умолчанию структура выровняется и будет 8 байт на пин, а для M0, из-за отсутствия невыровненного доступа придется самому дополнять до 8 байт. Опять же в коде инициализация пинов для F1, если взять любую другую серию, то ее придется переделать и общий размер станет еще больше. У меня был байт на пин, хотя будет немного медленнее, что не существенно для и так в десятки раз более медленного подхода. И с классами в каждом новом проекте придется написать всего несколько строк, сама либа неизменна и просто копируется между проектами.
Не поддерживает, а иногда было бы полезно, в основном на C++, т.к. там такой тип можно использовать на стадии компиляции.
По коду... Указатель - 4 байта, 8 пинов - 1 байт, итого 5, но по умолчанию структура выровняется и будет 8 байт на пин, а для M0, из-за отсутствия невыровненного доступа придется самому дополнять до 8 байт. Опять же в коде инициализация пинов для F1, если взять любую другую серию, то ее придется переделать и общий размер станет еще больше. У меня был байт на пин, хотя будет немного медленнее, что не существенно для и так в десятки раз более медленного подхода. И с классами в каждом новом проекте придется написать всего несколько строк, сама либа неизменна и просто копируется между проектами.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942330#p3942330"]
Пусть это и далеко не эффективный код, но он работает, и прекрасно работает.[/uquote]Хоть бы через BSRR сделали.
Добавлено after 32 minutes 1 second:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3942336#p3942336"]И при этом вообще не видно никакой выгоды над С[/uquote]Посмотри какую дичь Dimon456 сообщением выше сотворил. Всё потому что не может на С передать в функцию список пинов эффективно.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3942336#p3942336"]Зато тексты исходников получаются на порядок-два сложней,[/uquote]Опять таки, несколько сообщений выше Reflector пример с std::size(pins) приводил. Сильно наглядней читается. Да и вообще код на уровне использования классов более читаемый получается. Вон Dimon456 с первого раза правильно применил шаблонный класс PinList - всё интуитивно понятно. Внутри библиотек, конечно, посложнее, но это лишь от отсутствия знаний.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3942336#p3942336"]компилируются они значительно дольше,[/uquote]Да уж... 10-15 или 20 секунд прошивка собирается так принципиально. Вот когда FPGA 10-15 или 20 минут разводится, тут уже подумаешь стоит ли её по любому чиху перекомпилировать. Прошивка для микроконтроллера просто мухой компилируется.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3942336#p3942336"]да еще и неприятным "бонусом" является необходимость каждый год изучать, что там нового всякие козлы в С++ привнесли![/uquote]Стандарт раз в три года обновляют. Так редко "вкусняшки" завозят. При этом новое обратно совместимо со старым. Никто не заставляет сразу всё новое применять. Можно постепенно расширять границы.
Код: Выделить всё
#define PORTA (GPIOA->ODR)Добавлено after 32 minutes 1 second:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3942336#p3942336"]И при этом вообще не видно никакой выгоды над С[/uquote]Посмотри какую дичь Dimon456 сообщением выше сотворил. Всё потому что не может на С передать в функцию список пинов эффективно.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3942336#p3942336"]Зато тексты исходников получаются на порядок-два сложней,[/uquote]Опять таки, несколько сообщений выше Reflector пример с std::size(pins) приводил. Сильно наглядней читается. Да и вообще код на уровне использования классов более читаемый получается. Вон Dimon456 с первого раза правильно применил шаблонный класс PinList - всё интуитивно понятно. Внутри библиотек, конечно, посложнее, но это лишь от отсутствия знаний.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3942336#p3942336"]компилируются они значительно дольше,[/uquote]Да уж... 10-15 или 20 секунд прошивка собирается так принципиально. Вот когда FPGA 10-15 или 20 минут разводится, тут уже подумаешь стоит ли её по любому чиху перекомпилировать. Прошивка для микроконтроллера просто мухой компилируется.
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3942336#p3942336"]да еще и неприятным "бонусом" является необходимость каждый год изучать, что там нового всякие козлы в С++ привнесли![/uquote]Стандарт раз в три года обновляют. Так редко "вкусняшки" завозят. При этом новое обратно совместимо со старым. Никто не заставляет сразу всё новое применять. Можно постепенно расширять границы.
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
size() - функция компилятора, после компиляции это будет какое-то число.VladislavS писал(а):пример с std::size(pins) приводил.
size(pins) != size(pin_ns)/size(port_pin)
size(pins) - выдаст количество байт в массиве.
size(pin_ns)/size(port_pin) - выдаст, скажем так, количество строк.
Структуру я поменялReflector писал(а):По коду... Указатель - 4 байта, 8 пинов - 1 байт, итого 5
Спойлер
Код: Выделить всё
typedef struct{
volatile uint32_t * port;
uint16_t or;
} port_pin;Итого, по карте памяти, указатель 4 байта, 2 байта на порт, + выравнивание 2 байта, и того 8 байт.
Да же не в этом суть, это частный случай,
максимум что я буду иметь - это 20 выводной корпус F030, ну может быть F042,
а там 3 пина питание 2 еще куда-то, 2 может на кварц, и того - ни чего не остается.
У вы, паяльником, чем тазы паяют, 60 выводной корпус, да еще в добавок с таким мелким шагом и не в маем возрасте - это не запаяешь. Да еще и плату надо изготовить.
Уже давно почти все цепляют то по spi то по i2c, а делать на этих чипах какой-то "видео-регистратор" с 60 фпс на параллельном интерфейсе - ну не знаю. Проще, по моему, купить готовый, дешевле выйдет во много раз.
Если вы хотите преподнести С++ преподносите в каком нибудь другом формате, а подергать одним выводом, поморгать светодиодом, и для этого что? городить целый класс?
Проще скачать с инета готовую библиотеку и там уже разбираться.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942507#p3942507"]size() - функция компилятора[/uquote]Только не size(), а sizeof().
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942507#p3942507"]size(pin_ns)/size(port_pin) - выдаст, скажем так, количество строк.[/uquote]std::size(pin_ns) выдаст то же самое.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942507#p3942507"]Если вы хотите преподнести С++ преподносите в каком нибудь другом формате, а подергать одним выводом, поморгать светодиодом, и для этого что?[/uquote]Для понимания. Всегда надо от простого к сложному переходить.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942507#p3942507"]городить целый класс?[/uquote]А почему нет? Что страшного в классе? Даже на простом светодиоде это уже имеет смысл. Вы описываете поведение этого объекта абстрагировавшись от того как и куда он подключен. Код получается универсальным. В программе вы просто инстанцируете его на каком-то порту. И не важно какой это микроконтроллер, какая полярность включения - всё будет работать как задумано. Или, например, типичная проблема С-программиста - сделать inline функцию. Начинают лепить макросы LED1_ON, LED1_OFF, LED2_ON и т.д. С классами решается на раз два.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942507#p3942507"]Проще скачать с инета готовую библиотеку и там уже разбираться.[/uquote]Кто-то же её должен написать? А если все будут только скачивать?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942507#p3942507"]size(pin_ns)/size(port_pin) - выдаст, скажем так, количество строк.[/uquote]std::size(pin_ns) выдаст то же самое.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942507#p3942507"]Если вы хотите преподнести С++ преподносите в каком нибудь другом формате, а подергать одним выводом, поморгать светодиодом, и для этого что?[/uquote]Для понимания. Всегда надо от простого к сложному переходить.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942507#p3942507"]городить целый класс?[/uquote]А почему нет? Что страшного в классе? Даже на простом светодиоде это уже имеет смысл. Вы описываете поведение этого объекта абстрагировавшись от того как и куда он подключен. Код получается универсальным. В программе вы просто инстанцируете его на каком-то порту. И не важно какой это микроконтроллер, какая полярность включения - всё будет работать как задумано. Или, например, типичная проблема С-программиста - сделать inline функцию. Начинают лепить макросы LED1_ON, LED1_OFF, LED2_ON и т.д. С классами решается на раз два.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942507#p3942507"]Проще скачать с инета готовую библиотеку и там уже разбираться.[/uquote]Кто-то же её должен написать? А если все будут только скачивать?
- Реклама
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
Наверно кто-то должен написать, может, вы?VladislavS писал(а):Кто-то же её должен написать?
В большинстве случаев так и делают.VladislavS писал(а):А если все будут только скачивать?
Вы еще предложите fat с нуля написать, будет интересно.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942534#p3942534"]Наверно кто-то должен написать, может, вы?[/uquote]Пошёл второй шнурок гладить
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942534#p3942534"]Вы еще предложите fat с нуля написать, будет интересно.[/uquote]И чего в нём интересного? На один вечер скушного кодинга по спецификации.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942534#p3942534"]Вы еще предложите fat с нуля написать, будет интересно.[/uquote]И чего в нём интересного? На один вечер скушного кодинга по спецификации.
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
Не, одним это дано, а другим нет. Мне это не дано, я научился только готовое использовать.VladislavS писал(а):И чего в нём интересного? На один вечер скушного кодинга по спецификации.
- AVI-crak
- Прорезались зубы
- Сообщения: 202
- Зарегистрирован: Сб янв 09, 2016 15:51:17
- Контактная информация:
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
Я вот могу написать, но никто не просит. Могу утюг для VladislavS подогнать, для ускорения.
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942507#p3942507"]Структуру я поменялuint16_t определяет количество пинов в порту, а их 16 всего, 0-15.
Итого, по карте памяти, указатель 4 байта, 2 байта на порт, + выравнивание 2 байта, и того 8 байт.[/uquote]
Было 8 байт на пин и осталось 8 байт на пин. Если это попытка передать сразу 16 пинов в виде маски, то работать не будет в силу невозможности таким образом передать информацию о порядке этих пинов.
Причем у LQFP32 шаг 0.8mm, а у TSSOP20 - 0.65mm...
Спойлер
Код: Выделить всё
typedef struct{
volatile uint32_t * port;
uint16_t or;
} port_pin;Итого, по карте памяти, указатель 4 байта, 2 байта на порт, + выравнивание 2 байта, и того 8 байт.[/uquote]
Было 8 байт на пин и осталось 8 байт на пин. Если это попытка передать сразу 16 пинов в виде маски, то работать не будет в силу невозможности таким образом передать информацию о порядке этих пинов.
Насколько я помню плеер ARV рассчитанный на mega328 ты запускал на mega128 и еще какие-то часы собирал на mega8, а тут вдруг с 64-х и 28-32-х ног максимум опустился до 20-тиДа же не в этом суть, это частный случай,
максимум что я буду иметь - это 20 выводной корпус F030, ну может быть F042,
а там 3 пина питание 2 еще куда-то, 2 может на кварц, и того - ни чего не остается.
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
Было 16 байт на пин. Не важно.Reflector писал(а):Было 8 байт на пин и осталось 8 байт на пин.
была запаяна на плате, я просто отрезал лишнее. Фото приложить?Reflector писал(а):на mega128
мага8 в дип корпусе.
Ценник играет важную роль.Reflector писал(а):максимум опустился до 20-ти
А как то 15$ за кусок платы 10*10 я брать точно не буду. Сам изготовить этот кусок платы я то же не смогу, из материалов у меня текстолит и рапидограф, даже принтера нет, так что шаг в 0.8mm я точно не осилю.
По этому и пишу, из-за одного вывода (пина), что бы поморгать светодиодом, городить какой-то класс ... я точно не собираюсь.
Если вы хотите преподнести С++ преподносите в каком нибудь другом формате, spi, i2c, а то люди всякий hal да cmsis используют, да в добавок мало примеров, чего только i2c в F030 стоит.
Вот на это упор делайте, может кто и заинтересуется. А вы ...
Да кому это нужно? Это, в первую очередь, вам нужнее, а не мне.VladislavS писал(а):не может на С передать в функцию список пинов эффективно
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942691#p3942691"]Если вы хотите преподнести С++ преподносите в каком нибудь другом формате, spi, i2c, а то люди всякий hal да cmsis используют, да в добавок мало примеров, чего только i2c в F030 стоит.[/uquote]Перечитайте название темы! Мы показываем примеры кода с результатом компиляции в асм, которые отвечают на поставленный вопрос. Если у вас проблемы с I2C, создайте тему да обсуждайте. Чего там такого сложного то? Класс I2C у меня что-то около 3-4 экранов кода.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942691#p3942691"]Вот на это упор делайте, может кто и заинтересуется. А вы ...[/uquote]Приходят такие студенты первого курса на лекцию по матану и с порога профессору: чего ты нам про производные втираешь, давай сразу преобразование Лапласа. Давай уравнение Шрёдингера - требуют у физика. Вы сначала пинами дёргать не через ODR научитесь.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942691#p3942691"]Да кому это нужно? Это, в первую очередь, вам нужнее, а не мне.[/uquote]У меня при общении с вами возникает устойчивое ощущение, что я вам должен. Не припомню что-то такого.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942691#p3942691"]Вот на это упор делайте, может кто и заинтересуется. А вы ...[/uquote]Приходят такие студенты первого курса на лекцию по матану и с порога профессору: чего ты нам про производные втираешь, давай сразу преобразование Лапласа. Давай уравнение Шрёдингера - требуют у физика. Вы сначала пинами дёргать не через ODR научитесь.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942691#p3942691"]Да кому это нужно? Это, в первую очередь, вам нужнее, а не мне.[/uquote]У меня при общении с вами возникает устойчивое ощущение, что я вам должен. Не припомню что-то такого.
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942691#p3942691"]была запаяна на плате, я просто отрезал лишнее. Фото приложить?[/uquote]
Что это меняет? Устаревший F103 популярен в первую очередь из-за дешевых Blue Pill и в целом плат где мк уже уже запаян в избытке.
Что это меняет? Устаревший F103 популярен в первую очередь из-за дешевых Blue Pill и в целом плат где мк уже уже запаян в избытке.
Шаг 0.8 не осилю, а 0.65 осилю? $15 за кусок платы жалко, 20 центов на переходник для lqfp32 тоже жалко?мага8 в дип корпусе.
Ценник играет важную роль.
А как то 15$ за кусок платы 10*10 я брать точно не буду. Сам изготовить этот кусок платы я то же не смогу, из материалов у меня текстолит и рапидограф, даже принтера нет, так что шаг в 0.8mm я точно не осилю.
Классы для SPI/USART/I2C ничем принципиально от класса портов не отличаются кроме того, что они значительно проще, потому никакого нового формата не будет.Если вы хотите преподнести С++ преподносите в каком нибудь другом формате, spi, i2c, а то люди всякий hal да cmsis используют, да в добавок мало примеров, чего только i2c в F030 стоит.
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
Не знаю как там дела с профессором обстоят, у меня образование 5 классов церковно-приходской, и те под мостом, в одной руке коньки в другой клюшка. То есть я не был знаком с профессором.VladislavS писал(а):Приходят такие студенты первого курса на лекцию по матану и с порога профессору:
А что не так с ODR?VladislavS писал(а):Вы сначала пинами дёргать не через ODR научитесь.
Не, вы мне ни чего не должны.VladislavS писал(а):что я вам должен.
Reflector, мне пока не попадались платы с STM на борту.
Платы с Атмегой с какого-то оборудования Российского производства, на платах Индезит какие-то другие МК стоят.
Переходник для lqfp32, шибко не рылся у китайцев, но комплект из 5шт 1,35$ +доставка 0,82$ = итог 2,17$, какие 20 центов?
А что за STM в таком корпусе?
Может быть, когда нибудь. А пока, лень, постарел я, лет так 10-15 назад бы, лень, я танк покатаю.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942907#p3942907"]А что не так с ODR?[/uquote]Вот этот ваш код можно сократить в три раза.
Код: Выделить всё
if (data & s)
*p->port |= p->or;
else
*p->port &= ~(p->or);Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
Давайте, сократите в три раза.VladislavS писал(а):можно сократить в три раза
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3943012#p3943012"]Давайте, сократите в три раза.[/uquote]
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942907#p3942907"]Не, вы мне ни чего не должны.[/uquote]
[uquote="Dimon456",url="/forum/viewtopic.php?p=3942907#p3942907"]Не, вы мне ни чего не должны.[/uquote]
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
VladislavS, а может потому что нельзя сократить, только усложнить?
Давайте я попробую:
Помнится вы что-то писали про регистр BSRR.
Регистр BSRR 32 битный, я должен хранить 32 битное значение, условно BR(31-16)+BS(15-0) бит.
Установленный бит BS имеет приоритет перед BR, что бы BR сработал я должен сбросить BS.
Хорошо бы использовать регистр BRR для сброса, но для этого потребуется хранить еще один 4-ех байтный указатель.
Так что сократить не получится, только усложнить.PS: да и, код не мой, я просто его использую, он максимально сокращен, больше сокращать тут не чего.
Давайте я попробую:
Помнится вы что-то писали про регистр BSRR.
Регистр BSRR 32 битный, я должен хранить 32 битное значение, условно BR(31-16)+BS(15-0) бит.
Установленный бит BS имеет приоритет перед BR, что бы BR сработал я должен сбросить BS.
Хорошо бы использовать регистр BRR для сброса, но для этого потребуется хранить еще один 4-ех байтный указатель.
Так что сократить не получится, только усложнить.
Спойлер
Код: Выделить всё
typedef struct{
volatile uint32_t * port;
uint32_t or;
uint32_t and;
} port_pin;
#define PORTA (GPIOA->BSRR)
#define PORTB (GPIOB->BSRR)
#define PORTC (GPIOC->BSRR)
#define pn(p,b) {&PORT ## p, (1<<b), (1<<(b+16))}
if (data & s)
*p->port |= p->or;
else {
*p->port |= p->and;
*p->port &= ~(p->or); }
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3943052#p3943052"]Хорошо бы использовать регистр BRR для сброса, но для этого потребуется хранить еще один 4-ех байтный указатель.[/uquote]В ветке про асм стыдно не знать, что доступ к BSRR и BRR можно через один указатель получить.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3943052#p3943052"]Так что сократить не получится, только усложнить.[/uquote]Получится. И именно в самом важном месте этого метода - в теле цикла. Пробуйте и смотрите листинги.
ЗЫ: Чуть не забыл, даже без BRR можно, там где его нет.
[uquote="Dimon456",url="/forum/viewtopic.php?p=3943052#p3943052"]Так что сократить не получится, только усложнить.[/uquote]Получится. И именно в самом важном месте этого метода - в теле цикла. Пробуйте и смотрите листинги.
ЗЫ: Чуть не забыл, даже без BRR можно, там где его нет.
Спойлер
[uquote="Dimon456",url="/forum/viewtopic.php?p=3943052#p3943052"]VladislavS, а может потому что нельзя сократить, только усложнить?[/uquote]Хочу заметить, что я уже тоже не мальчик и просто так слова на ветер не бросаю.Re: Ассемблер для STM32. Сложно ли, стоит ли пытаться?
[uquote="Dimon456",url="/forum/viewtopic.php?p=3943052#p3943052"]Так что сократить не получится, только усложнить.[/uquote]
Потестил немного на 32-х пиновом списке. Стандартная версия быстрее твоей в 11 раз, а если пины более-менее упорядочить, то получим еще значительное ускорение. Моя медленная реализация, с BSRR и одним байтом на пин, быстрее в 1.6 раза.
Потестил немного на 32-х пиновом списке. Стандартная версия быстрее твоей в 11 раз, а если пины более-менее упорядочить, то получим еще значительное ускорение. Моя медленная реализация, с BSRR и одним байтом на пин, быстрее в 1.6 раза.


