All streams
Search
Write a publication
Pull to refresh
2
0
Антон @MTX-Legion

Пользователь

Send message
Идея как раз и была в том что бы можно было получить больший диапозон значений. Фишка в том что 8 битный мк дольше будет выполнять операцию с 32 битным числом чем мк с 32 битными регистрами и 32 битной шиной. И так далее с паматью и указателями. Даже если извратиться, на AVR помойму есть 16/32 битный регистр или набор из 2х 8 битных специально для указательных функций. На этом примере, ты просто дольше будешь получать доступ к данным в памяти, пока запихаешь один регистр потом другой. Вообщем дело как раз таки получить больший диапазон значений одним регистром и одной операцией.
Не передивайте, я добавлю типы чуть позже. И я полностью согласен что они лучше читаются. Но по факту это тот же typedef unsigned int int32_t.
Насчет интов я наоброт привел их к unsigned int, infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491c/Babfcgfc.html Вроде как гарантировано что 4 байта на инт
По идеи знания и там применить можно. хотя структура перефирии там другая. надо бы опробовать. А насчет ардуины, кто то же должен заниматься пропогандой
Инты поправил. Насчет битовых полей, я не уверен, но думаю скомилирует он конечно также как и без битовых полей. Я как то не особо вглядывался в оптимизацию структур, но думаю что при компиляции всеравно будет использован хотя бы байт. Тоесть тип будет заменен на полный. Так что тут дело вкуса нверно. А так палец вверх за полезный совет. Изучим вопрос.
Atmel SAM3X8E, ядро cortex m3, так что ты чего то не знаешь.
Учту в следующей статье, а эту долню обязательно.
кстати openocd ругался на stlinkv2 (deprecated) поэтому я перешел на stlink.cfg
Без описания формата регистров вообще непонятно почему в одном случае сдвигаем на 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

Information

Rating
Does not participate
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Date of birth
Registered
Activity