Բովանդակություն:

Սկսեք STM32- ի մշակումը Linux- ում ՝ 4 քայլ
Սկսեք STM32- ի մշակումը Linux- ում ՝ 4 քայլ

Video: Սկսեք STM32- ի մշակումը Linux- ում ՝ 4 քայլ

Video: Սկսեք STM32- ի մշակումը Linux- ում ՝ 4 քայլ
Video: MKS Robin Nano v2.0 - motherboard basics for 3d Printing 2024, Նոյեմբեր
Anonim
Image
Image
Ներբեռնեք այն ամենը, ինչ ձեզ հարկավոր է
Ներբեռնեք այն ամենը, ինչ ձեզ հարկավոր է

Այս Instructable- ում ես ձեզ ցույց կտամ, թե որքան հեշտ է սկսել Linux- ում STM32 ծրագրերի մշակումը: Ես սկսել եմ օգտագործել Linux- ը որպես իմ հիմնական մեքենա 2 տարի առաջ և ինձ չեն հուսահատեցրել: Ամեն ինչ ավելի արագ և լավ է աշխատում, քան պատուհանները: Իհարկե, ժամանակ առ ժամանակ ավելի քիչ հարմար է, բայց դա ստիպում է ձեզ ավելի խորը սովորել, որպեսզի կարողանաք օգտագործել այն:

Ինչևէ, այս ուսանելի, մի շարքից, որը ես սկսում եմ այստեղ ԵՎ youtube- ում, այն է, թե ինչպես սկսել այն: Խնդրում եմ անպայման դիտեք նաև իմ youtube տեսանյութը, որտեղ ես ամեն ինչ բացատրում եմ որպես մեկ հատված և կարող եք կոդավորել կողքիս:

Այս շարքում ես ձեզ ցույց կտամ, թե ինչպես կարող եք զարգանալ ՝ օգտագործելով միայն տեքստային խմբագիր, ինչպիսին են նոթատետրը, SublimeText- ը կամ Atom- ը, այնպես որ ձեզ հարկավոր չեն որևէ գույքային ծրագրակազմ կամ IDE: Սա այնքան մերկ ոսկորներ է, որքան որ ստանում է և զարմանալիորեն հեշտ է:

Քայլ 1: Ներբեռնեք այն ամենը, ինչ ձեզ հարկավոր է

Ամեն ինչ աշխատելու համար անհրաժեշտ է ներբեռնել երեք մաս.

  • GCC- ի կազմող ARM- ի համար
  • STM32 որոնվածի ֆայլեր
  • St-link օգտակար
  • Նմուշի նախագիծ

Կոմպիլյատորը ծրագրաշարի հիմնական մասն է, որը կազմում է մեր C կոդը գրադարանի բոլոր այլ ֆայլերի հետ մեքենայական լեզվով, որը մեր stm32 վերահսկիչը կարող է հասկանալ: Ներբեռնեք այս կազմողի վերջին նախապես կազմված տարբերակը:

Թղթապանակը, որը պարունակում է STM32 որոնվածը, այն է, որը պահում է հիմնական պրոցեսորի աշխատանքի համար անհրաժեշտ բոլոր գործարկման և հիմնական ֆայլերը: Մենք կօգտագործենք Ստանդարտ ծայրամասային գրադարանը, որը գերազանցել է HAL- ը: Ինձ ավելի շատ դուր է գալիս StPeriphLibrary- ը, քանի որ այս պրոցեսորների վրա աշխատող ընկերությունները օգտագործում են դրանք, քանի որ այն ամուր է և հին և աջակցվող: Այն նաև ավելի կոպիտ է: Այն չի կրճատում աշխատանքը, որը դուք պետք է կատարեք ՝ ծայրամասային սարքը նախնական պատրաստելու կամ LED- ն միացնելու համար, այլ դա ձեզ ստիպում է սովորել, թե ինչպես են աշխատում այս պրոցեսորները: Դրանով դուք ավելի շատ գիտելիքներ ունեք ներքին աշխատանքի մասին, դրանով իսկ իմաստավորելով ծրագրել ցանկացած խնդիր:

Վերջին ծրագրաշարը, որը կարելի է ներբեռնել, st-link կոմունալ ծառայությունն է: Այն պահպանվում է github- ում և օգտագործվում է կազմված երկուական ֆայլերը պրոցեսորին փոխանցելու համար `օգտագործելով տախտակի վրա գտնվող stlink IC- ն, որը ծառայում է որպես SWD / JTAG ծրագրավորող / վրիպազերծիչ:

Նաև ես տրամադրել եմ ծրագրի թղթապանակի օրինակ, որի մասին ես կխոսեմ ավելի ուշ, և դուք կարող եք ներբեռնել այն: Այն գտնվում է առաջին VIDEO1 պանակի ներսում:

Քայլ 2: Softwareրագրակազմի տեղադրում

Softwareրագրակազմի տեղադրում
Softwareրագրակազմի տեղադրում
Softwareրագրակազմի տեղադրում
Softwareրագրակազմի տեղադրում

Բոլոր ֆայլերը ներբեռնելուց հետո առաջարկում եմ դրանք տեղադրել ընդհանուր թղթապանակի ներսում, քանի որ դրանք բոլորը միասին օգտագործվում են նույն նպատակով: Ես բոլոր թղթապանակները դնում եմ մի պանակի մեջ, որը կոչվում է «Ներկառուցված» իմ HOME գրացուցակում:

Մենք կսկսենք ամենադյուրին ՝ STM32 գրադարաններով: Ձեր ներբեռնած թղթապանակը կարող է հենց այնտեղ մնալ: Պարզապես համոզվեք, որ քանդեք ՝ տեսնելու, թե որտեղ են պահվում համապատասխան ֆայլերը: Հետևաբար, կարող եք փոխել և խմբագրել հիմնական MakeFile- ը, որպեսզի այն աշխատի ձեր հարթակի հետ:

Երկրորդ ամենահեշտը կազմողն է: Դուք նույնպես կարիք չունեք որևէ բան անելու դրան, բայց մենք կազմողին կդարձնենք գլոբալ հասանելի գործառույթ, որպեսզի կարողանաք կազմողին զանգահարել ցանկացած թղթապանակից ՝ անկախ ճանապարհից: Բոլոր քայլերը կարող են կատարվել տերմինալում կամ gui- ում, բայց ես սիրում եմ օգտագործել տերմինալը, քանի որ երբ փորձ ես ունենում, այն ավելի արագ և հեշտ է դառնում, և ես խրախուսում եմ քեզ օգտագործել ավելի շատ տերմինալ, եթե վախենում ես դրանից: Ահա քայլերը.

  1. Մտեք ձեր տան թղթապանակ "/home/YOURUSERNAME/" կամ "~/" կամ տերմինալում մուտքագրեք cd
  2. բացեք «.bashrc» ֆայլը ՝ մուտքագրելով ՝ nano.bashrc
  3. ոլորեք ներքև մինչև ֆայլի վերջը և ավելացրեք այս տողը.
  4. դուրս գալ ՝ պահպանելով ՝ CTRL+X, կտտացրեք Y, ENTER
  5. գործարկել հրամանը. source.bashrc ՝ տերմինալային աղբյուրները թարմացնելու համար
  6. ստուգեք, արդյոք ամեն ինչ աշխատում է ՝ մուտքագրելով ՝ arm-none-eabi-gcc-տարբերակ, այն պետք է ցուցադրի կոմպիլյատորի վերջին տարբերակը

St-link- ը տեղադրելու համար հանեք ձեր ներբեռնած արխիվը Ներդրված թղթապանակում: Հետո հետևեք այս քայլերին.

  1. Վազել: պատրաստել
  2. Մտեք «build/Release» թղթապանակը ՝ cd build/Release
  3. Մուտքագրեք ls և կտեսնեք երկու գործարկվող ՝ «st-flash» և «st-util» անուններով
  4. Այդ երկուսը տեղափոխեք մայր գրացուցակի stlink: mv st-flash st-util../../
  5. Եթե ցանկանում եք օգտագործել այս երկու գործառույթները գլոբալ մակարդակում, կրկին խմբագրեք «.bashrc» ֆայլը ՝ ավելացնելով.

    արտահանման ուղի = $ PATH: ~/Ներկառուցված/թեքված/

Վերջ! Դուք ունեք այն ամենը, ինչ ձեզ հարկավոր է: Այժմ գնացեք ձեր նախընտրած տեքստի խմբագրիչը: Օգտագործեք պարզապես ստանդարտ մեկը, ավելի խելացի, ինչպիսին է SublimeText- ը կամ Atom- ը, դա այն է, ինչ ես օգտագործում եմ:

Քայլ 3. Նախագծային նախագծի ստեղծում

Նմուշի նախագծի ստեղծում
Նմուշի նախագծի ստեղծում

Այժմ մենք կստեղծենք նախագծի օրինակ, որը կարող եք օգտագործել յուրաքանչյուր նախագիծ սկսելու համար: Այն նման է ձևանմուշի, որի բոլոր հիմնական պարամետրերն արդեն մշակված են:

Դուք կարող եք ներբեռնել այն իմ MEGA- ից, հղումը գտնվում է այս ուսանելի և իմ յուրաքանչյուր youtube տեսանյութի առաջին քայլին: Ներսում կա դատարկ main.c ֆայլը, ինչպես նաև այս պրոցեսորի և Makefile- ի գործարկման որոշ ֆայլեր: Makefile- ն այն է, որը C- ին կազմողին ասում է, թե որտեղից գտնել arm compiler- ը, ինչպես կազմել և որտեղ են բոլոր գրադարանները: Ձեր ծրագրի համար այս համապատասխան ֆայլերը ստանալու համար կարող եք մտնել STM32 գրադարանի թղթապանակ և ստուգել «նախագիծ» կամ «օրինակ» պանակներ: Ներսում դուք կտեսնեք և պատճենեք այս ֆայլերը. Main.c, Makefile և XXX_conf.h, system_XXX.c

"/FLASH_Program/TrueSTUDIO/FLASH_Program/", որը գտնվում է օրինակ թղթապանակի ներսում կամ պարզապես որոնել ֆայլը:

Makefile- ը կարելի է գտնել առցանց կամ պատճենել իմ թղթապանակից, բայց ձեզ հարկավոր է մի քանի բան փոխել: Եկեք հեքիաթ նայենք իմ պատրաստման ֆայլին և այն, ինչ կարող եք փոխել:

# Folderանապարհ դեպի ապակողպման պանակ ՝ կոդը տախտակ վերբեռնելու համար

STLINK = ~/Embedded/stlink # Տեղադրեք ձեր աղբյուրի ֆայլերն այստեղ (*.c) SRCS = main.c system_stm32f4xx.c # Գրադարանների աղբյուրի ֆայլեր #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Երկուական ֆայլեր կստեղծվեն այս անունը (.elf,.bin,.hex) PROJ_NAME = թեստ # Տեղադրեք ձեր STM32F4 գրադարանի կոդերի գրացուցակը այստեղ, փոխեք Ձեր անունը STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Կազմողի կարգավորումներ: Խմբագրել միայն CFLAGS- ը ՝ վերնագրի այլ ֆայլեր ներառելու համար: CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # Compiler flags CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mumb -mian -p = ծառի կեղեվ-m4 -mthumb-interwork CFLAGS += -mfloat-abi = կոշտ -mfpu = fpv4-sp-d16 CFLAGS += -I. # Ներառել ֆայլեր STM գրադարաններից CFLAGS += -I $ (STM_COMMON)/Գրադարաններ/CMSIS/Ներառել CFLAGS += -I $ (STM_COMMON)/Գրադարաններ/CMSIS/ST/STM32F4xx/Ներառել CFLAGS += -I $ (STM_COMMON) Գրադարաններ/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Կոմունալ ծառայություններ/STM32F4 -Discovery # ավելացնել գործարկման ֆայլ ՝ SRCS += $ (STM_COMMON)/Գրադարաններ/CMSIS/ST/STM32p4mxxx/սկզբնաղբյուր/սկզբնաղբյուր/սկզբնական s OBJS = $ (SRCS:.c =.o) vpath %.c $ (STM_COMMON)/Գրադարաններ/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 երկուական $ (PROJ_NAME) ինքս $ (PROJ_NAME). Խառնված մաքուր ՝ rm -f *.o $ (PROJ_NAME).elf $ (PROJ_NAME). Hex $ (PROJ_NAME).bin # Flash # STM32F4 այրումը ՝ proj $ (STLINK)/st -flash գրել $ (PROJ_NAME).bin 0x80000000

  • Դուք կարող եք խմբագրել առաջին տողը ՝ դեպի ձեր stlink օգտակար պանակի ուղին փոխելու համար
  • Գրադարաններով և YOURUSERNAME- ով կարող եք փոխել ձեր թղթապանակի նպատակակետը

    STM_COMMON =/տուն/YOURUSERNAME/Ներկառուցված/STM32F4-Discovery_FW_V1.1.0

  • Նաև ստուգեք այն բաժինը, որտեղ միացված են բոլոր գրադարանները: Սա կարող է փոխվել ՝ կախված ձեր օգտագործած հարթակից, ուստի խնդրում ենք ստուգել ֆայլերի ծառի փոփոխությունները: Ամեն ինչ, որը ներառում է որոշակի ֆայլեր տանող ցանկացած ուղի, ինչպես օրինակ ՝ գործարկման ֆայլի հաջորդ տողով, կարելի է փոխել:

Makefile- ի ներսում այս բոլոր բաները խմբագրելուց հետո կարող եք ստուգել, թե արդյոք այն աշխատում է ՝ ձեր գրացուցակի ներսում տերմինալ բացելով և մուտքագրելով ՝ make: Եթե այն հավաքում է ամեն ինչ առանց որևէ խնդրի, ուրեմն դուք կարգավորված եք: Եթե ոչ, նայեք կազմողի սխալներին և խմբագրեք Makefile- ը:

Բացի այդ, երբ ես օգտագործում եմ Atom- ը, ես երկու կտոր ծածկագիր եմ դնում կողք կողքի: Սովորաբար main.c- ն և Makefile- ը ձախ կողմում, քանի որ անհրաժեշտ է միայն մեկ անգամ խմբագրել Makefile- ը, իսկ աջում `գրադարանները: Նկարի վրա կարող եք տեսնել, որ ես բացել եմ.c և.h ֆայլերը պարունակող թղթապանակը յուրաքանչյուր գրադարանի համար: Այս ամենը կարող եք տեսնել տեսանյութերում:

Քայլ 4: Ավարտվեց:

Ավարտվեց!
Ավարտվեց!

Այժմ, երբ դուք ունեք կազմաձևված և կազմող աշխատող Makefile, կարող եք օգտագործել այս թղթապանակը բոլոր նախագծերի համար որպես ձևանմուշ, այնպես որ համոզվեք, որ պահում եք այս թղթապանակի պատճենը:

Նաև կարող եք փորձարկել st-flash և st-info ծրագրերը ՝ միացնելով ձեր զարգացման տախտակը և մուտքագրելով տերմինալ.

st-info-հետաքննություն

Դուք կարող եք տեսնել հարթակը, որը ճանաչում է stlink ծրագրաշարը և IC ընտանիքը ՝ քեշի և այլ իրերի հետ միասին: Դուք կարող եք մուտքագրել ՝

st-info

բոլոր առկա պարամետրերը տեսնելու համար:

Այժմ կարող եք սկսել ծրագրավորում: Հաջորդ ուսանելի և տեսանյութում ես ձեզ ցույց կտամ GPIO- ի և ժամացույցների հիմունքները: Այս երկուսն ամեն ինչի հիմքն են, քանի որ գրեթե ամեն ինչ, ինչի հետ համագործակցում է խորհուրդը, GPIO- ով ավարտված է, և ամեն ինչ աշխատում է ժամացույցի վրա, և դուք կտեսնեք այս պրոցեսորների ծրագրավորման օրինակը:

Մինչ այդ, շնորհակալություն, որ ստուգեցիք իմ ուսանելի և իմ YouTube տեսանյութը, եթե դեռ դա չեք արել:

Խորհուրդ ենք տալիս: