Мазмуну:

Linux боюнча STM32 иштеп чыгууну баштаңыз: 4 кадам
Linux боюнча STM32 иштеп чыгууну баштаңыз: 4 кадам

Video: Linux боюнча STM32 иштеп чыгууну баштаңыз: 4 кадам

Video: Linux боюнча STM32 иштеп чыгууну баштаңыз: 4 кадам
Video: BTT GTR v1.0/M5 v1.0 - Basics 2024, Июль
Anonim
Image
Image
Сизге керектүү нерсенин баарын жүктөп алыңыз
Сизге керектүү нерсенин баарын жүктөп алыңыз

Бул Нускамада мен Linuxта STM32 программаларын иштеп чыгууну баштоо канчалык оңой экенин көрсөтөм. Мен Linuxту негизги машинам катары 2 жыл мурун колдоно баштагам, бирок көңүлүм калган жок. Баары терезелерге караганда тезирээк жана жакшыраак иштейт. Албетте, маал -маалы менен анча ыңгайлуу эмес, бирок бул сизди нерселерди тереңирээк үйрөнүүгө мажбурлайт, андыктан аны колдоно аласыз.

Эмнеси болсо да, мен үйрөтө турган, мен бул жерден баштагам жана youtube каналында аны кантип баштоо керектиги жөнүндө. Сураныч, менин ютубдагы видеомду көрүңүз, анда мен бардыгын бир сегмент катары түшүндүрөм жана сиз мени менен бирге код коё аласыз.

Бул серияда мен сизге блокнот, SublimeText же Atom сыяктуу тексттик редактордун жардамы менен кантип иштеп чыгууну көрсөтөм, андыктан сизге эч кандай менчик программалык камсыздоо же IDE кереги жок. Бул жылаңач сөөктөргө ээ жана таң калыштуу оңой.

1 -кадам: Сизге керектүү нерсенин баарын жүктөп алыңыз

Баары иштеши үчүн үч бөлүктү жүктөп алышыңыз керек:

  • ARM үчүн GCC компилятору
  • STM32 программалык камсыздоо файлдары
  • St-link утилитасы
  • Үлгү долбоору

Компилятор - бул биздин C кодду башка китепкана файлдары менен биздин stm32 контроллери түшүнө ала турган машина тилине чогулткан программалык камсыздоонун негизги бөлүгү. Бул компилятордун алдын ала түзүлгөн акыркы версиясын жүктөп алыңыз.

STM32 камтылган программалык камсыздоону камтыган папка негизги процессордун иштеши үчүн керектүү болгон бардык баштоо жана негизги файлдарды камтыйт. Биз HALден ашып кеткен стандарттык перифериялык китепкананы колдонобуз. Мага StPeriphLibrary көбүрөөк жагат, анткени бул процессорлордо иштеген компаниялар аларды колдонушат, анткени ал күчтүү жана эски жана колдоого алынган. Ал дагы бышык. Бул перифериялык түзүлүштү күйгүзүү же LEDди күйгүзүү үчүн жасала турган жумушту кыскартпайт, бирок бул процессорлордун кантип иштээрин билүүгө мажбурлайт. Муну менен сиз ички иштөө жөнүндө көбүрөөк билимиңизге ээ болуп, ар кандай тапшырманы программалоодо мааниге ээ болосуз.

Жүктөө үчүн акыркы программалык камсыздоо st-link пайдалуу. Бул githubда сакталат жана SWD / JTAG программисти / мүчүлүштүктөрүн оңдоочу тактадагы stlink ICди колдонуп, экилик файлдарды процессорго берүү үчүн колдонулат.

Ошондой эле мен кийинчерээк сүйлөшө турган долбоордун папкасын бердим жана аны жүктөп алсаңыз болот. Бул биринчи VIDEO1 папкасынын ичинде.

2 -кадам: Программаны орнотуу

Программаны орнотуу
Программаны орнотуу
Программаны орнотуу
Программаны орнотуу

Бардык файлдарды жүктөп алгандан кийин, мен аларды жалпы папкага салууну сунуштайм, анткени алар баары бир максатта чогуу колдонулат. Мен бардык папкаларды HOME каталогумдагы "Камтылган" деп аталган папкага салып койдум.

Биз эң оңой, STM32 китепканаларынан баштайбыз. Сиз жүктөп алган папканы ошол жерде калтырса болот. Тиешелүү файлдар кайда сакталганын билүү үчүн, тегерете казып алыңыз. Демек, сиз MakeFile'ди өзгөртө жана түзөтө аласыз, ал сиздин платформа менен иштейт.

