Идея как раз и была в том что бы можно было получить больший диапозон значений. Фишка в том что 8 битный мк дольше будет выполнять операцию с 32 битным числом чем мк с 32 битными регистрами и 32 битной шиной. И так далее с паматью и указателями. Даже если извратиться, на AVR помойму есть 16/32 битный регистр или набор из 2х 8 битных специально для указательных функций. На этом примере, ты просто дольше будешь получать доступ к данным в памяти, пока запихаешь один регистр потом другой. Вообщем дело как раз таки получить больший диапазон значений одним регистром и одной операцией.
По идеи знания и там применить можно. хотя структура перефирии там другая. надо бы опробовать. А насчет ардуины, кто то же должен заниматься пропогандой
Инты поправил. Насчет битовых полей, я не уверен, но думаю скомилирует он конечно также как и без битовых полей. Я как то не особо вглядывался в оптимизацию структур, но думаю что при компиляции всеравно будет использован хотя бы байт. Тоесть тип будет заменен на полный. Так что тут дело вкуса нверно. А так палец вверх за полезный совет. Изучим вопрос.
Без описания формата регистров вообще непонятно почему в одном случае сдвигаем на 1 бит, а в другом — на два.
тут людям надо учится мануал листать. А насчет почему не использовал GPIOI->MODER |= (0b01 << (2*i) ); то это в следующей статье я пройдусь, там будет более гибкая реализация драйвера порта
Проекты без HAL, написанные подобным образом, крайне тяжелы для поддержки.
Дорогой читатель, я совсем не долго программирую в целом, но успел застать конфуз компаний которые работали с SPL. и вот когда STM выпустили STM32F7, на них не распространялась поддержка SPL, только HAL. Всех поставили перед фактом, что если надо то портируйте, колдуйте. Так вот учась на ошибках людей которые инвестируют время в «Библиоитэки» я инвестировал его в изучение устройства. и теперь мне достаточно просто открыть референс мануал и разрабатывать.
Это насчет вашего «переноса». Теперь насчет переноса в реальности, дело в том что переносимость это маркетинг, с реальностью который связан очень плохо. И при переносе с f4 на f7 я бы провел древе-индейский ритуал «Нахуа». Это когда все племя пытается получить ответ на вопрос «Зачем».
Практическая польза? я пишу для себя, что бы запоминать материал.
Ну как я уже выше отписался, тот же openocd собирается из исходника с нужными конфигами. Это очень важный процесс так как «собиратор» проверяет наличие нужных библиотек. Насчет кряков, тут их нет все открытое. Насчет лезть в GCC, собрать свой кросс компилятор все должны уметь. Допустим, при желании этот же компилятор можно и на самом F7 запустить если его скомпилировать для хоста. Делов там на 15 минут и то 90% это сама компиляция, за вас уже все сделали.
Вообщем собирать из исходника это не 100500 команд а всего 3 но которые дают возможность выбрать нужный билд с определенной конфигурацией. В этом и кроется удобство данного подхода.
Не знаю как там принято в линуксе, но весь стэк разработчика собирается из исходников, так как даже openocd лежит в виде исходника, а то что вы скачаете из репозитория уже слишком старое. Nodejs в репозитории 8.0 лежит, стабильный релиз 12+ по странной ссылке. Это так для сравнения. Тот же всеми любимый nginx собирают из исходника с нужными модулями. Теперь про неочевидный интерфейс отладчика. Он очень очевиден. к примеру
program prog.elf Залили прошивку. program prog.elf reset Залили прошивку и ресетнули чип. reset halt ресетнули чип и остановили ядро. resume Продолжили выполнение кода step Тут все очевидно же.
Не ну понятно что здоровый человек использует дебаг порт, я имел в виду что к хосту по UART подключаем. Хотя есть индивиды которые и SWD опустили до «UART дебагера» через SWO.
Это стокгольмский синдром от Ардуино? на самом деле удобно, Black Magic Probe работает через UART, ну технически через USB но создается виртуальный ком порт. И там целый GDB server с поддержкой многих архитектур. Если интересно, проект открытый и можно свой программатор развести на коленке. github.com/blacksphere/blackmagic/wiki
typedef unsigned int int32_t
.Это насчет вашего «переноса». Теперь насчет переноса в реальности, дело в том что переносимость это маркетинг, с реальностью который связан очень плохо. И при переносе с f4 на f7 я бы провел древе-индейский ритуал «Нахуа». Это когда все племя пытается получить ответ на вопрос «Зачем».
Практическая польза? я пишу для себя, что бы запоминать материал.
Вообщем собирать из исходника это не 100500 команд а всего 3 но которые дают возможность выбрать нужный билд с определенной конфигурацией. В этом и кроется удобство данного подхода.
program prog.elf
Залили прошивку.program prog.elf reset
Залили прошивку и ресетнули чип.reset halt
ресетнули чип и остановили ядро.resume
Продолжили выполнение кодаstep
Тут все очевидно же.