====== STM32 ====== STM32 — семейство 32-битных микроконтроллеров производства STMicroelectronics. https://wiki.st.com/stm32mpu/ ====== Оборудование ====== ===== STLINK-V3MINI ===== STLINK-V3MINI — компактный внутрисхемный программатор и отладчик для STM32. [[https://www.st.com/en/development-tools/stlink-v3mini.html|STLINK-V3MINI]] Определяется так: 0483:374e STMicroelectronics STLINK-V3 Имя UART порта: ''/dev/ttyACM0'' {{stlink-v3mini.pdf|Product Specification (DB3737)}}, [[https://www.st.com/resource/en/data_brief/stlink-v3mini.pdf|оригинал]] {{dm00555046-stlinkv3mods-and-stlinkv3mini-mini-debuggersprogrammers-for-stm32-stmicroelectronics.pdf |UM2502 User manual}}, [[https://www.st.com/resource/en/user_manual/dm00555046-stlinkv3mods-and-stlinkv3mini-mini-debuggersprogrammers-for-stm32-stmicroelectronics.pdf|оригинал]] [[thingiverse>thing:4180922|3D–модель корпуса: STLinkV3 Mini Enclosure by JRad]] {{anchor:v3mini-adapter}} ==== Адаптер ==== {{:stm32:stlink-v3mini-adapter.jpg?350|}} {{anchor:connectors}} ==== Разъёмы ==== {{anchor:stdc14}} **STDC14** ┌───────────────────────┐ │ 2 4 6 8 10 12 14 │ │ • • • • • • • │ │ │ │ • • • • • • • │ │ 1 3 5 7 9 11 13 │ └───────── ─────────┘ |<30% 20% 80%>| ^ № контакта ^ Назначение ^ |1|—| |2|:::| |3|VCC ((Input for STLINK-V3MINI))| |4|TMS/SWDIO| |5|GND| |6|TCK/SWCLK| |7|GND| |8|T_JTDO/T_SWO ((SWO is optional, required only for Serial Wire Viewer (SWV) trace))| |9|T_JCLK| |10|T_JTDI/NC ((NC means not required for SWD connection))| |11|GNDDetect ((Connect to GND on target, may be used by STLINK-V3MINI for detection of connection))| |12|T_NRST| |13|T_VCP_RX| |14|T_VCP_TX| {{anchor:arm20}} **ARM20** IDC-20 ┌────────────────────────────────┐ │ 2 4 6 8 10 12 14 16 18 20 │ │ • • • • • • • • • • │ │ │ │ • • • • • • • • • • │ │ 1 3 5 7 9 11 13 15 17 19 │ └──────────── ────────────┘ |<30% 20% 80%>| ^ № контакта ^ Назначение ^ |1|VCC| |2|VSUPPLY| |3|nTRST| |4|GND| |5|TDI| |6|GND| |7|TMS/SWDIO| |8|GND| |9|TCK/SWCLK| |10|GND| |11|RTCK ((JTAG Return Test ClocK))| |12|GND| |13|TDO/SWO| |14|GND| |15|nSRST (NRST)| |16|GND| |17|DBGRQ| |18|GND| |19|DBGACK| |20|GND| {{anchor:stdc14_arm20}} Соответствие контактов на разъёмах: |<30% 20% 20% 60%>| ^ № контакта ^^ Назначение ^ ^ [[#STDC14]] ^ [[#ARM20]] ^:::^ | 3 | 1 |VTref| | 4 | 7 |TMS/SWDIO| | 5 | GND || | 6 | 9 |TCK/SWCLK| | 7 | GND || | 8 | 13 |TDO/SWO| | 9 | 11 |T_JCLK / RTCK FIXME| | 10 | 5 |T_JTDI/NC / TDI FIXME| | 11 |GNDDetect ((Connect to GND on target, may be used by STLINK-V3MINI for detection of connection))|| | 12 | 15 |NRST| | 13 | — | RX | | 14 | — | TX | ===== STM32MP157A ===== [[https://www.st.com/en/microcontrollers-microprocessors/stm32mp157a.html| STM32MP157A - STMicroelectronics]] [[https://wiki.st.com/stm32mpu/wiki/STM32MP15_resources|STM32MP15 resources - stm32mpu]] ^Тип^Код^Название^Версия^Дата^Ссылка^ |Product Specifications|{{stm32:ds12504_2021-05-18_stm32mp157a.pdf|DS12504}}|Arm® dual Cortex®-A7 800 MHz + Cortex®-M4 MPU, 3D GPU, TFT/DSI, 37 comm. interfaces, 29 timers, adv. analog|6.0|2021-05-18|[[https://www.st.com/resource/en/datasheet/stm32mp157a.pdf|оригинал]]| |Reference Manuals|{{stm32:rm0436_2021-01-21_stm32mp157-advanced-armbased-32bit-mpus-stmicroelectronics.pdf|RM0436}}|STM32MP157 advanced Arm®-based 32-bit MPUs|5.0|2021-01-21|[[https://www.st.com/resource/en/reference_manual/rm0436-stm32mp157-advanced-armbased-32bit-mpus-stmicroelectronics.pdf|оригинал]]| |Application Notes|{{stm32:an5031_2021-01-21_getting-started-with-stm32mp151-stm32mp153-and-stm32mp157-line-hardware-development-stmicroelectronics.pdf|AN5031}}|Getting started with STM32MP151, STM32MP153 and STM32MP157 line hardware development|3.0|2021-01-21|[[https://www.st.com/resource/en/application_note/an5031-getting-started-with-stm32mp151-stm32mp153-and-stm32mp157-line-hardware-development-stmicroelectronics.pdf|оригинал]]| |:::|{{stm32:an5275_2019-10-15_usb-dfuusart-protocols-used-in-stm32mp1-series-bootloaders-stmicroelectronics.pdf|AN5275}}|USB DFU/USART protocols used in STM32MP1 Series bootloaders|1.0|2019-10-15|[[https://www.st.com/resource/en/application_note/an5275-usb-dfuusart-protocols-used-in-stm32mp1-series-bootloaders-stmicroelectronics.pdf|оригинал]]| |:::|{{:stm32:dm00505673-ddr-configuration-on-stm32mp1-series-mpus-stmicroelectronics.pdf|AN5168}}|STM32MP1 series DDR configuration|2.0|2021-10-19 |[[https://www.st.com/resource/en/application_note/dm00505673-ddr-configuration-on-stm32mp1-series-mpus-stmicroelectronics.pdf|оригинал]]| |Programming Manuals|{{:stm32:pm0214_2020-03-23_stm32-cortexm4-mcus-and-mpus-programming-manual-stmicroelectronics.pdf|PM0214}}|STM32 Cortex®-M4 MCUs and MPUs programming manual|10.0| 2020-03-23|[[https://www.st.com/resource/en/programming_manual/pm0214-stm32-cortexm4-mcus-and-mpus-programming-manual-stmicroelectronics.pdf|оригинал]]| |Errata sheets|{{:stm32:dm00516256-stm32mp151x-3x-7x-device-errata-stmicroelectronics.pdf|ES0438}}|STM32MP15xx device errata|6.0|2021-02-25|[[https://www.st.com/resource/en/errata_sheet/dm00516256-stm32mp151x-3x-7x-device-errata-stmicroelectronics.pdf|оригинал]]| [[https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-EV1/Develop_on_Arm%C2%AE_Cortex%C2%AE-M4|Develop on Arm® Cortex®-M4 - stm32mpu]] ====== Программы ====== |[[https://www.st.com/en/development-tools/st-mcu-finder-pc.html|ST-MCU-FINDER-PC]]|STM32 and STM8 product finder for desktops | ===== STM32CubeProgrammer ===== STM32CubeProgrammer — это официальный инструмент от STMicroelectronics для создания разделов на любом накопителе, доступном на платформе STM32. После создания STM32CubeProgrammer позволяет записывать и обновлять разделы предварительно созданными двоичными файлами. Соединение между ПК и платой c STM32 может быть установлено через UART или USB. [[https://www.st.com/en/development-tools/stm32cubeprog.html|STM32CubeProg]] [[https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer|STM32CubeProgrammer — Wiki]] {{ :stm32:um2237-stm32cubeprogrammer-software-description-stmicroelectronics.pdf | UM2237 STM32CubeProgrammer software description}}, [[https://www.st.com/resource/en/user_manual/um2237-stm32cubeprogrammer-software-description-stmicroelectronics.pdf|оригинал]] Возможно понадобится установить пакет ''libusb'' apt install libusb-1.0-0 После установки нужно добавить правила [[udev:udev|udev]]: #!/bin/sh cd ~/STMicroelectronics/STM32Cube/STM32CubeProgrammer/Drivers/rules sudo cp *.* /etc/udev/rules.d/ {{udev_rules_d-280.zip|правила от STM32CubeProgrammer v.2.8.0}} Версия 2.8.0 не работает в [[debian:|]] — нужно использовать 2.7.0 или 2.6.0. ---- [[https://community.st.com/s/question/0D53W000012PiIJSA0/linux-stm32cubeprogrammer-280-crashes-clicking-connect|Linux - STM32CubeProgrammer 2.8.0 crashes clicking connect]] [[https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer#How_to_find_the_DEVICE_PORT_LOCATION_parameter_value_for_the_USB_link|How to find the DEVICE_PORT_LOCATION parameter value for the USB link]] [[https://www.st.com/en/development-tools/stsw-link009.html|STSW-LINK009 - ST-LINK, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 USB driver signed for Windows7, Windows8, Windows10 - STMicroelectronics]] [[https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer#Preparing_the_USB_serial_link_for_flashing|Preparing the USB serial link for flashing]] ===== STM32CubeMX ===== STM32CubeMX is a graphical tool that allows a very easy configuration of STM32 microcontrollers and microprocessors, as well as the generation of the corresponding initialization C code [[https://www.st.com/en/development-tools/stm32cubemx.html|STM32CubeMX]] https://wiki.st.com/stm32mpu/wiki/STM32CubeMX {{:stm32:dm00104712-stm32cubemx-for-stm32-configuration-and-initialization-c-code-generation-stmicroelectronics.pdf |UM1718}} User manual. STM32CubeMX for STM32 configuration and initialization C code generation. [[https://www.st.com/resource/en/user_manual/dm00104712-stm32cubemx-for-stm32-configuration-and-initialization-c-code-generation-stmicroelectronics.pdf|оригинал]] [[https://wiki.st.com/stm32mpu/wiki/STM32MP15_device_tree#STM32CubeMX_generated_device_tree|STM32MP15 - STM32CubeMX generated device tree]] ===== STM32CubeIDE ===== Integrated Development Environment for STM32. \\ STM32CubeIDE is an advanced C/C++ development platform with peripheral configuration, code generation, code compilation, and debug features for STM32 microcontrollers and microprocessors. It is based on the Eclipse®/CDT framework and GCC toolchain for the development, and GDB for the debugging. It allows the integration of the hundreds of existing plugins that complete the features of the [[eclipse:eclipse|Eclipse]]® IDE. [[https://www.st.com/en/development-tools/stm32cubeide.html|STM32CubeIDE]] https://wiki.st.com/stm32mpu/wiki/STM32CubeIDE * [[https://wiki.st.com/stm32mpu/wiki/STM32CubeIDE#OpenSTLinux_project_support_-_Cortex-C2-AE-A|OpenSTLinux project support - Cortex®-A]] ---- [[https://wiki.st.com/stm32mpu/wiki/How_to_install_the_Yocto_Project_SDK_in_STM32CubeIDE|How to install the Yocto Project SDK in STM32CubeIDE - stm32mpu]] ===== SW4STM32 ===== Это старое решение — используйте [[#STM32CubeIDE]] The System Workbench toolchain, called SW4STM32, is a free multi-OS software development environment based on Eclipse, which supports the full range of STM32 microcontrollers and associated boards. The SW4STM32 toolchain may be obtained from the website www.openstm32.org, which includes forums, blogs, and trainings for technical support. Once registered to this site, users will get installation instructions at the Documentation > System Workbench page to proceed with the download of the free toolchain. [[https://www.st.com/en/development-tools/sw4stm32.html|System Workbench for STM32: free IDE on Windows, Linux and OS X]] [[https://www.openstm32.org/Downloading%2Bthe%2BSystem%2BWorkbench%2Bfor%2BSTM32%2Binstaller|Downloading the System Workbench for STM32 installer]] ---- [[https://blog.radiotech.kz/stm32/perehod-s-keil-na-sw4stm32/|Переход с Keil на SW4STM32 | Radiotech.kz]] ====== Настройка ====== {{anchor:device_tree}} ===== Дерево устройств ===== Расширения файлов: * ''.dts'' — источник дерева устройств (DTS). Этот формат представляет собой текстовое представление дерева устройств в форме, которая может быть обработана DTC (компилятором дерева устройств) в двоичный файл, ожидаемый программными компонентами: ядром [[#Linux]], [[#U-Boot]] и [[#TF-A]]. * ''.dtsi'' — исходные файлы, которые могут быть включены из файла DTS * ''.h'' — файлы заголовков, которые могут быть включены из файлов DTS и DTSI Процесс построения дерева устройств: \\ {{:stm32:600px-dt.png|}} \\ [[https://wiki.st.com/stm32mpu/nsfr_img_auth.php/thumb/0/03/Dt.png/600px-Dt.png|оригинал]] \\ Инструмент под названием DTC (Компилятор дерева устройств) позволяет компилировать исходные файлы DTS в двоичный файл. Для настройки нужно использовать [[#STM32CubeMX]]. Готовые файлы удобно редактировать, использую стандартный редактор в [[midnight_commander:midnight_commander|Midnight Commander]], для этого создан файл подсветки синтаксиса {{:stm32:devicetree.syntax|}}. Для включение нужно добавить в настройки (подробнее о настройке [[midnight_commander:midnight_commander#syntax|здесь]]): file ..\*\\.(dts|dtsi)$ DeviceTree\sFile include devicetree.syntax ---- [[https://wiki.st.com/stm32mpu/wiki/Device_tree|Device tree]] https://www.devicetree.org/ ===== GPIO ===== Во время и сразу после сброса альтернативные функции не активны, а большинство портов ввода–вывода настроены на вход (input floating mode). Когда контакт настроен как выход, значение, записанное в регистр выходных данных (GPIOx_ODR), выводится на контакт ввода–вывода. Выходной драйвер можно использовать в режиме push–pull или в режиме с открытым коллектором (open-drain), работает только низкий уровень, высокий уровень — HI-Z (Z–состояние). Регистр входных данных (GPIOx_IDR) фиксирует данные, присутствующие на контакте ввода-вывода в каждом такте AHB(Advanced High–performance Bus). **13.3.1 General-purpose I/O (GPIO)** During and just after reset, the alternate functions are not active and most of the I/O ports are configured in input floating mode. When the pin is configured as output, the value written to the output data register (GPIOx_ODR) is output on the I/O pin. It is possible to use the output driver in push-pull mode or open-drain mode (only the low level is driven, high level is HI-Z). The input data register (GPIOx_IDR) captures the data present on the I/O pin at every AHB clock cycle {{stm32:rm0436_2021-01-21_stm32mp157-advanced-armbased-32bit-mpus-stmicroelectronics.pdf|RM0436 — STM32MP157 advanced Arm®-based 32-bit MPUs}} GPIO используется для настройки линий ввода–вывода. Каждая группа GPIO состоит из 8 линий (K и Z) или 16 линий (A–J). {{anchor:gpio_register_abbreviations}} ==== Аббревиатуры регистров ==== В описаниях регистров используются следующие сокращения (x = A до H, K или Z) : |GPIOx_MODER|GPIO port mode register| |GPIOx_OTYPER|GPIO output type register| |GPIOx_OSPEEDR|GPIO output speed register| |GPIOx_PUPDR|GPIO port pull-up / pull-down register| |GPIOx_IDR|GPIO port input data register|чтение состояний (вход)| |GPIOx_ODR|GPIO port output data register|запись состояний (выход)| |GPIOx_BSRR|GPIO port bit set / reset register|побитная запись в регистр (выход)| |GPIOx_LCKR|GPIO port configuration lock register| |GPIOx_AFRL|GPIO alternate function low register| |GPIOx_AFRH|GPIO alternate function high register| |GPIOx_ASCR|GPIO port analog switch control register| ---- [[https://wiki.st.com/stm32mpu/wiki/GPIO_internal_peripheral|GPIO internal peripheral]] [[https://wiki.st.com/stm32mpu/wiki/Pinctrl_overview|Pinctrl overview]] [[https://wiki.st.com/stm32mpu/wiki/Pinctrl_device_tree_configuration|Pinctrl device tree configuration ]] [[https://wiki.st.com/stm32mpu/wiki/GPIO_device_tree_configuration|GPIO device tree configuration]] [[https://wiki.st.com/stm32mpu/wiki/How_to_control_a_GPIO_in_userspace|How to control a GPIO in userspace]] [[https://wiki.st.com/stm32mpu/wiki/How_to_control_a_GPIO_in_kernel_space| How to control a GPIO in kernel space]] {{:stm32:an4899-stm32-microcontroller-gpio-configuration-for-hardware-settings-and-lowpower-consumption-stmicroelectronics.pdf|AN4899 STM32 microcontroller GPIO configuration for hardware settings and low-power consumption}}, [[https://www.st.com/resource/en/application_note/an4899-stm32-microcontroller-gpio-configuration-for-hardware-settings-and-lowpower-consumption-stmicroelectronics.pdf|оригинал]] {{anchor:boot}} ====== Загрузка ====== Запуск Linux на процессоре выполняется в несколько этапов, которые постепенно инициализируют периферийные устройства и память платформы. Общая загрузочная цепочка Linux (указаны типичные размеры памяти для каждого этапа): \\ {{:stm32:boot_chains_overview.png|}} \\ [[https://wiki.st.com/stm32mpu/nsfr_img_auth.php/9/94/Boot_chains_overview.png|оригинал]] ---- [[https://wiki.st.com/stm32mpu/wiki/Boot_chain_overview|Boot chain overview - stm32mpu]] {{anchor:rom_code}} ===== Код ПЗУ ===== Код ПЗУ (ROM code) — это часть программного обеспечения, которое хранится в ПЗУ. Он умещается в несколько десятков килобайт и отображает свои данные во встроенной оперативной памяти. Это первый код, выполняемый процессором, и он включает всю логику, необходимую для выбора загрузочного устройства (последовательное соединение или флэш–память), с которого первичный загрузчик ([[#FSBL]]) загружается во встроенное ОЗУ. Для большинства продуктов требуется доверять приложению, работающему на устройстве, и код ПЗУ является первым звеном в цепочке доверия, которая должна быть установлена для всех запущенных компонентов: это доверие устанавливается путём аутентификации [[#FSBL]] перед его запуском. ===== FSBL ===== First stage boot loader — первичный загрузчик. Он инициализирует (часть) дерева часов и внешнего контроллера ОЗУ, далее он загружает [[#SSBL|вторичный загрузчик]] во внешнее ОЗУ и передаёт ему управление. В качестве такого загрузчика используется: * [[#TF_A|TF-A (Trusted Firmware-A)]] ===== SSBL ===== Second-stage boot loader — вторичный загрузчик. Он работает в большом объёме ОЗУ, поэтому он может работать с USB, Ethernet, дисплей и т. д., которые полезны для более гибкой загрузки ядра Linux (с флэш–устройства, сеть и т. д.) и удобны для пользователя (показывая пользователю экран-заставку). Обычно d качестве такого загрузчика Linux во встроенных системах. используется: * [[#U-Boot]] {{anchor:TF_A}} ===== TF-A ===== TF-A (Trusted Firmware-A) разделен на несколько двоичных файлов, каждый из которых выполняет свою главную роль. Для 32-битных процессоров Arm (AArch32) доверенная загрузка разделена на четыре этапа (в порядке выполнения): - 1 (BL1) application processor trusted ROM - 2 (BL2) trusted firmware - 3-2 (BL32) runtime software - 3-3 (BL33) non-trusted firmware BL1, BL2 и BL32 являются частями TF-A. В виду того, что STM32 MPU используют специальный [[#ROM_code|код ПЗУ]], этап загрузки BL1 удаляется. Код ПЗУ ожидает, что BL2 будет работать на уровне выполнения EL3. Этот режим выбирается, когда включён флаг сборки BL2_AT_EL3. BL33 находится за пределами TF-A. Это первый незащищённый код, загруженный TF-A. Во время загрузки это вторичный загрузчик ([[#SSBL]]). Для платформ MPU STM32 [[#SSBL]] по умолчанию является [[#U-Boot]]. TF-A может управлять своей конфигурацией с помощью дерева устройств. На этапе BL2 это сокращённая версия ядра Linux, в которой во время загрузки используются только необходимые устройства. Его можно настроить с помощью [[#STM32CubeMX]]. {{:stm32:boot_atf.png|}} \\ [[https://wiki.st.com/stm32mpu/nsfr_img_auth.php/2/2a/Boot_ATF.png|оригинал]] {{:stm32:boot_atf_legend.png|}} \\ [[https://wiki.st.com/stm32mpu/nsfr_img_auth.php/7/79/Boot_ATF_legend.png|оригинал]] Шаги загрузки TF-A: - Загрузка [[#ROM_code|кода из ПЗУ]] и вызов BL2 - BL2 загружает BL32 - BL2 загружает BL33 - BL2 вызывает BL32 - BL32 вызывает BL33 [[#device_tree|Дерево устройств]] в [[#STM32CubeMX]]: \\ {{:stm32:device_tree_tf-a_stm32cubemx.png|}} \\ [[https://wiki.st.com/stm32mpu/nsfr_img_auth.php/8/88/Device_tree_TF-A_STM32CubeMX.png|оригинал]] ---- [[https://wiki.st.com/stm32mpu/wiki/TF-A_overview|TF-A overview]] [[https://wiki.st.com/stm32mpu/wiki/STM32MP15_device_tree#TF-A|TF-A device tree]] ===== U-Boot ===== [[das_u-boot:das_u-boot|]] U-Boot — это вторичный загрузчик ([[#SSBL]]) для STM32. Основные характеристики SSBL: * Настраиваемый * Имеет простой интерфейс командной строки (CLI), позволяющий пользователям работать через консоль на последовательном порту * Возможности создания сценариев * Он загружает ядро в оперативную память и передаёт управление ядру * Он управляет несколькими внутренними и внешними устройствами, такими как флэш–память NAND и NOR, Ethernet и USB * Он поддерживает следующие функции: * Файловые системы: FAT, UBI/UBIFS, JFFS * Стек TCP/IP: FTP * Дисплей: LCD, HDMI, BMP для заставки * USB: хост (запоминающее устройство) или устройство (стек DFU) [[#device_tree|Дерево устройств]] в [[#STM32CubeMX]]: \\ {{:stm32:device_tree_u-boot_stm32cubemx.png|}} \\ [[https://wiki.st.com/stm32mpu/nsfr_img_auth.php/7/73/Device_tree_U-Boot_STM32CubeMX.png|оригинал]] ---- * [[https://wiki.st.com/stm32mpu/wiki/U-Boot_overview|U-Boot overview]] * [[https://wiki.st.com/stm32mpu/wiki/STM32MP15_device_tree#U-Boot|U-Boot device tree]] * [[https://wiki.st.com/stm32mpu/wiki/How_to_configure_U-Boot_for_your_board| How to configure U-Boot for your board ]] ===== Linux ===== [[#device_tree|Дерево устройств]] в [[#STM32CubeMX]]: \\ {{:stm32:device_tree_linux_stm32cubemx.png|}} \\ [[https://wiki.st.com/stm32mpu/nsfr_img_auth.php/6/6f/Device_tree_Linux_STM32CubeMX.png|оригинал]] deb http://packages.openstlinux.st.com/3.1 dunfell main updates untested ---- [[https://wiki.st.com/stm32mpu/wiki/Package_repository_for_OpenSTLinux_distribution|Package repository for OpenSTLinux distribution]] ====== Документация ====== {{:stm32:dm00389996-getting-started-with-stm32mp151-stm32mp153-and-stm32mp157-line-hardware-development-stmicroelectronics.pdf|AN5031 Application note: Getting started with STM32MP151, STM32MP153 and STM32MP157 line hardware development}}, [[https://www.st.com/resource/en/application_note/dm00389996-getting-started-with-stm32mp151-stm32mp153-and-stm32mp157-line-hardware-development-stmicroelectronics.pdf|оригинал]] {{:stm32:dm00526767-stlinkv3set-debuggerprogrammer-for-stm8-and-stm32-stmicroelectronics.pdf|STLINK-V3SET debugger/programmer for STM8 and STM32}}, [[https://www.st.com/resource/en/user_manual/dm00526767-stlinkv3set-debuggerprogrammer-for-stm8-and-stm32-stmicroelectronics.pdf|оригинал]] **{{:stm32:stm32mp1-software-platform_boot.pdf|STM32MP1 platform boot}}, [[https://www.st.com/content/ccc/resource/training/technical/product_training/group1/ac/45/53/56/1f/0b/47/68/STM32MP1-Software-Platform_boot_BOOT/files/STM32MP1-Software-Platform_boot_BOOT.pdf/_jcr_content/translations/en.STM32MP1-Software-Platform_boot_BOOT.pdf|оригинал]]** **[[https://wiki.st.com/stm32mpu/wiki/STM32MPU_Embedded_Software_architecture_overview|STM32MPU Embedded Software architecture overview - stm32mpu]]** {{dm00046982-stm32-cortex-m4-mcus-and-mpus-programming-manual-stmicroelectronics.pdf|PM0214 Programming manual - STM32 Cortex®-M4 MCUs and MPUs programming manual}}, [[https://www.st.com/resource/en/programming_manual/dm00046982-stm32-cortex-m4-mcus-and-mpus-programming-manual-stmicroelectronics.pdf|оригинал]] ====== STLinux ====== [[https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-mpu-openstlinux-distribution/stm32mp1dev.html|STM32MP1Dev - STM32MP1 OpenSTLinux Developer Package - STMicroelectronics]] [[https://wiki.st.com/stm32mpu-ecosystem-v1/wiki/Main_Page|Wiki archive for STM32 MPU ecosystem-v1 releases]] [[https://wiki.st.com/stm32mpu-ecosystem-v1/wiki/SDK_for_OpenSTLinux_distribution|SDK for OpenSTLinux distribution]] * https://www.st.com/en/development-tools/stlinux.html * http://archive.stlinux.com/ * http://archive.stlinux.com/stlinux/2.4/iso/STLinux-2.4-armv7_spear-20121121.iso ====== Ссылки ====== [[wpru>STM32]] [[https://blog.kvv213.com/2020/01/kak-proshit-chip-stm32/|Как прошить чип STM32 | Многобукфф]] [[https://www.compel.ru/lib/141174|Использование экосистемы STMicroelectronics: подключение датчиков к STM32G4]] **[[http://www.count-zero.ru/tags/stm32/|CountZero: выборка по тегу: STM32]]** [[https://microtechnics.ru/mikrokontroller-i-bootloader-opisanie-i-princip-raboty/|Микроконтроллер и Bootloader. Описание и принцип работы.]] [[https://habr.com/ru/company/macloud/blog/561462/|Собираем и устанавливаем свою Linux-систему на микроконтроллер STM32MP1 / Хабр]] [[https://habr.com/ru/post/503600/|STM32MP1: U-Boot, Buildroot, Arch Linux и немного Debian / Хабр]] [[http://microsin.net/programming/arm/stm32-terms-and-abbreviations.html|STM32: аббревиатуры и термины | arm | programming]] [[http://mypractic.ru/biblioteka-hal|Библиотека HAL для STM32. Перечень функций и ссылок.]] **[[https://www.carminenoviello.com/mastering-stm32/|Mastering STM32 book]]** [[https://eax.me/stlink-v2-1/|Паяем standalone-версию программатора ST-Link/v2-1 | Записки программиста]] {{tag>stm32 Hardware}}