Экинчи эң оңой - бул компилятор. Сиз ошондой эле ага эч нерсе кылуунун кажети жок, бирок биз компиляторду глобалдык жеткиликтүү функцияга айландырабыз, ошондуктан сиз компиляторду каалаган папкадан жолуна карабай чакыра аласыз. Бардык кадамдарды терминалда же guiде жасоого болот, бирок мен терминалды колдонгонду жакшы көрөм, анткени тажрыйбалуу болгондо ал тезирээк жана жеңилдейт жана мен андан коркуп жатсаң терминалды көбүрөөк колдонууга чакырам. Бул жерде кадамдар:

  1. Үй папкаңызга өтүңүз "/home/YOURUSERNAME/" же "~/" же терминалга cd териңиз
  2. ".bashrc" файлын ачуу менен: nano.bashrc
  3. Файлдын аягына чейин ылдый жылдырып, бул сапты кошуңуз: экспорт PATH = $ PATH: ~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. сактоо менен чыгуу: CTRL+X, Y, ENTER басыңыз
  5. иштетүү буйругу: терминал булактарын жаңыртуу үчүн source.bashrc
  6. бардыгын терип текшериңиз: arm-none-eabi-gcc --version, ал компилятордун акыркы версиясын көрсөтүшү керек

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 = $ PATH: ~/Камтылган/stlink/

Баары болду! Сизге керектүү нерсенин баары бар. Эми өзүңүздүн сүйүктүү текст редакторуңузду алыңыз. Стандартты колдонуңуз, SublimeText же Atom сыяктуу акылдуураак, мен колдонгон нерсе.

3 -кадам: Үлгүлүү долбоорду орнотуу

Үлгү долбоорун орнотуу
Үлгү долбоорун орнотуу

Биз азыр ар бир долбоорду баштоо үчүн колдоно турган үлгү долбоорун түзөбүз. Бул баардык негизги жөндөөсү бар шаблонго окшош.

Сиз аны менин MEGAдан жүктөп алсаңыз болот, шилтеме бул инструктивдүү биринчи кадамда жана менин ар бир youtube видеомдун астында. Ичинде бош main.c файлы жана бул процессор менен Makefile үчүн башталуучу файлдар бар. Makefile бул C компиляторуна компиляторду кайдан табуу керек, кантип компиляциялоо керек жана бардык китепканалар кайда экенин айтат. Долбооруңузга ылайыктуу файлдарды алуу үчүн STM32 китепкана папкасына кирип, "проект" же "мисалдар" папкаларын текшере аласыз. Ичинде сиз бул файлдарды көрүп жана көчүрөсүз: main.c, Makefile жана XXX_conf.h, system_XXX.c. Ал эми сизге папкадан табууга боло турган stm32_flash.ld шилтеме файлы керек болот:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/" бул мисал папкасынын ичинде же жөн эле файлды издөө.

Makefile интернеттен табылышы же менин папкамдан көчүрүлүшү мүмкүн, бирок сиз бир нече нерсени өзгөртүшүңүз керек болот. Келгиле, менин файлымды карап көрүңүз жана эмнени өзгөртө аласыз.

# Тактага кодду жүктөө үчүн папкага өтүүчү жол

STLINK = ~/Embedded/stlink # Булак файлдарыңызды бул жерге коюңуз (*.c) SRCS = main.c system_stm32f4xx.c # Китепканалар булак файлдары #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Экилик файлдар менен түзүлөт бул ат (.elf,.bin,.hex) PROJ_NAME = тест # STM32F4 китепкана кодунун каталогун бул жерге кой, YOURUSERNAME дегенди өзүңө өзгөрт STM_COMMON =/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Compiler settings. Башка аталыш файлдарын кошуу үчүн CFLAGSти гана түзөтүңүз. CC = arm -none -eabi -gcc OBJCOPY = arm -none -eabi -objcopy # Компилятордун желектери CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle -endian -mthumb -mthumb cortex-m4 -mthumb-interwork CFLAGS += -mfloat-abi = hard -mfpu = fpv4-sp-d16 CFLAGS += -I. # STM китепканаларынан файлдарды кошуу Китепканалар/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I $ (STM_COMMON)/Utilities/STM32F4 -Discovery # SRCS += $ (STM_COMMON)/Китепканалар/CMSIS/ST/STM32F4xx баштоо файлын кошуу +. 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).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 пайдалуу папкаңыздын жолун өзгөртүү үчүн биринчи сапты түзөтө аласыз
  • Китепканалар жана YOURUSERNAME менен линияны папкаңыздын көздөгөнүнө өзгөртө аласыз

    STM_COMMON =/үй/СИЗДИН КИШИңиз/Камтылган/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 видеомду текшергениңиз үчүн рахмат, эгер сиз али жасай элек болсоңуз.

Сунушталууда: