Mundarija:

STM32F407 Discovery Kit -da Scratch -dan FreeRTOS -ni sozlash: 14 qadam
STM32F407 Discovery Kit -da Scratch -dan FreeRTOS -ni sozlash: 14 qadam

Video: STM32F407 Discovery Kit -da Scratch -dan FreeRTOS -ni sozlash: 14 qadam

Video: STM32F407 Discovery Kit -da Scratch -dan FreeRTOS -ni sozlash: 14 qadam
Video: STM32F4-DISCOVERY+STemWin+STMCubeIDE - Графический интерфейс на STM32F4Discovery. 2024, Sentyabr
Anonim
STM32F407 Discovery Kit -da Scratch -dan FreeRTOS -ni sozlash
STM32F407 Discovery Kit -da Scratch -dan FreeRTOS -ni sozlash

O'rnatilgan loyihangiz uchun real vaqtda operatsion tizim sifatida FreeRTOS-ni tanlash-bu ajoyib tanlov. FreeRTOS haqiqatan ham bepul va RTOS -ning ko'plab oddiy va samarali xususiyatlarini taqdim etadi. FreeRTOS -ni noldan o'rnatish qiyin bo'lishi mumkin yoki men biroz chalkash deb aytishim mumkin, chunki u ba'zi sozlamalarni talab qiladi, masalan, mikrokontrollerga maxsus fayllarni qo'shish, sarlavha fayl yo'llarini o'rnatish va hk. Bu ko'rsatmada men FreeRTOS -ni qanday o'rnatishni ko'rsataman. STM32F407 Discovery to'plami Kiel uVision IDE yordamida batafsil.

Ta'minotlar

  • FreeRTOS haqida ko'proq ma'lumotni freertos.org saytidan topishingiz mumkin
  • RTOS manba kodini yuklab olish bo'yicha FreeRTOS qo'llanmasi
  • STM32F407 Discovery Kit haqida to'liq ma'lumot STM32F407 Discovery KIt bilan ishlashni boshlash.
  • STM32F407 Discovery to'plamidagi Github Repository FreeRTOS

1 -qadam: Keil UVision IDE -ni oching

Keil UVision IDE -ni oching
Keil UVision IDE -ni oching

Keil uVision IDE -ni oching. Yangi uVision loyihasini tanlagan loyihani bosing … Keyin ishchi katalogingizni tanlang va o'zingiz yoqtirgan loyiha nomini bering.

2 -qadam: Qurilmani tanlang

Qurilmani tanlang
Qurilmani tanlang

Loyihaga nom berganingizdan so'ng, keyingi bosqichda siz qurilmani qo'shishingiz kerak bo'ladi. Bu erda biz STMicroelectronics -dan STM32F407VG Micronconroller -ni qo'shamiz. STM32F407VG -ni tanlang va OK ni bosing.

3-qadam: Ish vaqti muhitini boshqarish

Ish vaqti muhitini boshqarish
Ish vaqti muhitini boshqarish

Keyingi qadam-"Ish vaqti muhitini boshqarish" yorlig'ida kutubxona/haydovchi komponentini tanlash. Bu erda yuqoridagi rasmda ko'rsatilgandek barcha komponentlarni tanlang. Tegishli maydonni tekshirgandan so'ng, "Rezolyutsiyani", so'ng "OK" ni bosing.

4 -qadam: FreeRTOS -ni loyiha papkangizga nusxalash

FreeRTOS -ni loyiha papkasiga nusxalash
FreeRTOS -ni loyiha papkasiga nusxalash

Endi siz FreeRTOS papkasini loyiha papkasiga nusxalashingiz kerak.

5 -qadam: FreeRTOS fayllarini loyihaga qo'shing

Loyihaga FreeRTOS fayllarini qo'shing
Loyihaga FreeRTOS fayllarini qo'shing

Loyiha papkasida FreeRTOS papkasini nusxalashdan so'ng, loyihangizga barcha kerakli FreeRTOS fayllarini qo'shishingiz kerak bo'ladi.

  1. Keil-da, Target1-ni tanlang, sichqonchaning o'ng tugmasi bilan bosing va Yangi guruh qo'shish-ni tanlang. Bu guruhni FreeRTOS deb o'zgartiring.
  2. Endi FreeRTOS guruhini bosing, "FreeRTOS …" guruhiga mavjud fayllarni qo'shish-ni o'ng tugmasini bosing.
  3. Yuqoridagi rasmda ko'rsatilgandek, barcha FreeRTOS fayllarini qo'shing.

Ushbu fayllarni FreeRTOS papkasida topish yo'llari:

  • Fayllar: croutine, voqea guruhlari, ro'yxat, navbat, stream_buffer, vazifalar va taymerlar. Yo'l: (…. / FreeRTOSv10.2.1 / FreeRTOS / Manba)
  • Fayllar: heap_4 (4 ta xotira boshqaruvi fayli bor). Yo'l: (…. / FreeRTOSv10.2.1 / FreeRTOS / Manba / portable / MemMang)
  • Fayllar: port.c (bu MCU uchun maxsus fayl). Yo'l: (… / FreeRTOSv10.2.1 / FreeRTOS / Manba / ko'chma / RVDS / ARM_CM4F]

Eslatma: FreeRTOS versiyasi o'zgarishi mumkin. Faqat mavjud bo'lgan so'nggi versiyadan foydalaning.

6 -qadam: FreeRTOS sarlavhali fayllar yo'lini sozlang

FreeRTOS sarlavhali fayllar yo'lini sozlang
FreeRTOS sarlavhali fayllar yo'lini sozlang

FreeRTOS manba fayllarini qo'shganingizdan so'ng, kompilyatorga tegishli sarlavha fayllari qaerda joylashganligini aytishingiz kerak. Shuning uchun biz kompilyator variantini sozlashimiz kerak.

"Target1.." C/C ++ yo'lini qo'shish uchun Target1 variantini o'ng tugmasini bosing. Bu yo'llarni kiritganingizga ishonch hosil qiling:

  1. Papkani FreeRTOS -ga qo'shing (… / FreeRTOSv10.2.1 / FreeRTOS / Manba / o'z ichiga oladi)
  2. RVDS katalogi (… / FreeRTOSv10.2.1 / FreeRTOS / Manba / portativ / RVDS / ARM_CM4F)

Eslatma: Agar sizda sarlavha fayllari bo'lsa, yuqorida aytib o'tilganidek, bu sarlavha fayllarining yo'lini kiritganingizga ishonch hosil qiling.

7 -qadam: "FreeRTOSConfig.h" faylini loyihaga qo'shing

Qo'shish
Qo'shish

FreeRTOS -da FreeRTOSConfig.h deb nomlangan bitta muhim sarlavha fayli mavjud. Bu fayl ilovaga xos (bizning holatlarimizda Cortex M4F MCUga xos) sozlamalarini o'z ichiga oladi. Oddiylik uchun men MCU -ga tegishli FreeRTOSConfig.h faylini RVDS katalogiga ko'chirdim. Va 6 -bosqichda biz allaqachon RVDS yo'lini qo'shdik. Agar siz uni o'zingiz qo'shayotgan bo'lsangiz, unda siz ushbu faylni loyihangizga qo'shishingiz va 6 -bosqichda aytib o'tilganidek, ushbu fayl yo'lini kiritishingiz kerak.

Agar siz FreeRTOSConfig.h faylini o'zingiz xohlagan katalogga qo'shmoqchi bo'lsangiz, men bu faylni quyida qo'shganman.

Qo'shimcha ma'lumot olish uchun bu erni bosing FreeRTOSConfig.h

8 -qadam: Asosiy shablon bilan "main.c" faylini qo'shing

Ni qo'shing
Ni qo'shing
  • Endi yangi foydalanuvchi guruhini yarating (men uni "Foydalanuvchi ilovasi" deb o'zgartirdim).
  • Ushbu guruhga yangi C faylini qo'shing (men main.c deb nomlangan faylni qo'shdim).
  • Bu main () funktsiyasi mavjud bo'lgan fayl. Men ushbu faylga kerakli minimal funktsiyalar va sarlavhalarni kiritdim, shunda loyiha muvaffaqiyatli tuziladi.

Asosiy shablonga ega main.c faylini quyida topishingiz mumkin.

9 -qadam: STM32F407 Discovery to'plamini shaxsiy kompyuteringizga/noutbukga ulang

STM32F407 Discovery to'plamini shaxsiy kompyuteringizga/noutbukga ulang
STM32F407 Discovery to'plamini shaxsiy kompyuteringizga/noutbukga ulang

10-qadam: Derleyici konfiguratsiyasida ST-Link tuzatuvchisini tanlang

Kompilyator konfiguratsiyasida ST-Link tuzatuvchisini tanlang
Kompilyator konfiguratsiyasida ST-Link tuzatuvchisini tanlang

Target1-ni o'ng tugmasini bosing, so'ng "Target1.." Maqsad variantini bosing, so'ng Debug tab-ga o'ting va yuqoridagi rasmda ko'rsatilgandek ST-Link-Debugger-ni tanlang.

11-qadam: ST-Link tuzatuvchisini sozlang

ST-Link tuzatuvchisini sozlang
ST-Link tuzatuvchisini sozlang

10-qadamda ST-Link tuzatuvchisini tanlagandan so'ng, "Sozlamalar" -ni bosing, so'ng "Kuzatish" -ni tanlang va yuqoridagi rasmda ko'rsatilgandek barcha maydonlarni tekshiring.

12 -qadam: Kodni yaratish va yuklash

Kodni yaratish va yuklash
Kodni yaratish va yuklash

Barcha bosqichlarni bajargandan so'ng, loyihani tuzing va kodda xatolar yo'qligiga ishonch hosil qiling. Muvaffaqiyatli kompilyatsiya qilinganidan so'ng, Discovery Kit -ga kodni yuklang.

13 -qadam: disk raskadrovka oynasiga o'ting va ketma -ket monitorni oching

Debug oynasiga o'ting va ketma -ket monitorni oching
Debug oynasiga o'ting va ketma -ket monitorni oching

Yuklashdan so'ng, yuqoridagi rasmda ko'rsatilgandek, Windows ViewSerial WindowsDebug (printf) Viewer disk raskadrovka dasturiga o'ting.

14 -qadam: Printf disk raskadrovka oynasida chiqishni ko'rish uchun kodni ishga tushiring

Debug Printf oynasida chiqishni ko'rish uchun kodni ishga tushiring
Debug Printf oynasida chiqishni ko'rish uchun kodni ishga tushiring

Oxirgi qadam - printf oynasida chiqishni ko'rish uchun kodni rasmda ko'rsatilgandek ishga tushirish. Bu erda main.c da task1 va task2 deb nomlangan 2 ta oddiy vazifani bajardim. Ikkala vazifa ham bir xil ustuvorlikka ega va ular faqat vazifa nomini chop etishadi. Xuddi shu ustuvorliklar tufayli siz ikkalasining ham ishlayotganini va nomini chop etayotganini ko'rishingiz mumkin.

Tavsiya: