Mündəricat:

Linuxda STM32 inkişaf etdirməyə başlayın: 4 addım
Linuxda STM32 inkişaf etdirməyə başlayın: 4 addım

Video: Linuxda STM32 inkişaf etdirməyə başlayın: 4 addım

Video: Linuxda STM32 inkişaf etdirməyə başlayın: 4 addım
Video: BTT Octopus V1.1 — Конфигурация Klipper 2024, Noyabr
Anonim
Image
Image
Lazım olan hər şeyi yükləyin
Lazım olan hər şeyi yükləyin

Bu Təlimat kitabında, Linuxda STM32 proqramlarını inkişaf etdirməyin nə qədər asan olduğunu sizə göstərəcəyəm. 2 il əvvəl Linux -u əsas maşınım olaraq istifadə etməyə başladım və heç bir şeydən imtina etmədim. Hər şey pəncərələrdən daha yaxşı işləyir. Əlbəttə ki, zaman zaman daha az əlverişlidir, ancaq istifadə edə biləcəyiniz şeyləri daha dərindən öyrənməyə məcbur edir.

Hər halda, burada və youtube -da başladığım bir seriyanın bir hissəsi bunu necə başlatacağımla bağlıdır. Zəhmət olmasa hər şeyi bir seqment olaraq izah etdiyim youtube videosuma baxdığınızdan əmin olun və yanımda kod yaza bilərsiniz.

Bu seriyada, notepad, SublimeText və ya Atom kimi yalnız bir mətn redaktoru ilə necə inkişaf edə biləcəyinizi sizə göstərəcəyəm, buna görə heç bir xüsusi proqrama və ya IDE -yə ehtiyacınız yoxdur. Bu, əldə etdiyi qədər çılpaq sümüklərdir və təəccüblü dərəcədə asandır.

Addım 1: Lazım olan hər şeyi yükləyin

Hər şeyin işləməsi üçün üç hissəni yükləməlisiniz:

  • ARM üçün GCC tərtibçisi
  • STM32 firmware faylları
  • St-link proqramı
  • Nümunə Layihə

Compiler, C kodumuzu bütün digər kitabxana sənədləri ilə stm32 nəzarətçimizin anlaya biləcəyi maşın dilinə toplayan əsas proqramdır. Bu kompilyatorun əvvəlcədən tərtib edilmiş son versiyasını yükləyin.

STM32 firmware olan qovluq, əsas prosessorun işləməsi üçün lazım olan bütün başlanğıc və əsas faylları saxlayan qovluqdur. HAL -ı aşan Standart Periferik Kitabxanadan istifadə edəcəyik. StPeriphLibrary -ı daha çox bəyənirəm, çünki bu prosessorlarda işləyən şirkətlər sağlamdır, köhnədir və dəstəklənir. Həm də daha möhkəmdir. Bir periferik cihazı işə salmaq və ya bir LED açmaq üçün etməli olduğunuz işi kəsmir, ancaq bu prosessorların necə işlədiyini öyrənməyə məcbur edir. Bununla daxili işlər haqqında daha çox məlumatınız var, beləliklə hər hansı bir işi proqramlaşdırmaq mənasını verir.

Yükləmək üçün son proqram st-link yardım proqramıdır. Github -da saxlanılır və SWD / JTAG proqramçısı / ayıklayıcı kimi xidmət edən lövhədə stlink IC istifadə edərək tərtib edilmiş ikili faylları prosessora ötürmək üçün istifadə olunur.

Daha sonra danışacağım bir nümunə layihə qovluğu da təqdim etdim və yükləyə bilərsiniz. İlk VIDEO1 qovluğundadır.

Addım 2: Proqram təminatının quraşdırılması

Proqram Quraşdırılması
Proqram Quraşdırılması
Proqram Quraşdırılması
Proqram Quraşdırılması

Bütün faylları yüklədikdən sonra eyni məqsəd üçün birlikdə istifadə edildiyi üçün onları ümumi bir qovluğa daxil etməyi təklif edirəm. Bütün qovluqları HOME qovluğumdakı "Gömülü" adlı bir qovluğa qoydum.

Ən asan olan STM32 kitabxanalarından başlayacağıq. Yüklədiyiniz qovluq yalnız orada qala bilər. Müvafiq faylların harada saxlanıldığını görmək üçün ətrafı qazmağa əmin olun. Buna görə də, əsas MakeFile -i dəyişdirə və redaktə edə bilərsiniz ki, platformanızla işləsin.

Ən asan ikinci tərtibatçıdır. Bunun üçün heç bir şey etməyinizə ehtiyac yoxdur, ancaq tərtibçini qlobal olaraq əlçatan bir funksiya edəcəyik ki, yolundan asılı olmayaraq hər hansı bir qovluqdan tərtibçiyə zəng edə biləsiniz. Bütün addımlar terminalda və ya gui -də edilə bilər, amma təcrübədən keçdikcə daha sürətli və asanlaşdığı üçün terminaldan istifadə etməyi sevirəm və qorxursanız terminaldan daha çox istifadə etməyi məsləhət görürəm. İşdə addımlar:

  1. Ev qovluğunuza daxil olun "/home/YOURUSERNAME/" və ya "~/" və ya terminala cd yazın
  2. yazaraq ".bashrc" faylını açın: nano.bashrc
  3. faylın sonuna qədər aşağı diyirləyin və bu sətiri əlavə edin: ixrac PATH = $ PATH: ~/Gömülü/gcc-arm-heç-eabi-8-2018-q4/bin
  4. qənaət edərək çıxın: CTRL+X, Y, ENTER düymələrini basın
  5. run əmri: source.bashrc terminal mənbələrini yeniləmək üçün
  6. yazaraq hər şeyin işlədiyini yoxlayın: arm-none-eabi-gcc --version, tərtibçinin ən son versiyasını göstərməlidir

St-linki qurmaq üçün yüklədiyiniz arxivi Gömülü qovluğa çıxarın. Sonra bu addımları izləyin:

  1. Qaç: düzəlt
  2. "Build/Release" qovluğuna daxil olun: cd build/Release
  3. Ls yazın və "st-flash" və "st-util" adlı iki yürütülebilir fayl görəcəksiniz.
  4. Bu ikisini stlink ana qovluğuna köçürün: mv st-flash st-util../../
  5. Bu iki funksiyadan istifadə etmək istəyirsinizsə, ".bashrc" faylını əlavə edərək yenidən redaktə edə bilərsiniz:

    ixrac PATH = $ PATH: ~/Gömülü/stlink/

Hamısı budur! Ehtiyacınız olan hər şeyə sahibsiniz. İndi ən çox sevdiyiniz mətn redaktorunu götürün. Sadəcə standart birini istifadə edin, SublimeText və ya Atom kimi daha ağıllı, istifadə etdiyim budur.

Addım 3: Nümunə Layihə Qurmaq

Nümunə Layihə Qurmaq
Nümunə Layihə Qurmaq

İndi hər bir layihəyə başlamaq üçün istifadə edə biləcəyiniz bir nümunə layihə yaradacağıq. Bütün əsas parametrlər artıq işlənmiş bir şablon kimidir.

MEGA -dan yükləyə bilərsiniz, link bu təlimatlı və mənim hər youtube videomun altındakı ilk addımdır. İçəridə bu prosessor və Makefile üçün bəzi başlanğıc sənədləri ilə birlikdə boş main.c faylı var. Makefile, C tərtibçisinə silah tərtibçisinin harada tapılacağını, necə tərtib ediləcəyini və bütün kitabxanaların harada olduğunu söyləyən biridir. Layihəniz üçün bu uyğun faylları əldə etmək üçün STM32 kitabxana qovluğuna girib "layihə" və ya "nümunələr" qovluqlarını yoxlaya bilərsiniz. İçəridə bu faylları görürsünüz və kopyalayacaqsınız: main.c, Makefile və XXX_conf.h, system_XXX.c. Ayrıca qovluqda tapa biləcəyiniz stm32_flash.ld linker faylına ehtiyacınız olacaq:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/" nümunə qovluğundadır və ya sadəcə faylı axtarın.

Makefile onlayn olaraq tapıla bilər və ya qovluğumdan kopyalana bilər, ancaq bir neçə şeyi dəyişdirməlisiniz. Mənim hazırladığım sənədə və nəyi dəyişə biləcəyinizə nəzər salaq.

# Lövhəyə kod yükləmək üçün stlink qovluğuna gedən yol

STLINK = ~/Gömülü/stlink # Mənbə fayllarınızı bura qoyun (*.c) SRCS = main.c system_stm32f4xx.c # Kitabxanalar mənbə faylları #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # İkili fayllar yaradılacaq bu ad (.elf,.bin,.hex) PROJ_NAME = test # STM32F4 kitabxana kodu qovluğunuzu bura qoyun, YENİ İSTİFADƏÇİSİNİ özünüzə dəyişdirin STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Derleyici ayarları. Digər başlıq fayllarını daxil etmək üçün yalnız CFLAGS -i redaktə edin. CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # Kompilyator bayraqları CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle -endian -mthumb cortex-m4 -mthumb-interwork CFLAGS += -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS += -I. # STM kitabxanalarından faylları daxil edin CFLAGS += -I $ (STM_COMMON)/Kitabxanalar/CMSIS/Daxil CFLAGS += -I $ (STM_COMMON)/Kitabxanalar/CMSIS/ST/STM32F4xx/CFLAGS += -I $ (STM_COMMON) Kitabxanalar/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery #, SRCS += $ (STM_COMMON)/Kitabxanalar/CMSIS/ST/STM32F4xx/başlanğıc faylı əlavə edin. s OBJS = $ (SRCS:.c =.o) vpath %.c $ (STM_COMMON)/Kitabxanalar/STM32F4xx_StdPeriph_Driver/src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME).elf: $ (SRCS) $ (CC) $ (CFLAGS) $^ -o $@ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (OBJCOPY) -O ikili $ (PROJ_NAME) özü $ (PROJ_NAME).bin təmiz: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flaş STM32F4 yanıq: proj $ (STLINK)/st -flash $ (PROJ_NAME).bin 0x80000000

  • Stlink kommunal qovluğunuzun yolunu dəyişdirmək üçün birinci sətri düzəldə bilərsiniz
  • Kitabxanalar və YOURUSERNAME ilə xətti qovluğunuzun təyinatına dəyişə bilərsiniz

    STM_COMMON =/ev/SİZİN KULLANICI Adınız/Gömülü/STM32F4-Discovery_FW_V1.1.0

  • Bütün kitabxanaların əlaqəli olduğu bölməyə də baxın. Bu istifadə etdiyiniz platformadan asılı olaraq dəyişə bilər, buna görə də fayl ağacında dəyişiklik olub olmadığını yoxlayın. Başlanğıc faylı olan növbəti sətirdə olduğu kimi, müəyyən fayllara gedən yolları ehtiva edən hər şey dəyişdirilə bilər.

Bütün bunları Makefile daxilində redaktə etdikdən sonra, dizininizin içərisində bir terminal açaraq yazaraq: işlədiyini yoxlaya bilərsiniz. Hər şeyi heç bir problem olmadan tərtib edirsə, deməli siz hazırsınız. Əks təqdirdə, tərtibçi səhvlərinə baxın və Makefile -i redaktə edin.

Ayrıca, Atomdan istifadə edərkən, iki ədəd kodu yan -yana qoydum. Adətən main.c və Makefile solda olur, çünki Makefile faylını yalnız bir dəfə və sağdakı kitabxanaları redaktə etməlisiniz. Şəkildə hər kitabxana üçün.c və.h faylları olan qovluğu açdığımı görə bilərsiniz. Bütün bunları videolarda görə bilərsiniz.

Addım 4: Bitdi

Bitdi!
Bitdi!

İndi Makefile konfiqurasiya etdiyiniz və işləyən bir tərtibatçı olduğunuz üçün, bu qovluğu şablon olaraq bütün layihələr üçün istifadə edə bilərsiniz, buna görə də bu qovluğun bir nüsxəsini saxladığınızdan əmin olun.

İnkişaf lövhənizi bağlayaraq və terminala yazaraq st-flash və st-info proqramlarını da sınaya bilərsiniz:

st-info-prob

Stlink proqramının tanıdığı platformanı və IC ailəsini önbellek və digər əşyalarla birlikdə görə bilərsiniz. Daxil edə bilərsiniz:

st-info

bütün mövcud parametrləri görmək üçün.

İndi proqramlaşdırmaya başlaya bilərsiniz. Növbəti təlimatlı və videoda sizə GPIO və saatların əsaslarını göstərəcəyəm. Bu ikisi, hər şeyin əsaslarıdır, çünki lövhənin qarşılıqlı əlaqədə olduğu demək olar ki, hər şey GPIO üzərindədir və hər şey saatda işləyir və bu prosessorların proqramlaşdırılması nümunəsini görəcəksiniz.

O vaxta qədər youtube videolarımı izlədiyiniz üçün təşəkkür edirəm, əgər hələ bunu etməmisinizsə.

Tövsiyə: