Попытка написания ядра для STM32 для более удобного написания прошивок без использования HAL.
Это ядро пишется под STM32 Cube IDE с использованием CMSIS и ничего более.
Широко распространнённые ядра под Arduino IDE и под PlatformIO или какие либо другие IDE здесь применяться не будут.
Данное ядро в какой то мере будет перекликаться с ардуиновским ядром, но не полностью его замещать.
В данное время сущеществует множество библиотек для периферии микроконтроллера данной серии, но написаны они все для себя, устоявшегося стандарта нет.
Я не претендую на создание нового стандарта, пишу для себя и делюсь этим. Может кому то пригодится, может кто то что нибудь интересное подскажет.
Все библиотеки для различных устройств будут писаться на базе Ардуиновских библиотек и библиотек Алекса Гайвера. https://alexgyver.ru/
Так как они проверены многими поколениями начинающих программистов и имеют устояшиеся алгоритмы.
Данное ядро будет написано под STM32F030F4P6, но на другие МК, в будущем, будет добавляться код с помощью условного компилирования тех частей кода,
который характерен только для определённых МК. Код, который независим полностью от МК, будет для всех общим.
В данном случае в этом ядре написаны следующие функции:
1. Инициализация тактового генератора на максимальную частоту с внутренним RC генератором, с внешним кварцем на 8МГц будет добавлено позже;
2. Инициализация системного таймера SysTick.
3. Функции millis(), micros(), delay() которые очень часто используются для организации временных задержек.
4. Функция delayMicroseconds() пока не дописана, вместо неё стоит заглушка.
В данный пакет включена библиотека для работы с кнопкам, написанная на основе GyverButton.
Пакет полностью рабочий.
По мере продвижения проекта на данном МК, будут переписываться другие библиотеки и добавляться в данный пакет.
Со временем выделю для каждой библиотеки свой подкаталог и буду писать их туда. Библиотеки не будут иметь защиту от "дурака". Поэтому придётся в STM32CubeMX точно планировать какой вывод и какая периферия и на какие выводы будет выведена.
Чуть позже, если нужно, допишу для чего каждый каталог.
Это ядро пишется под STM32 Cube IDE с использованием CMSIS и ничего более.
Широко распространнённые ядра под Arduino IDE и под PlatformIO или какие либо другие IDE здесь применяться не будут.
Данное ядро в какой то мере будет перекликаться с ардуиновским ядром, но не полностью его замещать.
В данное время сущеществует множество библиотек для периферии микроконтроллера данной серии, но написаны они все для себя, устоявшегося стандарта нет.
Я не претендую на создание нового стандарта, пишу для себя и делюсь этим. Может кому то пригодится, может кто то что нибудь интересное подскажет.
Все библиотеки для различных устройств будут писаться на базе Ардуиновских библиотек и библиотек Алекса Гайвера. https://alexgyver.ru/
Так как они проверены многими поколениями начинающих программистов и имеют устояшиеся алгоритмы.
Данное ядро будет написано под STM32F030F4P6, но на другие МК, в будущем, будет добавляться код с помощью условного компилирования тех частей кода,
который характерен только для определённых МК. Код, который независим полностью от МК, будет для всех общим.
В данном случае в этом ядре написаны следующие функции:
1. Инициализация тактового генератора на максимальную частоту с внутренним RC генератором, с внешним кварцем на 8МГц будет добавлено позже;
2. Инициализация системного таймера SysTick.
3. Функции millis(), micros(), delay() которые очень часто используются для организации временных задержек.
4. Функция delayMicroseconds() пока не дописана, вместо неё стоит заглушка.
В данный пакет включена библиотека для работы с кнопкам, написанная на основе GyverButton.
Пакет полностью рабочий.
По мере продвижения проекта на данном МК, будут переписываться другие библиотеки и добавляться в данный пакет.
Со временем выделю для каждой библиотеки свой подкаталог и буду писать их туда. Библиотеки не будут иметь защиту от "дурака". Поэтому придётся в STM32CubeMX точно планировать какой вывод и какая периферия и на какие выводы будет выведена.
GitHub - mmvirus/Test_Core: Попытка написания ядра для STM32 для более удобного написания прошивок без использования HAL
Попытка написания ядра для STM32 для более удобного написания прошивок без использования HAL - mmvirus/Test_Core
github.com
Чуть позже, если нужно, допишу для чего каждый каталог.
Изменено: