( nyuszis | 2019. 09. 16., h – 16:17 )

Szia!
Olvastam a témaindító hozzászólást és mivel én is hasonló cipőben járok, kértem egy felhasználót, hogy beírhassak. Látom, hogy sok hozzászólás érkezett, de én is leírom az én válaszom, mert bennem is ugyanaz az igény fogalmazódott meg mint amit írsz, hogy "bare metal" módon tudjam a legkisebb TSOP20 tokozású STM32F030f4p6 programozni.
Az alapok ugyanazok nálam is mint amit írtál, az STM8-al és több más mikrovezérlővel is hobbi szinten foglalkozom, ugyanúgy szeretem felhasználni az STM8S103F3P6 mikrovezérlőt, mert nagyon olcsó, könnyen programozható és beforrasztani sem nehéz, jelenleg a forrasztóállomásomat is ez az MCU vezérli. Én ugyan windowst használok, mert a munkám azt követeli meg, de SDCC és GCC-vel fordítok, ezek linux alatt is rendelkezésre állnak.

Mellékelek egy példakódot és egy fordítókörnyezetet, lent a DRIVE-os link.

A fordításhoz kell egy ARM-GCC, én most letöltöttem a legújabbat, ezt használom gcc-arm-none-eabi-8-2019-q3-update , ezen felül kellhet még az STM32F0xx standard peripherals library (STSW-STM32048 névre rákeresve letölthető), ha esetleg érdekelnek a példaprogramok. Az SPL sajnos elég nagy kódot generál, sokszor nem is fér el 16K-ban.
A példakód egy blink a PIN10/PA4-en, de beállítok egy USART-ot is, hogy lehessen követni hol tart, PIN8/PA2/TX, PIN9/PA3/RX.


RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
GPIOA->MODER |= 0b0100000000U; // Output PA4
GPIOA->ODR |= (1U << 4 );
...
GPIOA->ODR &= ~(1U << 4 );

https://drive.google.com/open?id=1nWA94UvQdlUt3QFqwri27BFQnk2KBinq

https://i.ibb.co/bb684pR/stm32f030-bare-metal.jpg