Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
STM32 uputstva za iskusne početnike
#7
Da podignemo malo temu, evo malo naprednijeg pristupa programiranja STM32 mikrokontrolera ali upotrebom besplatnih GNU alata "gcc" i "cmake".

Source code za Blink LED primer je ovde:
https://github.com/mikikg/stm32f103-cmake-template

Vas ce uglavnom interesovati ono sto je u Src/main.c, fajlovi u RTE/ su deo minimalistickog CMSIS frejmwork-a, nema nikakvih HAL drajvera niti dodatnih "zavistnosti" (dependencies), sve sto treba je projektnom direktorijumu.

Zgodna stvar sa ovim pristupom je ta sto ste i dalje u poznatom CMSIS "fazonu" samo je postavka projekta malo drugacija i koriste se GNU alati.

Glavne stvari za prevodjenje se desavaju u fajlu CMakeLists.txt i u sustini tu ne morate nista da menjate osim mozda ime projekta koji je sad myprj i ime linker skripte koja specificna za izabran MCU, trenutno je podeseno na STM32F103C8Tx_FLASH.ld.
Ako menjate target MCU neophodno je "nabaviti" i linker skriptu + header fajlove, ima ih na primer u Keil-u.
PS: Potrudicu se da skorije postavim na GIT i template projekat za STM32F407.
 
Vase (dodatne) fajlove mozete postaviti u pod-direktorijume Src/ i Inc/.

Konkretna procedura za prevodjenje je sledeca:

Code:
git clone https://github.com/mikikg/stm32f103-cmake-template
cd stm32f103-cmake-template/
mkdir build
cd build/
cmake -DCMAKE_BUILD_TYPE="Relese" ..
make

Nakon ovoga u folderu build dobicete myprj.bin, myprj.elf i myprj.hex koje mozete usnimiti u MCU sa nekim GUI programom ili pomocu st-flash i ovom komandom:

Code:
st-flash write myprj.bin 0x8000000

Neophodni alati za prevodjenje su cmake i gcc-arm-none-eabi i za Linux se moze instalirati sa komandom u nastavku dok za Windows mogu da se skinu posebne instalacione arhive (+ podesiti path variable).

Code:
apt install -y cmake gcc-arm-none-eabi
Reply


Messages In This Thread
STM32 uputstva za iskusne početnike - by npejcic - 05-16-2015, 08:21 PM
RE: STM32 uputstva za iskusne početnike - by mikikg - 04-15-2020, 04:08 AM

Forum Jump:


Users browsing this thread: 2 Guest(s)