Настройка ToolChain-a для программирования MCU FlagChip FC7300F8MDT

FC7300F8MDT — это микроконтроллер компании FlagChip as FlagShip.
В этом тексте я показал, как можно запрограммировать микроконтроллер FC7300F8MDT, буквально на пустом компьютере.
Embedded SW/Firmware Engineer
FC7300F8MDT — это микроконтроллер компании FlagChip as FlagShip.
В этом тексте я показал, как можно запрограммировать микроконтроллер FC7300F8MDT, буквально на пустом компьютере.
В данном тексте я написал про то, как я написал загрузчик для российского микроконтроллера MIK32 (K1948BK018).
Это, пожалуй, первый случай, когда столько функционала мне пришлось утрамбовать всего в 8kByte ROM памяти.
При продолжительной разработке на одном семействе микроконтроллеров получается так, что приложение намертво привязано к конкретному семейству микроконтроллеров и его SDK, так как напрямую использует HAL от вендора.
Это особенно явно проявляется в таких случаях, когда надо срочно переносить прошивку на другой микроконтроллер.
Получается, что приходится заново писать всю прошивку, всё приложение, драйвера всех ASIC-ов. Драйвер светодиодов, драйвер кнопок, драйвер ASICов c I2C SPI управлением. В общем всё переписывать. Поменяли MCU и пришлось переписать все файлы в репозитории. Нормально так да?
В этом тексте я написал, как можно обойти эту проблему.
Существует классическая задача:
«Каждый гость на встрече обменивается рукопожатием с другим. Всего было 78 рукопожатий. Сколько гостей пришло на встречу?»
Эта задача представляет интерес только лишь потому, что её нынче задают при устройстве на работу. Поэтому надо уметь её решить и объяснить решение.
Есть 1000 одинаковых колб с прозрачной жидкостью.
В 999 колбах вода, а в одной случайной - отрава.
Если мышь попробует отраву, то она погибнет через 1 час.
Как найти отравленную колбу за минимальное время?
GNU Make - это консольная утилита, которая запускает другие консольные утилиты в желаемой последовательности согласно скрипту. Только и всего.
В этом тексте я показал, как можно организовать самостоятельно написанные make скрипты для микроконтроллерных проектов.
В программировании микроконтроллеров периодически приходится писать клиентские PC программы для загрузки *.hex файлов в микроконтроллер через загрузчик.
Обычно в названии этих утилит присутствует слово loader.
В этом тексте я попробовал порассуждать на тему того, каким же атрибутами должна обладать эта самая утилита FW_Loader.
Существуют бесплатные статические анализаторы для Си кода. Среди них splint и cppcheck.
Статический анализатор - это такая консольная программа, которая проверяет исходные коды до компиляции. Своего рода автоматическая инспекция программ.
В этом тексте я представил инструкцию про то, как интегрировать статический анализ кода в общий скрипт сборки проекта.
Суть этой короткой заметки в том, чтобы показать, как просто и лаконично происходит подключение разнообразных статических анализаторов к проекту, который собран скриптами сборки GNU Make.
В этом тексте я написал про то, как настроить рабочее окружение для разработки на российском микроконтроллере MIK32 (K1948BK018).
Дана функция чтения и записи EEPROM dword.
Запись и стирание возможно только по выровненному адресу и пословно.
Надо поверх EEPROM API сделать функцию чтения, записи и стирания для произвольных массивов байт, по произвольному адресу (NVRAM).
Простыми словами надо состыковать Dword API с Byte API.
В этом тексте я представил простой наивный алгоритм решения данной задачи.
Я долгое время негодовал по поводу того, что часто приходится копаться в плохо оформленном коде .
Но теперь я решил сделать рефрейминг. Отныне я коллекционирую такие куски кода! Да. Теперь каждая причудливая функция приносит мне искреннюю радость так, как пополняет ценнейшую коллекцию того, как не надо делать.
Высокие технологии могут быть не только в IT индустрии среди программирования и микроэлектроники, но и, на удивление, в сантехнике. Да.. Именно так. Сейчас объясню почему.
Существует контр-интуитивное приспособление под названием тепловой насос. Это устройство переносит энергию от более холодного тела к более горячему телу.
В этом тексте я попытался объяснил, как это возможно с точки зрения физики процесса. Буквально на пальцах.
У каждого программиста микроконтроллеров с годами кристаллизируется коллекция золотых багов. Некоторые из них весьма эпичные.
Самый типичный баг - это зависание прошивки.
Выявление причин багов и их устранение порой сродни работы детективом. Это проявляется в том, что порой очень трудно выявить причину бага. Сначала разработчик идет по ложному следу, ходит кругами, а в конце-концов выясняется, что причина на самом деле была проста, как солдатский валенок.
Допустим Вы скачали на свой NetTop PC аудио книгу и теперь хотите её перекинуть на Android телефон.
Как же это можно провернуть?
Предположим, что вас на телефоне нет SD карты, да и USB кабель тоже пропал куда-то.
Как же перекинуть огромный файл с LapTop-а на PalmTop?
В этом тексте я напиcал, как посылать файлы по WiFi.
В этой заметке я написал про свой опыт работы с CAN шиной. Вы узнаете с какой стороны следует подходить к CAN сети.
Образно выражаясь CAN - это труба для чисел. Можно метафорично сказать, что CAN - это нервная система автомобиля. Именно по САN передаются сигналы от датчиков и к исполнительным механизмам.
Абсолютно все микроконтроллеры программируются одинаково, если собирать код из make файлов.
Настало время освоить очередное семейство ARM-совместимых микроконтроллеров. За плечами уже AVR, MSP430x, LPC21x, STM32x, MDR32x, ESP32x, SPC58x, CC26x2, NRF53x, AT32Fx. Теперь вот YTM32x от компании YUN TU (Suzhou YTM Semiconductor Co Ltd).
С какой же стороны следует подходить к микроконтроллерам YTM32x?
Давайте разбираться...
Что если из диктофона сделать акустический локатор?
В этом тексте я попробовал использовать два смартфона в качестве сонара.
Все вычисления осуществлены в пост обработке.
Настал тот первый день, когда в программировании микроконтроллеров наконец пригодилась такая абстрактная структура данных как стек LIFO.
У нас в организации существует обязательное внутреннее требование к оформлению исходных кодов на языке программирования Си для микроконтроллеров, которое звучит так:
В конце каждого блока if(...) {...} ; switch(...) {...} ; for(...) {...} и т.п. необходимо пиcать комментарий // end of if(...). end of switch(...) end of for(...) соответственно.
Я написал утилиту-локатор, которая автоматически находит аномалии в коде согласно этому странному правилу.
Вы, наверное удивитесь, но чтобы написать учебник, надо знать системы сборки из софтверного БигТеха и, как ни странно, старый добрый сишный препроцессор (cpp).
Да, господа... Именно так...
В этой заметке я покажу несколько трюков по работе с LaTeX.
Существует одна очень замечательная учебно-треннировочная электронная плата Olimex-STM32-H407.
В этом тексте я покажу как на этой PCB можно запустить прошивку культового российского аппаратного хранителя паролей Пастильда (Pas~).