Mundarija:
- 1 -qadam: Sizga kerak bo'lgan hamma narsani yuklab oling
- 2 -qadam: dasturiy ta'minotni o'rnatish
- 3 -qadam: Namunaviy loyihani o'rnatish
- 4 -qadam: Bajarildi
Video: Linuxda STM32 ishlab chiqishni boshlang: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
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
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:
- "/Home/YOURUSERNAME/" yoki "~/" uy papkasiga kiring yoki terminalga CD yozing.
- ".bashrc" faylini kiriting: nano.bashrc
- faylning oxirigacha pastga siljiting va bu qatorni qo'shing: PATH = $ PATH ni eksport qiling: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
- saqlash orqali chiqish: CTRL+X, Y, ENTER tugmalarini bosing
- buyruqni ishga tushiring: source.bashrc terminal manbalarini yangilash uchun
- 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:
- Yugurish: qilish
- "Build/Release" papkasiga o'ting: cd build/Release
- Ls yozing va siz "st-flash" va "st-util" deb nomlangan ikkita bajariladigan faylni ko'rasiz.
- Bu ikkalasini stlink ota-katalogiga o'tkazing: mv st-flash st-util../../
-
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
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
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:
L-tek raqs maydonchasini Windows va Linuxda 1000 gigagertsli tezlikda o'zgartirish: 9 qadam
Windows va Linuxda 1000 Gts tezlikda L-tek Dance Pad-ni o'zgartirish: nega bu rejim? Agar siz 125 BPM qo'shig'idagi grafikka o'girgan bo'lsangiz, hayron bo'lishingiz mumkin, bu shov-shuvli boi nima? Nima uchun vaqt alohida -alohida "uyalar" ga tushadi? ITG va DDRda vaqt oynalari nihoyatda qattiq va shu bilan
Linuxda Arduino -ni o'rnating: 3 qadam
Arduino -ni Linux -ga o'rnating: Arduino -ning so'nggi versiyasini Ubuntu -ga qanday o'rnatish kerak
Linuxda AVR dasturlash muhitini qanday sozlash kerak: 5 qadam
Linuxda AVR dasturlash muhitini qanday sozlash kerak: Agar siz Windows -da AVR mikrokontrollerlarini dasturlashni xohlasangiz, sizning studiyangiz bor, lekin Linuxda bizda faqat Dude. AVRDUDE - AVR chiplarini dasturlash uchun buyruq qatori interfeysi. Dastlab sozlash uchun, bu yo'riqnomada men
Linuxda samarali PDF izohlari: 4 qadam
Linuxda samarali PDF izohlari: Linuxda PDF hujjatlariga izoh berish kerak bo'lganmi? Men lateks+dvipdf, pdflatex, LibreOffice yoki boshqalarni o'z ichiga olgan bir qator vositalar yordamida PDF -fayllarni yaratish haqida gapirmayapman. Men ekzistentsiya ustiga o'z izohlaringizni qo'shish haqida gapirayapman
Uyda ishlab chiqarilgan arzon LED chiroq (to'liq ishlab chiqarish): 6 qadam
Uyda ishlab chiqarilgan arzon LED chiroq (to'liq ishlab chiqarish): LEDlarning arzon manbai To'liq mash'ala / chiroq