STMicroelectronics STM32WBA სერიის დაწყება
პროდუქტის ინფორმაცია
სპეციფიკაციები:
- პროდუქტის დასახელება: STM32CubeWBA MCU პაკეტი
- მწარმოებელი: STMicroelectronics
- თავსებადობა: STM32WBA სერიის მიკროკონტროლერები
- ლიცენზირება: ღია კოდის BSD ლიცენზია
პროდუქტის გამოყენების ინსტრუქცია
STM32CubeWBA MCU პაკეტის ძირითადი მახასიათებლები:
STM32CubeWBA MCU პაკეტი უზრუნველყოფს ყველა საჭირო ჩაშენებულ პროგრამულ კომპონენტს STM32WBA სერიის მიკროკონტროლერებზე აპლიკაციების შესაქმნელად. ის უაღრესად პორტატულია STM32 სერიის ფარგლებში და გააჩნია HAL და LL API-ები, მაგamples და Middleware კომპონენტები.
არქიტექტურა დასრულდაview:
STM32CubeWBA MCU პაკეტის არქიტექტურა შედგება სამი დონისგან - აპლიკაციები, ბიბლიოთეკა და პროტოკოლზე დაფუძნებული კომპონენტები, აპარატურის აბსტრაქციის ფენა, BSP დრაივერები, ძირითადი დრაივერები და დაბალი ფენის API.
FAQ
- რა შედის STM32CubeWBA MCU პაკეტში?
პაკეტი მოიცავს დაბალი ფენის (LL) და ტექნიკის აბსტრაქციის ფენის (HAL) API-ებს, მაგamples, აპლიკაციები, შუა პროგრამების კომპონენტები, როგორიცაა FileX/LevelX, NetX Duo, mbed-კრიპტო ბიბლიოთეკები და სხვა. - თავსებადია STM32CubeWBA MCU პაკეტი STM32CubeMX კოდის გენერატორთან?
დიახ, პაკეტი სრულად თავსებადია STM32CubeMX კოდის გენერატორთან ინიციალიზაციის კოდის გენერირებისთვის.
შესავალი
- STM32Cube არის STMicroelectronics-ის ორიგინალური ინიციატივა, რათა მნიშვნელოვნად გააუმჯობესოს დიზაინერის პროდუქტიულობა განვითარების ძალისხმევის, დროისა და ხარჯების შემცირებით. STM32Cube მოიცავს STM32-ის მთელ პორტფელს.
STM32Cube მოიცავს:- მომხმარებლისთვის მოსახერხებელი პროგრამული უზრუნველყოფის განვითარების ინსტრუმენტების ნაკრები, რომელიც მოიცავს პროექტის შემუშავებას კონცეფციიდან განხორციელებამდე, რომელთა შორისაა:
- STM32CubeMX, გრაფიკული პროგრამული უზრუნველყოფის კონფიგურაციის ინსტრუმენტი, რომელიც საშუალებას აძლევს C ინიციალიზაციის კოდის ავტომატურ გენერირებას გრაფიკული ოსტატების გამოყენებით
- STM32CubeIDE, ყოვლისმომცველი განვითარების ინსტრუმენტი პერიფერიული კონფიგურაციით, კოდის გენერირებით, კოდის შედგენით და გამართვის ფუნქციებით
- STM32CubeCLT, ბრძანების ხაზის განვითარების ინსტრუმენტების ნაკრები ყველა-ერთში, კოდის შედგენით, დაფის პროგრამირებით და გამართვის ფუნქციებით
- STM32CubeProgrammer (STM32CubeProg), პროგრამირების ინსტრუმენტი, რომელიც ხელმისაწვდომია გრაფიკული და ბრძანების ხაზის ვერსიებში
- STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD), მძლავრი მონიტორინგის ხელსაწყოები STM32 აპლიკაციების ქცევისა და მუშაობის დაზუსტებისთვის რეალურ დროში
- STM32Cube MCU და MPU პაკეტები, ყოვლისმომცველი ჩაშენებული პროგრამული პლატფორმები, რომლებიც სპეციფიკურია თითოეული მიკროკონტროლერისა და მიკროპროცესორის სერიისთვის (როგორიცაა STM32CubeWBA STM32WBA სერიისთვის), რომელიც მოიცავს:
- STM32Cube ტექნიკის აბსტრაქციის ფენა (HAL), რომელიც უზრუნველყოფს მაქსიმალურ პორტატულობას STM32 პორტფოლიოში
- STM32Cube დაბალი ფენის API-ები, რომლებიც უზრუნველყოფენ საუკეთესო შესრულებას და კვალს, მომხმარებლის მაღალი ხარისხის კონტროლის აპარატურაზე
- საშუალო პროგრამის კომპონენტების თანმიმდევრული ნაკრები, როგორიცაა ThreadX, FileX / LevelX, NetX Duo, USBX, სენსორული ბიბლიოთეკა, mbed-crypto, TFM, MCUboot, OpenBL და STM32_WPAN (მათ შორის Bluetooth® Low Energy Profiles და სერვისები, Mesh, Zigbee®, OpenThread, Matter და 802.15.4 MAC ფენა)
- ყველა ჩაშენებული პროგრამული უზრუნველყოფის უტილიტა სრული კომპლექტით პერიფერიული და აპლიკაციური მაგamples
- STM32Cube გაფართოების პაკეტები, რომლებიც შეიცავს ჩაშენებულ პროგრამულ კომპონენტებს, რომლებიც ავსებენ STM32Cube MCU და MPU პაკეტების ფუნქციებს:
- Middleware გაფართოებები და აპლიკაციური ფენები
- Examples მუშაობს ზოგიერთ STMicroelectronics-ის განვითარების დაფებზე
- მომხმარებლისთვის მოსახერხებელი პროგრამული უზრუნველყოფის განვითარების ინსტრუმენტების ნაკრები, რომელიც მოიცავს პროექტის შემუშავებას კონცეფციიდან განხორციელებამდე, რომელთა შორისაა:
- ეს მომხმარებლის სახელმძღვანელო აღწერს, თუ როგორ უნდა დაიწყოთ STM32CubeWBA MCU პაკეტი.
- ნაწილი 2 STM32CubeWBA ძირითადი მახასიათებლები აღწერს STM32CubeWBA MCU პაკეტის ძირითად მახასიათებლებს.
- განყოფილება 3 STM32CubeWBA არქიტექტურა დასრულდაview უზრუნველყოფს ზედview STM32CubeWBA არქიტექტურისა და MCU პაკეტის სტრუქტურის შესახებ.
ზოგადი ინფორმაცია
STM32CubeWBA MCU პაკეტი მუშაობს STM32 32-ბიტიან მიკროკონტროლერებზე Arm® Cortex®-M33 პროცესორზე Arm® TrustZone® და FPU-ით.
შენიშვნა: Arm და TrustZone არის Arm Limited-ის (ან მისი შვილობილი კომპანიების) რეგისტრირებული სავაჭრო ნიშნები აშშ-ში და/ან სხვაგან.
STM32CubeWBA ძირითადი მახასიათებლები
- STM32CubeWBA MCU პაკეტი მუშაობს STM32 32-ბიტიან მიკროკონტროლერებზე Arm® Cortex®-M33 პროცესორზე TrustZone® და FPU-ით.
- STM32CubeWBA აგროვებს, ერთ პაკეტში, ყველა ზოგად ჩაშენებულ პროგრამულ კომპონენტს, რომელიც საჭიროა STM32WBA სერიის მიკროკონტროლერებისთვის აპლიკაციის შესაქმნელად. STM32Cube ინიციატივის შესაბამისად, კომპონენტების ეს ნაკრები ძალზე პორტატულია არა მხოლოდ STM32WBA სერიის მიკროკონტროლერებში, არამედ სხვა STM32 სერიებში.
- STM32CubeWBA სრულად თავსებადია STM32CubeMX კოდის გენერატორთან ინიციალიზაციის კოდის შესაქმნელად. პაკეტში შედის დაბალი ფენის (LL) და ტექნიკის აბსტრაქციის ფენის (HAL) API-ები, რომლებიც ფარავს მიკროკონტროლერის აპარატურას, ყოფილი ტექნიკის ფართო კომპლექტთან ერთად.amples მუშაობს STMicroelectronics დაფებზე. HAL და LL API ხელმისაწვდომია ღია კოდის BSD ლიცენზიაში მომხმარებლის მოხერხებულობისთვის.
- STM32CubeWBA MCU პაკეტი ასევე შეიცავს ყოვლისმომცველ შუალედურ კომპონენტს, რომელიც აგებულია Microsoft® Azure® RTOS შუა პროგრამული უზრუნველყოფის და სხვა შიდა და ღია კოდის სტეკების გარშემო, შესაბამისი ყოფილიamples.
- მათ გააჩნიათ უფასო, მოსახერხებელი სალიცენზიო პირობები:
- ინტეგრირებული და სრულფასოვანი Azure® RTOS: Azure® RTOS ThreadX
- CMSIS-RTOS განხორციელება Azure® RTOS ThreadX-ით
- USB მასპინძელი და მოწყობილობების სტეკები მოდის მრავალი კლასით: Azure® RTOS USBX
- გაფართოებული file სისტემა და ფლეშ თარგმანის ფენა: FileX / დონეX
- სამრეწველო კლასის ქსელის დასტა: ოპტიმიზირებულია მუშაობისთვის მრავალი IoT პროტოკოლით: NetX Duo
- OpenBootloader
- Arm® Trusted Firmware-M (TF‑M) ინტეგრაციის გადაწყვეტა
- mbed-კრიპტო ბიბლიოთეკები
- ST Netwok ბიბლიოთეკა
- STMTtouch სენსორული ბიბლიოთეკის გადაწყვეტა
- რამდენიმე აპლიკაცია და დემონსტრაცია, რომლებიც ახორციელებენ ყველა ამ შუაპროგრამის კომპონენტს, ასევე მოცემულია STM32CubeWBA MCU პაკეტში.
- STM32CubeWBA MCU პაკეტის კომპონენტის განლაგება ილუსტრირებულია სურათზე 1. STM32CubeWBA MCU პაკეტის კომპონენტები.
STM32CubeWBA არქიტექტურა დასრულდაview
STM32CubeWBA MCU პაკეტის გადაწყვეტა აგებულია სამ დამოუკიდებელ დონეზე, რომლებიც ადვილად ურთიერთქმედებენ, როგორც აღწერილია სურათზე 2. STM32CubeWBA MCU პაკეტის არქიტექტურა.
დონე 0
ეს დონე დაყოფილია სამ ქვეფენად:
- საბჭოს მხარდაჭერის პაკეტი (BSP).
- აპარატურის აბსტრაქციის ფენა (HAL):
- HAL პერიფერიული დრაივერები
- დაბალი ფენის დრაივერები
- ძირითადი პერიფერიული გამოყენება მაგamples.
საბჭოს მხარდაჭერის პაკეტი (BSP)
ეს ფენა გთავაზობთ API-ების კომპლექტს აპარატურულ დაფებში არსებულ ტექნიკის კომპონენტებთან (როგორიცაა LCD, აუდიო,\ microSD™ და MEMS დრაივერები). იგი შედგება ორი ნაწილისაგან:
- კომპონენტის დრაივერი:
ეს დრაივერი დაკავშირებულია დაფაზე არსებულ გარე მოწყობილობასთან და არა STM32 მოწყობილობასთან. კომპონენტის დრაივერი უზრუნველყოფს კონკრეტულ API-ებს BSP დრაივერის გარე კომპონენტებს და შეიძლება იყოს პორტატული ნებისმიერ სხვა დაფაზე. - BSP მძღოლი:
BSP დრაივერი საშუალებას გაძლევთ დააკავშიროთ კომპონენტის დრაივერები კონკრეტულ დაფასთან და უზრუნველყოფს მომხმარებლისთვის მოსახერხებელი კომპლექტს
API-ები. API-ს დასახელების წესი არის BSP_FUNCT_Action().
Example: BSP_LED_Init(), BSP_LED_On()
BSP დაფუძნებულია მოდულურ არქიტექტურაზე, რომელიც საშუალებას იძლევა ადვილად პორტირება ნებისმიერ აპარატურაზე, მხოლოდ დაბალი დონის რუტინების განხორციელებით.
აპარატურის აბსტრაქციის ფენა (HAL) და დაბალი ფენა (LL)
STM32CubeWBA HAL და LL ავსებენ ერთმანეთს და მოიცავს განაცხადის მოთხოვნების ფართო სპექტრს:
- HAL დრაივერები გვთავაზობენ მაღალი დონის ფუნქციაზე ორიენტირებულ მაღალ პორტატულ API-ებს. ისინი მალავენ MCU-ს და პერიფერიულ სირთულეს საბოლოო მომხმარებლისთვის.
HAL დრაივერები უზრუნველყოფს ზოგად მრავალინსტანციაზე ორიენტირებულ API-ებს, რომლებიც ამარტივებს მომხმარებლის აპლიკაციის განხორციელებას მზა პროცესების უზრუნველყოფით. მაგampკომუნიკაციის პერიფერიული მოწყობილობებისთვის (I2S, UART და სხვები), ის უზრუნველყოფს API-ებს, რომლებიც საშუალებას აძლევს პერიფერიული მოწყობილობის ინიციალიზაციას და კონფიგურაციას, მონაცემთა გადაცემის მართვას კენჭისყრის, შეწყვეტის ან DMA პროცესის საფუძველზე და კომუნიკაციის შეცდომების დამუშავება, რომლებიც შეიძლება წარმოიშვას კომუნიკაციის დროს. HAL დრაივერების API იყოფა ორ კატეგორიად:- ზოგადი API-ები, რომლებიც უზრუნველყოფენ საერთო და ზოგად ფუნქციებს STM32 სერიის ყველა მიკროკონტროლერს.
- გაფართოების API-ები, რომლებიც უზრუნველყოფენ სპეციფიკურ და მორგებულ ფუნქციებს კონკრეტული ოჯახისთვის ან კონკრეტული ნაწილის ნომრისთვის.
- დაბალი ფენის API უზრუნველყოფს დაბალი დონის API-ებს რეგისტრის დონეზე, უკეთესი ოპტიმიზაციით, მაგრამ ნაკლები პორტაბელურობით.
- მათ სჭირდებათ MCU და პერიფერიული სპეციფიკაციების ღრმა ცოდნა.
- LL დრაივერები შექმნილია იმისთვის, რომ შესთავაზონ სწრაფი მსუბუქი ექსპერტებზე ორიენტირებული ფენა, რომელიც უფრო ახლოსაა აპარატურასთან, ვიდრე HAL. HAL-ის საპირისპიროდ, LL API არ არის მოწოდებული პერიფერიული მოწყობილობებისთვის, სადაც ოპტიმიზირებული წვდომა არ არის ძირითადი ფუნქცია, ან მათთვის, ვინც მოითხოვს მძიმე პროგრამული უზრუნველყოფის კონფიგურაციას ან რთული ზედა დონის დასტას.
- LL დრაივერების მახასიათებლები:
- ფუნქციების ნაკრები პერიფერიული ძირითადი მახასიათებლების ინიციალიზაციისთვის მონაცემთა სტრუქტურებში მითითებული პარამეტრების მიხედვით.
- ფუნქციების კომპლექტი ინიციალიზაციის მონაცემთა სტრუქტურების შესავსებად თითოეული ველის შესაბამისი გადატვირთვის მნიშვნელობებით.
- პერიფერიული დეინიციალიზაციის ფუნქცია (პერიფერიული რეგისტრები აღდგენილია ნაგულისხმევ მნიშვნელობებზე).
- პირდაპირი და ატომური რეგისტრის წვდომისათვის შიდა ფუნქციების ნაკრები.
- სრული დამოუკიდებლობა HAL-ისგან და დამოუკიდებელ რეჟიმში გამოყენების შესაძლებლობა (HAL დრაივერების გარეშე).
- მხარდაჭერილი პერიფერიული ფუნქციების სრული გაშუქება.
ძირითადი პერიფერიული გამოყენება მაგamples
ეს ფენა მოიცავს ყოფილიamples აგებულია STM32 პერიფერიულ მოწყობილობებზე მხოლოდ HAL და BSP რესურსების გამოყენებით.
დონე 1
ეს დონე იყოფა ორ ქვეფენად:
- Middleware კომპონენტები
- Examples ეფუძნება შუა პროგრამის კომპონენტებს
Middleware კომპონენტები
- Middleware არის ბიბლიოთეკების ნაკრები, რომელიც მოიცავს Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
- Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot და mbed-crypto.
- ამ ფენის კომპონენტებს შორის ჰორიზონტალური ურთიერთქმედება ხდება გამორჩეული API-ების გამოძახებით.
- ვერტიკალური ურთიერთქმედება დაბალი ფენის დრაივერებთან ხდება კონკრეტული გამოძახების და სტატიკური მაკროების მეშვეობით, რომლებიც დანერგილია ბიბლიოთეკის სისტემის ზარის ინტერფეისში.
- თითოეული Middleware კომპონენტის ძირითადი მახასიათებლები შემდეგია:
- Microsoft® Azure® RTOS
- Azure® RTOS ThreadX: რეალურ დროში ოპერაციული სისტემა (RTOS), შექმნილია ჩაშენებული სისტემებისთვის ორი ფუნქციური რეჟიმით.
- საერთო რეჟიმი: საერთო RTOS ფუნქციები, როგორიცაა ნაკადების მართვა და სინქრონიზაცია, მეხსიერების აუზის მართვა, შეტყობინებები და მოვლენების მართვა.
- მოდულის რეჟიმი: მომხმარებლის მოწინავე რეჟიმი, რომელიც საშუალებას აძლევს წინასწარ დაკავშირებულ ThreadX მოდულების ჩატვირთვას და გადმოტვირთვას მოდულის მენეჯერის მეშვეობით.
- NetX Duo
- FileX
- USBX
- Azure® RTOS ThreadX: რეალურ დროში ოპერაციული სისტემა (RTOS), შექმნილია ჩაშენებული სისტემებისთვის ორი ფუნქციური რეჟიმით.
- Bluetooth® Low Energy (BLE): ახორციელებს Bluetooth® Low Energy პროტოკოლს Link და Stack ფენებისთვის.
- MCUboot (ღია კოდის პროგრამული უზრუნველყოფა)
- Zigbee® პროტოკოლები სტეკისთვის და მასთან დაკავშირებული კლასტერებისთვის.
- Thread® პროტოკოლის დასტა და ბმული ფენა.
- Arm® სანდო firmware-M, TF‑M (ღია კოდის პროგრამული უზრუნველყოფა): Arm® პლატფორმის უსაფრთხოების არქიტექტურის (PSA) მითითება TrustZone®-სთვის ასოცირებული უსაფრთხო სერვისებით.
- mbed-crypto (ღია კოდის პროგრამული უზრუნველყოფა): mbed-crypto middleware უზრუნველყოფს PSA კრიპტოგრაფიის API-ს დანერგვას.
- STM32 სენსორული ბიბლიოთეკა: მტკიცე STMTtouch ტევადი შეხების სენსორული ხსნარი, სიახლოვის, სენსორული ღილაკის, ხაზოვანი და მბრუნავი სენსორების მხარდაჭერა. იგი ეფუძნება ზედაპირული მუხტის გადაცემის შეძენის დადასტურებულ პრინციპს.
- Microsoft® Azure® RTOS
Examples ეფუძნება შუა პროგრამის კომპონენტებს
ყოველ შუა პროგრამის კომპონენტს მოყვება ერთი ან მეტი ყოფილიamples (ასევე მოუწოდა აპლიკაციებს) აჩვენებს, თუ როგორ გამოიყენოთ იგი. ინტეგრაცია მაგampასევე მოწოდებულია ისეთი პროგრამები, რომლებიც იყენებენ შუა პროგრამის რამდენიმე კომპონენტს.
STM32CubeWBA firmware პაკეტი დასრულდაview
მხარდაჭერილი STM32WBA სერიის მოწყობილობები და აპარატურა
- STM32Cube გთავაზობთ უაღრესად პორტატულ ტექნიკის აბსტრაქციის ფენას (HAL), რომელიც აგებულია ზოგადი არქიტექტურის ირგვლივ. ის საშუალებას აძლევს ფენების გაშენების პრინციპს, როგორიცაა შუა პროგრამის ფენის გამოყენება მათი ფუნქციების განსახორციელებლად, სიღრმისეული ცოდნის გარეშე, რა გამოიყენება MCU. ეს აუმჯობესებს ბიბლიოთეკის კოდის ხელახლა გამოყენებას და უზრუნველყოფს სხვა მოწყობილობებზე მარტივ პორტატულობას.
- გარდა ამისა, ფენიანი არქიტექტურის წყალობით, STM32CubeWBA გთავაზობთ ყველა STM32WBA სერიის სრულ მხარდაჭერას.
- მომხმარებელს მხოლოდ სწორი მაკრო უნდა განსაზღვროს stm32wbaxx.h.
- ცხრილი 1 გვიჩვენებს მაკრო, რომელიც უნდა განისაზღვროს გამოყენებული STM32WBA სერიის მოწყობილობის მიხედვით. ეს მაკრო ასევე უნდა განისაზღვროს კომპილერის წინასწარ პროცესორში.
ცხრილი 1. მაკროები STM32WBA სერიებისთვისმაკრო განსაზღვრულია stm32wbaxx.h-ში STM32WBA სერიის მოწყობილობები stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6 stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7 - STM32CubeWBA აღჭურვილია ყოფილი კომპლექტის მდიდარი ნაკრებითamples და აპლიკაციები ყველა დონეზე, რაც აადვილებს ნებისმიერი HAL დრაივერის ან შუაპროგრამის კომპონენტების გაგებას და გამოყენებას. ეს ყოფილიampისინი მუშაობს STMicroelectronics დაფებზე, რომლებიც ჩამოთვლილია ცხრილში 2.
ცხრილი 2. დაფები STM32WBA სერიებისთვისგამგეობა ჩაყარეთ STM32WBA მხარდაჭერილი მოწყობილობები NUCLEO-WBA52CG STM32WBA52CGU6 NUCLEO-WBA55CG STM32WBA55CGU6 STM32WBA55-DK1 STM32WBA55CGU7 - STM32CubeWBA MCU პაკეტი შეიძლება იმუშაოს ნებისმიერ თავსებად მოწყობილობაზე. მომხმარებელი უბრალოდ აახლებს BSP დრაივერებს მოწოდებული ყოფილი პორტისთვისampდაფაზე, თუ ამ უკანასკნელს აქვს იგივე ტექნიკის მახასიათებლები (როგორიცაა LED, LCD დისპლეი და ღილაკები).
პროგრამული უზრუნველყოფის პაკეტი დასრულდაview
- STM32CubeWBA პაკეტის გადაწყვეტა მოწოდებულია ერთ zip პაკეტში, რომელსაც აქვს სტრუქტურა, რომელიც ნაჩვენებია სურათზე 3. STM32CubeWBA firmware პაკეტის სტრუქტურა.
- თითოეული დაფისთვის, კომპლექტი ყოფილიamples მოწოდებულია წინასწარ კონფიგურირებული პროექტებით EWARM, MDK-ARM და STM32CubeIDE ინსტრუმენტთა ჯაჭვებისთვის.
- სურათი 4. STM32CubeWBA examples მეტიview აჩვენებს პროექტის სტრუქტურას NUCLEO‑WBA52CG, NUCLEO-WBA55CG და STM32WBA55G-DK1 დაფებისთვის.
- ყოფილმაamples კლასიფიცირებულია STM32Cube დონის მიხედვით, რომელსაც ისინი მიმართავენ და დასახელებულია შემდეგნაირად:
- დონე 0 examples ეწოდება Exampლესი, მაგamples_LL და Examples_MIX. ისინი იყენებენ შესაბამისად HAL დრაივერებს, LL დრაივერებს და HAL და LL დრაივერების ნაზავს ყოველგვარი შუაპროგრამის კომპონენტის გარეშე.
- დონე 1 examples ეწოდება აპლიკაციებს. ისინი უზრუნველყოფენ საშუალო პროგრამის თითოეული კომპონენტის ტიპურ გამოყენებას. ნებისმიერი firmware პროგრამა მოცემული დაფისთვის შეიძლება სწრაფად შეიქმნას შაბლონური პროექტების წყალობით, რომლებიც ხელმისაწვდომია Templ ates და Templates_LL დირექტორიაში.
TrustZone® ჩართული პროექტები
- TrustZone® ჩართულია მაგamples სახელები შეიცავს _TrustZone პრეფიქსს. ეს წესი ასევე გამოიყენება აპლიკაციებისთვის (გარდა TFM-ისა და SBSFU-ისა, რომლებიც მშობლიურია TrustZone®-ისთვის).
- TrustZone® ჩართულია მაგamples და Applications მოწოდებულია მრავალპროექტიანი სტრუქტურით, რომელიც შედგება უსაფრთხო და არაუსაფრთხო ქვეპროექტებისგან, როგორც წარმოდგენილია სურათზე 5. მრავალპროექტის უსაფრთხო და არაუსაფრთხო პროექტის სტრუქტურა.
- TrustZone®-ზე ჩართული პროექტები შემუშავებულია CMSIS-5 მოწყობილობის შაბლონის მიხედვით, გაფართოვებულია სისტემის დაყოფის სათაურის ჩათვლით. file დანაყოფი_ .h, რომელიც ძირითადად პასუხისმგებელია უსაფრთხო ატრიბუტის ერთეულის (SAU), FPU და უსაფრთხო/არაუსაფრთხო შეფერხებების დაყენებაზე უსაფრთხო შესრულების მდგომარეობაში.
- ეს დაყენება შესრულებულია უსაფრთხო CMSIS SystemInit() ფუნქციაში, რომელიც გამოიძახება გაშვებისას უსაფრთხო აპლიკაციის main() ფუნქციაში შესვლამდე. იხილეთ Arm® TrustZone®-M პროგრამული უზრუნველყოფის სახელმძღვანელოს დოკუმენტაცია.
- STM32CubeWBA პაკეტის firmware პაკეტი უზრუნველყოფს ნაგულისხმევი მეხსიერების დაყოფას დანაყოფში _ .თ fileხელმისაწვდომია: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emmplates
- ამ დანაყოფში files, SAU გამორთულია ნაგულისხმევად. შესაბამისად, IDAU მეხსიერების რუკა გამოიყენება უსაფრთხოების ატრიბუტისთვის. იხილეთ უსაფრთხო/არაუსაფრთხო დანაყოფი TrustZone® ტექნოლოგიის გამოყენებით RM0495 საცნობარო სახელმძღვანელოში.
- თუ მომხმარებელი ჩართავს SAU-ს, ნაგულისხმევი SAU რეგიონების კონფიგურაცია წინასწარ არის განსაზღვრული დანაყოფში files შემდეგნაირად:
- SAU რეგიონი 0: 0x08080000 – 0x081FFFFF (ფლეშ მეხსიერების არაუსაფრთხო უსაფრთხო ნახევარი (512 კბაიტი))
- SAU რეგიონი 1: 0x0BF88000 – 0x0BF97FFF (არაუსაფრთხო სისტემის მეხსიერება)
- SAU რეგიონი 2: 0x0C07E000 – 0x0C07FFFF (უსაფრთხო, არაუსაფრთხო გამოძახება)
- SAU რეგიონი 3: 0x20010000 – 0x2001FFFF (არაუსაფრთხო SRAM2 (64 კბაიტი))
- SAU რეგიონი 4: 0x40000000 – 0x4FFFFFFF (არაუსაფრთხო პერიფერიული რუკირებული მეხსიერება)
- ნაგულისხმევი დანაყოფის შესატყვისად, STM32WBAxx სერიის მოწყობილობებს უნდა ჰქონდეთ შემდეგი მომხმარებლის ოფციონის ბაიტები დაყენებული:
- TZEN = 1 (TrustZone® ჩართული მოწყობილობა)
- SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (შიდა ფლეშ მეხსიერების 64 გვერდიდან 128 დაყენებულია უსაფრთხოდ) შენიშვნა: შიდა ფლეშ მეხსიერება ნაგულისხმევად სრულად დაცულია TZEN = 1-ში. მომხმარებლის ვარიანტის ბაიტები SECWM1_PSTRT/ SECWM1_PEND უნდა იყოს დაყენებული აპლიკაციის მიხედვით მეხსიერების კონფიგურაცია (SAU რეგიონები, თუ SAU ჩართულია). უსაფრთხო/არაუსაფრთხო აპლიკაციების პროექტის დამაკავშირებელი files ასევე უნდა იყოს გასწორებული.
- ყველა ყოფილიampმათ აქვთ იგივე სტრუქტურა:
- \Inc საქაღალდე, რომელიც შეიცავს ყველა სათაურს files.
- Src საქაღალდე, რომელიც შეიცავს წყაროს კოდს.
- \EWARM, \MDK-ARM და \STM32CubeIDE საქაღალდეები, რომლებიც შეიცავს წინასწარ კონფიგურირებულ პროექტს თითოეული ხელსაწყოების ჯაჭვისთვის.
- readme.md და readme.html აღწერს ყოფილიampქცევა და საჭირო გარემო, რათა ის იმუშაოს.
- ioc file რაც მომხმარებლებს საშუალებას აძლევს გახსნას პროგრამული უზრუნველყოფის უმეტესი ნაწილიamples STM32CubeMX-ში.
დაწყება STM32CubeWBA
გაშვება პირველი HAL example
ეს განყოფილება განმარტავს, თუ რამდენად მარტივია პირველი ყოფილის გაშვებაampSTM32CubeWBA ფარგლებში. ის იყენებს ილუსტრაციად მარტივი LED გადამრთველის თაობას, რომელიც მუშაობს NUCLEO-WBA52CG დაფაზე:
- ჩამოტვირთეთ STM32CubeWBA MCU პაკეტი.
- გახსენით იგი თქვენს მიერ არჩეულ დირექტორიაში.
- დარწმუნდით, რომ არ შეცვალოთ პაკეტის სტრუქტურა, რომელიც ნაჩვენებია სურათზე 1. ასევე რეკომენდირებულია პაკეტის კოპირება თქვენს root მოცულობასთან ახლოს (იგულისხმება C:\ST ან G:\Tests), რადგან ზოგიერთ IDE-ს ექმნება პრობლემები, როდესაც ბილიკი სიგრძე ძალიან გრძელია.
პირველი TrustZone®-ის გაშვებაample
- TrustZone®-ის ჩატვირთვამდე და გაშვებამდე, მაგampლე, სავალდებულოა ყოფილი წაკითხვაampწაიკითხე file ნებისმიერი კონკრეტული კონფიგურაციისთვის, რომელიც უზრუნველყოფს უსაფრთხოების ჩართვას, როგორც ეს აღწერილია 4.2.1 TrustZone® ჩართულ პროექტებში (TZEN=1 (მომხმარებლის ვარიანტის ბაიტი)).
- დაათვალიერეთ \Projects\NUCLEO-WBA52CG\Examples.
- გახსენით \GPIO, შემდეგ \GPIO_IOToggle_TrustZone საქაღალდეები.
- გახსენით პროექტი თქვენთვის სასურველი ინსტრუმენტების ჯაჭვით. სწრაფი დასრულდაview იმის შესახებ, თუ როგორ უნდა გახსნათ, ავაშენოთ და მართოთ ყოფილიampმხარდაჭერილი ხელსაწყოების ჯაჭვები მოცემულია ქვემოთ.
- თანმიმდევრობით აღადგინეთ ყველა უსაფრთხო და არაუსაფრთხო პროექტი files და ჩატვირთეთ უსაფრთხო და არაუსაფრთხო სურათები სამიზნე მეხსიერებაში.
- გაუშვით ყოფილიample: რეგულარულად, უსაფრთხო აპლიკაცია ყოველ წამში ცვლის LD2-ს, ხოლო არაუსაფრთხო აპლიკაცია ორჯერ უფრო სწრაფად ცვლის LD3-ს. დამატებითი ინფორმაციისთვის იხილეთ readme file ყოფილისampლე.
- ყოფილის გახსნა, აშენება და გაშვებაampმხარდაჭერილი ხელსაწყოების ჯაჭვებით, მიჰყევით ქვემოთ მოცემულ ნაბიჯებს:
- EWARM:
- ყოფილის ქვეშample საქაღალდე, გახსენით \EWARM ქვესაქაღალდე.
- გაუშვით Project.eww სამუშაო სივრცე
- აღადგინეთ xxxxx_S უსაფრთხო პროექტი files: [პროექტი]> [ყველას აღდგენა].
- დააყენეთ xxxxx_NS არაუსაფრთხო პროექტი, როგორც აქტიური აპლიკაცია (დააწკაპუნეთ მარჯვენა ღილაკით xxxxx_NS პროექტზე [დაყენება როგორც აქტიური])
- აღადგინეთ xxxxx_NS არაუსაფრთხო პროექტი files: [პროექტი]> [ყველას აღდგენა].
- არაუსაფრთხო ორობითი გამორთვა [Project]>[Download]>[ჩამოტვირთეთ აქტიური აპლიკაცია].
- დააყენეთ xxxxx_S როგორც აქტიური აპლიკაცია (დააწკაპუნეთ მარჯვენა ღილაკით xxxxx_S პროექტზე [Set as Active].
- ჩამოტვირთეთ უსაფრთხო ორობითი ფუნქცია [Download and Debug] (Ctrl+D).
- გაუშვით პროგრამა: [Debug]>[Go(F5)]
- MDK-ARM:
- გახსენით \MDK-ARM ხელსაწყოების ჯაჭვი.
- გახსენით Multiprojects სამუშაო სივრცე file პროექტი.uvmpw.
- აირჩიეთ xxxxx_s პროექტი, როგორც აქტიური აპლიკაცია ([Set as Active Project]).
- შექმენით xxxxx_s პროექტი.
- აირჩიეთ xxxxx_ns პროექტი როგორც აქტიური პროექტი ([Set as Active Project]).
- შექმენით xxxxx_ns პროექტი.
- ჩატვირთეთ არაუსაფრთხო ორობითი ([F8]). ეს ჩამოტვირთავს \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf ფლეშ მეხსიერებაში)
- აირჩიეთ Project_s პროექტი, როგორც აქტიური პროექტი ([Set as Active Project]).
- ჩატვირთეთ უსაფრთხო ორობითი ([F8]). ეს ჩამოტვირთავს \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf ფლეშ მეხსიერებაში).
- გაუშვით ყოფილიampლე.
- STM32CubeIDE:
- გახსენით STM32CubeIDE ხელსაწყოების ჯაჭვი.
- გახსენით Multiprojects სამუშაო სივრცე file .პროექტი.
- აღადგინეთ xxxxx_Secure პროექტი.
- აღადგინეთ xxxxx_NonSecure პროექტი.
- გაუშვით [Debug as STM32 Cortex-M C/C++] აპლიკაცია უსაფრთხო პროექტისთვის.
- [Edit configuration] ფანჯარაში აირჩიეთ [Startup] პანელი და დაამატეთ ჩატვირთვა არაუსაფრთხო პროექტის გამოსახულება და სიმბოლოები.
მნიშვნელოვანია: არაუსაფრთხო პროექტი უნდა ჩაიტვირთოს უსაფრთხო პროექტამდე. - დააწკაპუნეთ [Ok].
- გაუშვით ყოფილიampგამართვის პერსპექტივაზე.
- EWARM:
პირველი TrustZone®-ის გათიშვა, მაგample
- TrustZone®-ის ჩატვირთვამდე და გაშვებამდე გამორთულია მაგampლე, სავალდებულოა ყოფილი წაკითხვაampწაიკითხე file ნებისმიერი კონკრეტული კონფიგურაციისთვის. თუ არ არის კონკრეტული ნახსენები, დარწმუნდით, რომ დაფის მოწყობილობას აქვს უსაფრთხოება გამორთული (TZEN=0 (მომხმარებლის ოფციის ბაიტი)). იხილეთ FAQ არჩევითი რეგრესიის გასაკეთებლად TZEN = 0-მდე
- დაათვალიერეთ \Projects\NUCLEO-WBA52CG\Examples.
- გახსენით \GPIO, შემდეგ \GPIO_EXTI საქაღალდეები.
- გახსენით პროექტი თქვენთვის სასურველი ინსტრუმენტების ჯაჭვით. სწრაფი დასრულდაview იმის შესახებ, თუ როგორ უნდა გახსნათ, ავაშენოთ და მართოთ ყოფილიampმხარდაჭერილი ხელსაწყოების ჯაჭვები მოცემულია ქვემოთ.
- აღადგინე ყველა files და ჩატვირთეთ თქვენი სურათი სამიზნე მეხსიერებაში.
- გაუშვით ყოფილიample: ყოველ ჯერზე, როდესაც დააჭირეთ [USER] ღილაკს, LD1 LED გადართავს. დამატებითი ინფორმაციისთვის იხილეთ readme file ყოფილისampლე.
- ყოფილის გახსნა, აშენება და გაშვებაampმხარდაჭერილი ხელსაწყოების ჯაჭვებით, მიჰყევით ქვემოთ მოცემულ ნაბიჯებს:
- EWARM:
- ყოფილის ქვეშample საქაღალდე, გახსენით \EWARM ქვესაქაღალდე.
- გაუშვით Project.eww სამუშაო სივრცე (სამუშაო სივრცის სახელი შეიძლება შეიცვალოს ერთი ყოფილიდანampსხვას).
- აღადგინე ყველა files: [პროექტი]> [ყველას აღდგენა].
- ჩატვირთეთ პროექტის სურათი: [პროექტი]> [გამართვა].
- გაუშვით პროგრამა: [Debug]>[Go (F5)].
- MDK-ARM:
- ყოფილის ქვეშample საქაღალდე, გახსენით \MDK-ARM ქვესაქაღალდე.
- გაუშვით Project.uvproj სამუშაო სივრცე (სამუშაო სივრცის სახელი შეიძლება შეიცვალოს ერთი ყოფილიდანampსხვას).
- აღადგინე ყველა files:[პროექტი]>[აღადგინეთ ყველა სამიზნე fileს].
- ჩატვირთეთ პროექტის სურათი: [Debug]>[Start/Stop Debug Session].
- გაუშვით პროგრამა: [Debug]>[Run (F5)].
- STM32CubeIDE:
- გახსენით STM32CubeIDE ხელსაწყოების ჯაჭვი.
- დააჭირეთ [File]>[Switch Workspace]>[Other] და დაათვალიერეთ STM32CubeIDE სამუშაო სივრცის დირექტორიაში.
- დააჭირეთ [File]>[იმპორტი], აირჩიეთ [General]>[Existing Projects into Workspace] და შემდეგ დააწკაპუნეთ [Next].
- გადახედეთ STM32CubeIDE სამუშაო სივრცის დირექტორიაში და აირჩიეთ პროექტი.
- აღადგინეთ ყველა პროექტი files: აირჩიეთ პროექტი [Project Explorer] ფანჯარაში და შემდეგ დააჭირეთ მენიუს [Project]>[Build project].
- გაუშვით პროგრამა: [Run]>[Debug (F11)]
- EWARM:
პერსონალური აპლიკაციის შემუშავება
შენიშვნა: პროგრამულმა უზრუნველყოფამ უნდა ჩართოს ინსტრუქციის ქეში (ICACHE), რომ მიიღოს 0 ლოდინის მდგომარეობა ფლეშ მეხსიერებიდან და მიაღწიოს მაქსიმალურ შესრულებას და ენერგიის უკეთეს მოხმარებას.
STM32CubeMX-ის გამოყენება აპლიკაციის შესაქმნელად ან განახლებისთვის
- STM32CubeWBA MCU პაკეტში, თითქმის ყველა პროექტი ყოფილიamples გენერირებულია STM32CubeMX ხელსაწყოთი სისტემის, პერიფერიული მოწყობილობების და შუა პროგრამების ინიციალიზაციისთვის.
- არსებული პროექტის პირდაპირი გამოყენება მაგampSTM32CubeMX ხელსაწყოდან საჭიროა STM32CubeMX 6.10.0 ან უფრო მაღალი:
- STM32CubeMX-ის ინსტალაციის შემდეგ გახსენით და საჭიროების შემთხვევაში განაახლეთ შემოთავაზებული პროექტი. არსებული პროექტის გახსნის უმარტივესი გზაა ორჯერ დააწკაპუნოთ *.ioc-ზე file რათა STM32CubeMX ავტომატურად ხსნის პროექტს და მის წყაროს files.
- STM32CubeMX წარმოქმნის ასეთი პროექტების ინიციალიზაციის წყაროს კოდს. აპლიკაციის ძირითადი კოდი შეიცავს კომენტარებს „USER CODE BEGIN“ და „USER CODE END“. IP შერჩევისა და პარამეტრის შეცვლის შემთხვევაში, STM32CubeMX განაახლებს კოდის ინიციალიზაციის ნაწილს, მაგრამ ინახავს აპლიკაციის ძირითად წყაროს კოდს.
- STM32CubeMX-ში მორგებული პროექტის შემუშავებისთვის, მიჰყევით ნაბიჯ-ნაბიჯ პროცესს:
- აირჩიეთ STM32 მიკროკონტროლერი, რომელიც შეესაბამება პერიფერიული მოწყობილობების საჭირო კომპლექტს.
- დააკონფიგურირეთ ყველა საჭირო ჩაშენებული პროგრამული უზრუნველყოფა pinout-conflict-ის ამოხსნის, საათის ხის დაყენების დამხმარე, ენერგიის მოხმარების კალკულატორის და პროგრამის, რომელიც ასრულებს MCU პერიფერიულ კონფიგურაციას (როგორიცაა GPIO ან USART) და შუა პროგრამების სტეკები (როგორიცაა USB) გამოყენებით.
- შექმენით ინიციალიზაციის C კოდი არჩეული კონფიგურაციის საფუძველზე. ეს კოდი მზად არის გამოსაყენებლად რამდენიმე განვითარების გარემოში. მომხმარებლის კოდი ინახება კოდის მომდევნო თაობაში.
- STM32CubeMX-ის შესახებ დამატებითი ინფორმაციისთვის იხილეთ მომხმარებლის სახელმძღვანელო STM32CubeMX STM32 კონფიგურაციისა და ინიციალიზაციისთვის C კოდის გენერირებისთვის (UM1718).
- ხელმისაწვდომი პროექტების ჩამონათვალისთვის, მაგampSTM32CubeWBA, იხილეთ განაცხადის შენიშვნა STM32Cube firmware examples STM32WBA სერიისთვის (AN5929).
დრაივერის აპლიკაციები
HAL აპლიკაცია
ეს განყოფილება აღწერს ნაბიჯებს, რომლებიც საჭიროა HAL აპლიკაციის შესაქმნელად STM32CubeWBA-ს გამოყენებით:
- შექმენით პროექტი
- ახალი პროექტის შესაქმნელად, დაიწყეთ შაბლონის პროექტიდან, რომელიც მოცემულია თითოეული დაფისთვის \Projects\-ში. \ შაბლონები ან ნებისმიერი ხელმისაწვდომი პროექტიდან \Projects\ \გამოცდები ან \პროექტები\ \ აპლიკაციები (სად ეხება დაფის სახელს, როგორიცაა STM32CubeWBA).
- Template პროექტი უზრუნველყოფს ცარიელ მთავარ მარყუჟის ფუნქციას. თუმცა, კარგი საწყისი წერტილია STM32CubeWBA პროექტის პარამეტრების გასაგებად. შაბლონს აქვს შემდეგი მახასიათებლები:
- ის შეიცავს HAL წყაროს კოდს, CMSIS და BSP დრაივერებს, რომლებიც არის კომპონენტების მინიმალური ნაკრები, რომელიც საჭიროა მოცემულ დაფაზე კოდის შესაქმნელად.
- იგი შეიცავს ჩართულ ბილიკებს ყველა firmware კომპონენტისთვის.
- ის განსაზღვრავს მხარდაჭერილ STM32WBA სერიის მოწყობილობებს, რაც საშუალებას აძლევს CMSIS და HAL დრაივერების სწორად კონფიგურაციას.
- ის უზრუნველყოფს მზა მომხმარებელს files წინასწარ არის კონფიგურირებული, როგორც ნაჩვენებია ქვემოთ:
HAL ინიციალიზებულია ნაგულისხმევი დროის ბაზით Arm® core SysTick-ით. SysTick ISR განხორციელდა HAL_Delay() მიზნით.
შენიშვნა: არსებული პროექტის სხვა ადგილას კოპირებისას, დარწმუნდით, რომ ყველა ჩართული ბილიკი განახლებულია.
- დაამატეთ საჭირო შუა პროგრამა მომხმარებლის პროექტს (სურვილისამებრ)
წყაროს ამოსაცნობად fileპროექტს დაემატება file სიაში, იხილეთ დოკუმენტაცია, რომელიც მოწოდებულია თითოეული შუალედური პროგრამისთვის. იხილეთ აპლიკაციები \Projects\STM32xxx_yyy\Applications\ (სად ეხება შუა პროგრამების დასტას, როგორიცაა ThreadX), რათა იცოდეთ რომელი წყარო files და მოიცავს ბილიკები უნდა დაემატოს. - დააკონფიგურირეთ firmware კომპონენტები
HAL და Middleware კომპონენტები გვთავაზობენ შექმნის დროის კონფიგურაციის ვარიანტების კომპლექტს სათაურში გამოცხადებული მაკროების #define გამოყენებით. file. შაბლონის კონფიგურაცია file მოცემულია თითოეულ კომპონენტში, რომელიც უნდა დაკოპირდეს პროექტის საქაღალდეში (ჩვეულებრივ, კონფიგურაცია file ჰქვია xxx_conf_template.h, სიტყვა _template უნდა მოიხსნას პროექტის საქაღალდეში კოპირებისას). კონფიგურაცია file უზრუნველყოფს საკმარის ინფორმაციას თითოეული კონფიგურაციის ვარიანტის გავლენის გასაგებად. უფრო დეტალური ინფორმაცია ხელმისაწვდომია თითოეული კომპონენტისთვის მოწოდებულ დოკუმენტაციაში. - დაიწყეთ HAL ბიბლიოთეკა
მთავარ პროგრამაზე გადასვლის შემდეგ, აპლიკაციის კოდმა უნდა გამოიძახოს HAL_Init() API HAL ბიბლიოთეკის ინიციალიზაციისთვის, რომელიც ასრულებს შემდეგ დავალებებს:- ფლეშ მეხსიერების წინასწარ ამოტვირთვისა და SysTick შეფერხების პრიორიტეტის კონფიგურაცია (მაკროების მეშვეობით, რომლებიც განსაზღვრულია st m32wbaxx_hal_conf.h-ში).
- SysTick-ის კონფიგურაცია ყოველ მილიწამში შეფერხების გენერირებისთვის SysTick შეწყვეტის პრიორიტეტზე TICK_INT_PRIO, რომელიც განსაზღვრულია stm32wbaxx_hal_conf.h-ში.
- NVIC ჯგუფის პრიორიტეტის დაყენება 0-ზე.
- HAL_MspInit() გამოძახების ფუნქციის გამოძახება განსაზღვრულია stm32wbaxx_hal_msp.c მომხმარებელში file გლობალური დაბალი დონის ტექნიკის ინიციალიზაციის შესასრულებლად.
- სისტემის საათის კონფიგურაცია
სისტემის საათის კონფიგურაცია ხდება ქვემოთ აღწერილი ორი API-ის გამოძახებით:- HAL_RCC_OscConfig(): ეს API აკონფიგურირებს შიდა და გარე ოსცილატორებს. მომხმარებელი ირჩევს ერთი ან ყველა ოსცილატორის კონფიგურაციას.
- HAL_RCC_ClockConfig(): ეს API აკონფიგურირებს სისტემის საათის წყაროს, ფლეშ მეხსიერების დაყოვნებას და AHB და APB პრესკალერებს.
- პერიფერიულის ინიცირება
- ჯერ ჩაწერეთ პერიფერიული HAL_PPP_MspInit ფუნქცია. გააგრძელეთ შემდეგნაირად:
- ჩართეთ პერიფერიული საათი.
- პერიფერიული GPIO-ების კონფიგურაცია.
- დააკონფიგურირეთ DMA არხი და ჩართეთ DMA შეწყვეტა (საჭიროების შემთხვევაში).
- პერიფერიული შეფერხების ჩართვა (საჭიროების შემთხვევაში).
- საჭიროების შემთხვევაში შეცვალეთ stm32xxx_it.c საჭირო შეფერხების დამმუშავებლების (პერიფერიული და DMA) გამოსაძახებლად.
- ჩაწერეთ პროცესის სრული გამოძახების ფუნქციები, თუ დაგეგმილია პერიფერიული შეფერხების ან DMA-ს გამოყენება.
- მომხმარებლის მთავარში.გ fileპერიფერიული სახელურის სტრუქტურის ინიციალიზაცია და შემდეგ გამოიძახეთ ფუნქცია HAL_PPP_Init() პერიფერიის ინიციალიზაციისთვის.
- ჯერ ჩაწერეთ პერიფერიული HAL_PPP_MspInit ფუნქცია. გააგრძელეთ შემდეგნაირად:
- განავითარეთ აპლიკაცია
- ამ სtagე, სისტემა მზად არის და მომხმარებლის აპლიკაციის კოდის შემუშავება შეიძლება დაიწყოს.
- HAL უზრუნველყოფს ინტუიციურ და მზა API-ებს პერიფერიული მოწყობილობის კონფიგურაციისთვის. იგი მხარს უჭერს გამოკითხვას, შეფერხებებს და DMA პროგრამირების მოდელს, რათა დააკმაყოფილოს ნებისმიერი განაცხადის მოთხოვნა. დამატებითი ინფორმაციისთვის, თუ როგორ გამოიყენოთ თითოეული პერიფერიული მოწყობილობა, მიმართეთ მდიდარ ყოფილსampნაკრები მოცემულია STM32CubeWBA MCU პაკეტში.
სიფრთხილე: ნაგულისხმევი HAL განხორციელებაში SysTick ტაიმერი გამოიყენება როგორც დროის ბაზა: ის წარმოქმნის შეფერხებებს რეგულარულ დროის ინტერვალებში. თუ HAL_Delay() გამოიძახება პერიფერიული ISR პროცესიდან, დარწმუნდით, რომ SysTick შეფერხებას აქვს უფრო მაღალი პრიორიტეტი (რიცხობრივად დაბალი), ვიდრე პერიფერიული შეფერხება. წინააღმდეგ შემთხვევაში, აბონენტის ISR პროცესი დაბლოკილია. ფუნქციები, რომლებიც გავლენას ახდენენ დროის ბაზის კონფიგურაციაზე, გამოცხადებულია __სუსტად, რათა შესაძლებელი გახდეს მომხმარებლის მიერ სხვა განხორციელების შემთხვევაში გადაფარვა file (ზოგადი დანიშნულების ტაიმერის გამოყენებით, მაგample, ან დროის სხვა წყარო). დამატებითი ინფორმაციისთვის იხილეთ HAL_TimeBase ყოფილიampლე.
LL აპლიკაცია
ეს განყოფილება აღწერს ნაბიჯებს, რომლებიც საჭიროა ინდივიდუალური LL აპლიკაციის შესაქმნელად STM32CubeWBA-ს გამოყენებით.
- შექმენით პროექტი
- ახალი პროექტის შესაქმნელად, ან დაიწყეთ Templates_LL პროექტით, რომელიც მოცემულია თითოეული დაფისთვის \Projects\-ში. \Templates_LL, ან ნებისმიერი ხელმისაწვდომი პროექტიდან \Projects\ \მაგamples_LL ( ეხება დაფის სახელს, როგორიცაა NUCLEO-WBA32CG).
- შაბლონის პროექტი უზრუნველყოფს ცარიელ მთავარ მარყუჟის ფუნქციას, რაც კარგი საწყისი წერტილია STM32CubeWBA პროექტის პარამეტრების გასაგებად. შაბლონის ძირითადი მახასიათებლები შემდეგია:
- ის შეიცავს LL და CMSIS დრაივერების წყაროს კოდებს, რომლებიც წარმოადგენს კომპონენტების მინიმალურ კომპლექტს, რომელიც საჭიროა მოცემულ დაფაზე კოდის შესაქმნელად.
- ის შეიცავს ჩართულ ბილიკებს ყველა საჭირო firmware კომპონენტისთვის.
- ის ირჩევს მხარდაჭერილ STM32WBA სერიის მოწყობილობას და იძლევა CMSIS და LL დრაივერების სწორი კონფიგურაციის საშუალებას.
- ის უზრუნველყოფს მზა მომხმარებლის გამოყენებას files, რომლებიც წინასწარ არის კონფიგურირებული შემდეგნაირად:
◦ main.h: LED და USER_BUTTON განმარტების აბსტრაქციის შრე.
◦ main.c: სისტემის საათის კონფიგურაცია მაქსიმალური სიხშირისთვის.
- გადაიტანეთ არსებული პროექტი სხვა დაფაზე
სხვა სამიზნე დაფაზე არსებული პროექტის მხარდასაჭერად, დაიწყეთ Templates_LL პროექტით, რომელიც მოცემულია თითოეული დაფისთვის და ხელმისაწვდომია \Projects\-ში. \ შაბლონები_LL.- აირჩიეთ LL example: იპოვონ დაფა, რომელზეც LL examples არიან განლაგებული, იხილეთ სია LL examples STM32CubeProjectsList.html.
- პორტი LL exampლე:
- დააკოპირეთ/ჩასვით Templates_LL საქაღალდე – საწყისი წყაროს შესანარჩუნებლად – ან პირდაპირ განაახლეთ არსებული Temp lates_LL პროექტი.
- შემდეგ პორტირება ძირითადად შედგება Templates_LL-ის ჩანაცვლებაში fileს მიერ Examples_LL მიზნობრივი პროექტი.
- შეინახეთ დაფის ყველა კონკრეტული ნაწილი. სიცხადისთვის, დაფის სპეციფიკური ნაწილები მონიშნულია სპეციფიკური ნიშნით tags:
- ამრიგად, პორტირების ძირითადი ნაბიჯები შემდეგია:
- შეცვალეთ stm32wbaxx_it.h file
- შეცვალეთ stm32wbaxx_it.c file
- შეცვალეთ მთავარი.თ file და განაახლეთ: შეინახეთ LL შაბლონის LED და მომხმარებლის ღილაკის განმარტება BOARD SPECIFIC CONFIGURATION-ში tags.
- შეცვალეთ მთავარი.გ file და განაახლეთ:
- შეინახეთ SystemClock_Config() LL შაბლონის ფუნქციის საათის კონფიგურაცია BOARD SPECIFIC CONFIGURATION-ში tags.
- LED განსაზღვრებიდან გამომდინარე, შეცვალეთ თითოეული LDx შემთხვევა სხვა LDy-ით, რომელიც ხელმისაწვდომია main.h file.
- ამ ცვლილებებით, ყოფილიample ახლა გადის მიზნობრივ დაფაზე
უსაფრთხოების პროგრამები
ეს პაკეტი მიწოდებულია უსაფრთხოების აპლიკაციებით.
SBSFU აპლიკაციები
- SBSFU უზრუნველყოფს Root of Trust გადაწყვეტას, მათ შორის Secure Boot და Secure Firmware Update ფუნქციები (MCUboot-ზე დაფუძნებული).
- გამოსავალი გამოიყენება აპლიკაციის შესრულებამდე.
- გამოსავალი იძლევა ყოფილიampუსაფრთხო სერვისის (GPIO გადართვა), რომელიც იზოლირებულია არაუსაფრთხო აპლიკაციისგან. გაშვების დროს არაუსაფრთხო აპლიკაციას კვლავ შეუძლია გამოიყენოს ეს გადაწყვეტა.
TFM აპლიკაციები
TFM უზრუნველყოფს Root of Trust გადაწყვეტას, მათ შორის Secure Boot და Secure Firmware Update ფუნქციები
(MCUboot-ზე დაყრდნობით). გამოსავალი გამოიყენება აპლიკაციის შესრულებამდე. გამოსავალი უზრუნველყოფს TFM უსაფრთხო სერვისებს, რომლებიც იზოლირებულია არაუსაფრთხო აპლიკაციისგან. გაშვების დროს არაუსაფრთხო აპლიკაციას კვლავ შეუძლია გამოიყენოს ეს გადაწყვეტა.
RF პროგრამები
RF აპლიკაცია აღწერილია ამ განაცხადის შენიშვნაში: უკაბელო აპლიკაციების შექმნა STM32WBA სერიის მიკროკონტროლერებით (AN5928).
მიმდინარეობს STM32CubeWBA გამოშვების განახლებების მიღება
STM32CubeWBA MCU პაკეტის უახლესი გამოშვებები და პატჩები ხელმისაწვდომია STM32WBA სერიიდან. მათი მოძიება შესაძლებელია STM32CubeMX-ის ღილაკიდან CHECK FOR UPDATE. დამატებითი ინფორმაციისთვის იხილეთ განყოფილება 3 მომხმარებლის სახელმძღვანელოს STM32CubeMX STM32 კონფიგურაციისა და ინიციალიზაციის C კოდის გენერირებისთვის (UM1718).
FAQ
- როდის უნდა გამოვიყენო HAL LL დრაივერების ნაცვლად?
- HAL დრაივერები გვთავაზობენ მაღალი დონის და ფუნქციებზე ორიენტირებულ API-ებს, პორტაბელურობის მაღალი დონით. პროდუქტის ან პერიფერიული სირთულე დამალულია საბოლოო მომხმარებლებისთვის.
- LL დრაივერები გვთავაზობენ დაბალი ფენის რეგისტრის დონის API-ებს, უკეთესი ოპტიმიზაციით, მაგრამ ნაკლებად პორტატული. ისინი საჭიროებენ პროდუქტის ან IP სპეციფიკაციების სიღრმისეულ ცოდნას.
- შემიძლია თუ არა ერთად გამოვიყენო HAL და LL დრაივერები? თუ შემიძლია, რა არის შეზღუდვები?
- შესაძლებელია როგორც HAL, ასევე LL დრაივერების გამოყენება. გამოიყენეთ HAL IP ინიციალიზაციის ფაზისთვის და შემდეგ მართეთ I/O ოპერაციები LL დრაივერებით.
- HAL-სა და LL-ს შორის მთავარი განსხვავება ისაა, რომ HAL დრაივერებს სჭირდებათ სახელურების შექმნა და გამოყენება ოპერაციის მართვისთვის, ხოლო LL დრაივერები მუშაობენ უშუალოდ პერიფერიულ რეგისტრებზე. ყოფილიamples_MIX exampგვიჩვენებს, თუ როგორ უნდა ავურიოთ HAL და LL.
- როგორ არის ჩართული LL ინიციალიზაციის API-ები?
- LL ინიციალიზაციის API-ების და მასთან დაკავშირებული რესურსების (სტრუქტურები, ლიტერალები და პროტოტიპები) განმარტება განპირობებულია USE_FULL_LL_DRIVER კომპილაციის გადამრთველით.
- იმისათვის, რომ შეძლოთ LL ინიციალიზაციის API-ების გამოყენება, დაამატეთ ეს გადამრთველი Toolchain-ის შემდგენლის წინასწარ პროცესორში.
- როგორ შეიძლება STM32CubeMX კოდის გენერირება ჩაშენებული პროგრამული უზრუნველყოფის საფუძველზე?
STM32CubeMX-ს აქვს ჩაშენებული ცოდნა STM32 მიკროკონტროლერების, მათ შორის მათი პერიფერიული მოწყობილობებისა და პროგრამული უზრუნველყოფის შესახებ, რაც საშუალებას აძლევს მომხმარებელს მიაწოდოს გრაფიკული წარმოდგენა და შექმნას *.h ან *.c. files ეფუძნება მომხმარებლის კონფიგურაციას.
მნიშვნელოვანი შენიშვნა - წაიკითხეთ ყურადღებით
- STMicroelectronics NV და მისი შვილობილი კომპანიები ("ST") იტოვებენ უფლებას ნებისმიერ დროს განახორციელონ ცვლილებები, შესწორებები, გაუმჯობესებები, მოდიფიკაციები და გაუმჯობესებები ST პროდუქტებში და/ან ამ დოკუმენტში შეტყობინების გარეშე. მყიდველებმა უნდა მიიღონ უახლესი შესაბამისი ინფორმაცია ST პროდუქტების შესახებ შეკვეთების განთავსებამდე. ST-ის პროდუქტები იყიდება ST-ის გაყიდვის პირობებისა და პირობების შესაბამისად, რომლებიც შეკვეთის დადასტურების მომენტში არსებობს.
- მყიდველები არიან მხოლოდ პასუხისმგებელი ST პროდუქტების არჩევანზე, შერჩევასა და გამოყენებაზე და ST არ იღებს პასუხისმგებლობას განაცხადის დახმარებაზე ან მყიდველების პროდუქტების დიზაინზე.
- არავითარი ლიცენზია, გამოხატული თუ ნაგულისხმევი, რაიმე ინტელექტუალური საკუთრების უფლებაზე არ არის გაცემული ST-ის მიერ აქ.
- ST პროდუქტების ხელახალი გაყიდვა წინამდებარე ინფორმაციისგან განსხვავებული დებულებებით გააუქმებს ST-ის მიერ ასეთ პროდუქტზე გაცემულ ნებისმიერ გარანტიას.
- ST და ST ლოგო ST-ის სავაჭრო ნიშნებია. ST სავაჭრო ნიშნების შესახებ დამატებითი ინფორმაციისთვის იხილეთ www.st.com/trademarks. ყველა სხვა პროდუქტის ან სერვისის სახელი მათი შესაბამისი მფლობელების საკუთრებაა.
- ამ დოკუმენტის ინფორმაცია ანაცვლებს და ცვლის ადრე მოწოდებულ ინფორმაციას ამ დოკუმენტის ნებისმიერ წინა ვერსიაში.
- © 2023 STMicroelectronics – ყველა უფლება დაცულია
დოკუმენტები / რესურსები
![]() |
STMicroelectronics STM32WBA სერიის დაწყება [pdf] მომხმარებლის სახელმძღვანელო STM32WBA სერიების დაწყება, დაწყება, დაწყება |