Mundarija:

Linuxda STM32 ishlab chiqishni boshlang: 4 qadam
Linuxda STM32 ishlab chiqishni boshlang: 4 qadam

Video: Linuxda STM32 ishlab chiqishni boshlang: 4 qadam

Video: Linuxda STM32 ishlab chiqishni boshlang: 4 qadam
Video: BTT Octopus V1.1 — Конфигурация Klipper 2024, Noyabr
Anonim
Image
Image
Sizga kerak bo'lgan hamma narsani yuklab oling
Sizga kerak bo'lgan hamma narsani yuklab oling

Bu yo'riqnomada men sizga Linuxda STM32 dasturlarini ishlab chiqishni boshlash qanchalik osonligini ko'rsataman. Men Linuxni asosiy mashinam sifatida 2 yil oldin ishlata boshlaganman va uni qo'yib yubormaganman. Hamma narsa derazalarga qaraganda tezroq va yaxshiroq ishlaydi. Albatta, vaqti -vaqti bilan unchalik qulay emas, lekin u sizni undan chuqurroq o'rganishga majbur qiladi, shunda siz undan foydalanishingiz mumkin.

Yaxshiyamki, men bu erda va youtube -da boshlayotgan serialning bir qismi, uni qanday boshlash haqida. Iltimos, youtube -dagi videomni ham tomosha qiling, bu erda men hamma narsani bitta segment sifatida tushuntiraman va siz menga kod yozishingiz mumkin.

Bu turkumda men sizga qanday qilib notepad, SublimeText yoki Atom kabi matn muharriridan foydalangan holda ishlab chiqishingiz mumkinligini ko'rsataman, shuning uchun sizga maxsus dasturiy ta'minot yoki IDE kerak emas. Bu yalang'och suyaklardir va bu ajablanarli darajada oson.

1 -qadam: Sizga kerak bo'lgan hamma narsani yuklab oling

Hammasi ishlashi uchun siz uchta qismni yuklab olishingiz kerak:

  • ARM uchun GCC kompilyatori
  • STM32 dasturiy ta'minot fayllari
  • St-link yordam dasturi
  • Loyiha namunasi

Kompilyator - bu bizning C kodimizni boshqa kutubxona fayllari bilan stm32 kontrollerimiz tushunadigan mashina tiliga yig'adigan dasturiy ta'minotning asosiy qismi. Ushbu kompilyatorning oldindan tuzilgan so'nggi versiyasini yuklab oling.

STM32 dasturiy ta'minoti bo'lgan papka - bu asosiy protsessorning ishlashi uchun zarur bo'lgan barcha boshlang'ich va asosiy fayllarni saqlaydigan papka. Biz HAL -dan oshib ketgan standart periferik kutubxonadan foydalanamiz. Menga StPeriphLibrary ko'proq yoqadi, chunki bu protsessorlarda ishlaydigan kompaniyalar ulardan foydalanadi, chunki u mustahkam, eski va qo'llab -quvvatlanadi. Bundan tashqari, u yanada mustahkamroq. Bu periferik qurilmani ishga tushirish yoki LEDni yoqish uchun kerak bo'lgan ishni qisqartirmaydi, lekin bu sizni bu protsessorlarning qanday ishlashini o'rganishga majbur qiladi. Shu bilan siz ichki ishlar haqida ko'proq ma'lumotga ega bo'lasiz, shuning uchun har qanday vazifani dasturlash mantiqiy bo'ladi.

Yuklab olinadigan oxirgi dastur-bu st-link yordamchi dasturi. U github -da saqlanadi va SWD / JTAG dasturchisi / nosozliklarni tuzatuvchi sifatida ishlaydigan bortdagi stlink IC yordamida tuzilgan ikkilik fayllarni protsessorga o'tkazish uchun ishlatiladi.

Bundan tashqari, men keyinroq gaplashadigan namunaviy loyiha papkasini taqdim qildim va siz uni yuklab olishingiz mumkin. U birinchi VIDEO1 papkasida joylashgan.

2 -qadam: dasturiy ta'minotni o'rnatish

Dasturiy ta'minotni o'rnatish
Dasturiy ta'minotni o'rnatish
Dasturiy ta'minotni o'rnatish
Dasturiy ta'minotni o'rnatish

Barcha fayllarni yuklaganingizdan so'ng, ularni umumiy papkaga joylashtirishingizni maslahat beraman, chunki ular bir maqsadda ishlatiladi. Men barcha papkalarni HOME katalogidagi "O'rnatilgan" deb nomlangan papkaga joylashtirdim.

Biz STM32 kutubxonalaridan boshlaymiz. Siz yuklagan papkani o'sha erda qoldirish mumkin. Tegishli fayllar qayerda saqlanganligini bilish uchun atrofni qazib oling. Shunday qilib, siz MakeFile -ni o'zgartirishingiz va tahrirlashingiz mumkin, shunda u sizning platformangiz bilan ishlaydi.

Ikkinchi oson - bu kompilyator. Bundan tashqari, sizga hech narsa qilishning hojati yo'q, lekin biz kompilyatorni butun dunyo bo'ylab mavjud bo'lgan funktsiyaga aylantiramiz, shunda siz kompilyatorni yo'ldan qat'i nazar istalgan papkadan chaqira olasiz. Barcha qadamlar terminalda yoki gui -da amalga oshirilishi mumkin, lekin men terminaldan foydalanishni yaxshi ko'raman, chunki tajribaga ega bo'lsang, u tezroq va osonroq bo'ladi va agar qo'rqsang, terminaldan ko'proq foydalanishni tavsiya qilaman. Mana, qadamlar:

  1. "/Home/YOURUSERNAME/" yoki "~/" uy papkasiga kiring yoki terminalga CD yozing.
  2. ".bashrc" faylini kiriting: nano.bashrc
  3. faylning oxirigacha pastga siljiting va bu qatorni qo'shing: PATH = $ PATH ni eksport qiling: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. saqlash orqali chiqish: CTRL+X, Y, ENTER tugmalarini bosing
  5. buyruqni ishga tushiring: source.bashrc terminal manbalarini yangilash uchun
  6. hamma narsa ishlayotganligini tekshiring: arm-none-eabi-gcc --version, u kompilyatorning eng so'nggi versiyasini ko'rsatishi kerak

St-linkni o'rnatish uchun yuklangan arxivni o'rnatilgan papkaga chiqarib oling. Keyin quyidagi bosqichlarni bajaring:

  1. Yugurish: qilish
  2. "Build/Release" papkasiga o'ting: cd build/Release
  3. Ls yozing va siz "st-flash" va "st-util" deb nomlangan ikkita bajariladigan faylni ko'rasiz.
  4. Bu ikkalasini stlink ota-katalogiga o'tkazing: mv st-flash st-util../../
  5. Agar siz ushbu ikkita funktsiyadan foydalanmoqchi bo'lsangiz, ".bashrc" faylini qayta qo'shishingiz mumkin:

    eksport PATH = $ PATH: ~/O'rnatilgan/stlink/

Hammasi shu! Sizda kerak bo'lgan hamma narsa bor. Endi o'zingiz yoqtirgan matn muharririni oling. SublimeText yoki Atom kabi aqlli bo'lgani uchun men faqat standartni ishlataman.

3 -qadam: Namunaviy loyihani o'rnatish

Namuna loyihasini o'rnatish
Namuna loyihasini o'rnatish

Endi biz har bir loyihani boshlash uchun foydalanishingiz mumkin bo'lgan namunaviy loyihani yaratamiz. Bu shablonga o'xshaydi, uning asosiy sozlamalari allaqachon ishlangan.

Siz uni MEGA -dan yuklab olishingiz mumkin, havola bu ko'rsatmali birinchi qadamda va mening har bir youtube videoim ostida. Ichida bo'sh main.c fayli, bu protsessor va Makefile uchun boshlang'ich fayllar mavjud. Makefile - bu C kompilyatoriga qo'l kompilyatorini qaerdan topish, qanday kompilyatsiya qilish va hamma kutubxonalar qaerda ekanligini aytadigan kishi. Loyihangizga mos keladigan fayllarni olish uchun siz STM32 kutubxonasi papkasiga kirib, "loyiha" yoki "misollar" papkalarini tekshirishingiz mumkin. Ichkarida siz ushbu fayllarni ko'rasiz va nusxa ko'chirasiz: main.c, Makefile va XXX_conf.h, system_XXX.c. Shuningdek, sizga papkada joylashgan stm32_flash.ld bog'lovchi fayl kerak bo'ladi:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/", bu misol papkasida yoki shunchaki faylni qidirish.

Makefile -ni Internetda topish yoki papkadan nusxalash mumkin, lekin siz ba'zi narsalarni o'zgartirishingiz kerak bo'ladi. Keling, mening faylimni ko'rib chiqaylik va nimani o'zgartira olasiz.

# Kodni taxtaga yuklash uchun stlink jildiga yo'l

STLINK = ~/Embedded/stlink # Manba fayllarini bu erga joylashtiring (*.c) SRCS = main.c system_stm32f4xx.c # Kutubxonalar manba fayllari #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Ikkilik fayllar bilan yaratiladi. bu nom (.elf,.bin,.hex) PROJ_NAME = test # STM32F4 kutubxona kodlari katalogini bu erga qo'ying, YURTUVCHI ismingizni o'zingizga o'zgartiring STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Derleyici sozlamalari. Boshqa sarlavha fayllarini qo'shish uchun faqat CFLAGS -ni tahrirlang. CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # Compiler bayroqlari CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle -endian -mumthumb cortex-m4 -mumbumb-interwork CFLAGS += -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS += -I. # STM kutubxonalaridan fayllarni qo'shing CFLAGS += -I $ (STM_COMMON)/Kutubxonalar/CMSIS/Include CFLAGS += -I $ (STM_COMMON)/Kutubxonalar/CMSIS/ST/STM32F4xx/Include CFLAGS += -I $ (STM_COMMON) Kutubxonalar/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery # SRCS += $ (STM_COMMON)/kutubxonalar/CMSIS/ST/STM32F4xx/ishga tushirish faylini qo'shing. s OBJS = $ (SRCS:.c =.o) vpath %.c $ (STM_COMMON)/Kutubxonalar/STM32F4xx_StdPeriph_Driver/src \. PHONY: proj all: proj proj: $ (PROJ_NAME).elf $ (PROJ_NAME). o'zini: $ (SRCS) $ (CC) $ (CFLAGS) $^ -o $@ $ (OBJCOPY) -O ihex $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (OBJCOPY) -O binary $ (PROJ_NAME).elf $ (PROJ_NAME).bin clean: rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME).hex $ (PROJ_NAME).bin # Flash STM32F4 burn: proj $ (STLINK)/st -flash write $ (PROJ_NAME).bin 0x80000000

  • Stlink yordamchi papkasiga yo'lni o'zgartirish uchun siz birinchi qatorni tahrir qilishingiz mumkin
  • Siz qatorni kutubxonalar va YOURSIZ ismingiz bilan papkangiz manziliga o'zgartirishingiz mumkin

    STM_COMMON =/uy/SIZNING ismingiz/O'rnatilgan/STM32F4-Discovery_FW_V1.1.0

  • Shuningdek, barcha kutubxonalar bog'langan bo'limga qarang. Bu siz foydalanadigan platformaga qarab o'zgarishi mumkin, shuning uchun fayllar daraxtidagi o'zgarishlarni tekshiring. Boshqa fayllar, masalan, boshlang'ich fayli bo'lgan keyingi qatorni o'zgartirish mumkin.

Makefile -da bularning barchasini tahrir qilganingizdan so'ng, uning ishlayotganligini katalogingiz ichidagi terminalni ochish va yozish orqali tekshirishingiz mumkin: make. Agar u hamma narsani muammosiz kompilyatsiya qilsa, demak siz sozlangansiz. Agar yo'q bo'lsa, kompilyator xatolariga qarang va Makefile -ni tahrir qiling.

Bundan tashqari, Atomdan foydalanganda men ikkita kodni yonma -yon qo'yaman. Odatda main.c va Makefile chapda, chunki Makefile -ni faqat bir marta, o'ngda esa kutubxonalarni tahrir qilish kerak. Siz har bir kutubxona uchun.c va.h fayllari bo'lgan papkani ochganimni rasmda ko'rishingiz mumkin. Bularning barchasini videolarda ko'rishingiz mumkin.

4 -qadam: Bajarildi

Bajarildi!
Bajarildi!

Endi sizda Makefile konfiguratsiyasi va kompilyatori bor, siz ushbu papkani shablon sifatida barcha loyihalar uchun ishlatishingiz mumkin, shuning uchun ushbu papkaning nusxasini saqlaganingizga ishonch hosil qiling.

St-flash va st-info dasturlarini ishlab chiqish kartasini ulash va terminalga yozish orqali sinab ko'rishingiz mumkin:

st-info-prob

Siz stlink dasturi taniydigan platformani va IC oilasini, kesh va boshqa narsalarni ko'rishingiz mumkin. Siz yozishingiz mumkin:

st-info

barcha mavjud parametrlarni ko'rish uchun.

Endi siz dasturlashni boshlashingiz mumkin. Keyingi ko'rsatma va videoda men sizga GPIO va soatlarning asoslarini ko'rsataman. Bu ikkalasi ham hamma narsaning asosi, chunki karta bilan o'zaro aloqada bo'ladigan deyarli hamma narsa GPIO -da va hamma narsa o'z vaqtida ishlaydi va siz ushbu protsessorlarni dasturlash modelini ko'rasiz.

Ungacha, mening ko'rsatmali va youtube -dagi videomni ko'rib chiqqaningiz uchun tashakkur, agar siz hali shunday qilmagan bo'lsangiz.

Tavsiya: