STMicroelectronics-λογότυπο

Ξεκινώντας τη σειρά STMicroelectronics STM32WBA

STMicroelectronics-STM32WBA-Series-Getting-Started-fig-1

Πληροφορίες προϊόντος

Προδιαγραφές:

  • Όνομα προϊόντος: Πακέτο STM32CubeWBA MCU
  • Κατασκευαστής: STMicroelectronics
  • Αρμονία: Μικροελεγκτές σειράς STM32WBA
  • Αδειοδότηση: Άδεια BSD ανοιχτού κώδικα

Οδηγίες χρήσης προϊόντος

Κύρια χαρακτηριστικά του πακέτου STM32CubeWBA MCU:
Το πακέτο STM32CubeWBA MCU παρέχει όλα τα απαραίτητα ενσωματωμένα στοιχεία λογισμικού για την ανάπτυξη εφαρμογών σε μικροελεγκτές της σειράς STM32WBA. Είναι εξαιρετικά φορητό στη σειρά STM32 και συνοδεύεται από HAL και LL API, π.χamples και εξαρτήματα ενδιάμεσου λογισμικού.

Αρχιτεκτονική Πάνωview:
Η αρχιτεκτονική του πακέτου STM32CubeWBA MCU αποτελείται από τρία επίπεδα – Εφαρμογές, Βιβλιοθήκη και στοιχεία που βασίζονται σε πρωτόκολλο, στρώμα αφαίρεσης υλικού, προγράμματα οδήγησης BSP, προγράμματα οδήγησης πυρήνα και API χαμηλού επιπέδου.

FAQ

  • Τι περιλαμβάνεται στο πακέτο STM32CubeWBA MCU;
    Το πακέτο περιλαμβάνει API χαμηλού επιπέδου (LL) και στρώματος αφαίρεσης υλικού (HAL), π.χamples, εφαρμογές, στοιχεία ενδιάμεσου λογισμικού όπως FileX/LevelX, NetX Duo, mbed-crypto βιβλιοθήκες και πολλά άλλα.
  • Είναι το πακέτο 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
      • API χαμηλού επιπέδου STM32Cube, που εξασφαλίζουν την καλύτερη απόδοση και αποτυπώματα με υψηλό βαθμό ελέγχου από τον χρήστη στο υλικό
      • Ένα συνεπές σύνολο στοιχείων ενδιάμεσου λογισμικού όπως το ThreadX, FileX / LevelX, NetX Duo, USBX, βιβλιοθήκη αφής, mbed-crypto, TFM, MCUboot, OpenBL και STM32_WPAN (συμπεριλαμβανομένου Bluetooth® Low Energy profiles και υπηρεσίες, Mesh, Zigbee®, OpenThread, Matter και επίπεδο MAC 802.15.4)
      • Όλα τα ενσωματωμένα βοηθητικά προγράμματα λογισμικού με πλήρη σετ περιφερειακών και εφαρμογών π.χamples
    • Πακέτα επέκτασης STM32Cube, τα οποία περιέχουν ενσωματωμένα στοιχεία λογισμικού που συμπληρώνουν τις λειτουργίες των πακέτων STM32Cube MCU και MPU με:
      • Επεκτάσεις μεσαίου λογισμικού και εφαρμοστικά επίπεδα
      • Exampλειτουργούν σε ορισμένες ειδικές πλακέτες ανάπτυξης STMicroelectronics
  • Αυτό το εγχειρίδιο χρήστη περιγράφει πώς να ξεκινήσετε με το πακέτο STM32CubeWBA MCU.
    • Η Ενότητα 2 Κύρια χαρακτηριστικά STM32CubeWBA περιγράφει τα κύρια χαρακτηριστικά του πακέτου STM32CubeWBA MCU.
    • Ενότητα 3 Η αρχιτεκτονική STM32CubeWBA έχει τελειώσειview παρέχει ένα overview της αρχιτεκτονικής STM32CubeWBA και της δομής του πακέτου MCU.

Γενικές πληροφορίες

Το πακέτο STM32CubeWBA MCU τρέχει σε μικροελεγκτές STM32 32-bit που βασίζονται στον επεξεργαστή Arm® Cortex®-M33 με Arm® TrustZone® και FPU.
Σημείωμα: Τα Arm και TrustZone είναι σήματα κατατεθέντα της Arm Limited (ή των θυγατρικών της) στις ΗΠΑ ή/και αλλού.

Κύρια χαρακτηριστικά STM32CubeWBA

  • Το πακέτο STM32CubeWBA MCU τρέχει σε μικροελεγκτές STM32 32-bit που βασίζονται στον επεξεργαστή Arm® Cortex®-M33 με TrustZone® και FPU.
  • Το STM32CubeWBA συγκεντρώνει, σε ένα μόνο πακέτο, όλα τα γενικά στοιχεία ενσωματωμένου λογισμικού που απαιτούνται για την ανάπτυξη μιας εφαρμογής για τους μικροελεγκτές της σειράς STM32WBA. Σύμφωνα με την πρωτοβουλία STM32Cube, αυτό το σύνολο εξαρτημάτων είναι εξαιρετικά φορητό, όχι μόνο στους μικροελεγκτές της σειράς STM32WBA αλλά και σε άλλες σειρές STM32.
  • Το STM32CubeWBA είναι πλήρως συμβατό με τη γεννήτρια κώδικα STM32CubeMX, για τη δημιουργία κώδικα προετοιμασίας. Το πακέτο περιλαμβάνει χαμηλού επιπέδου (LL) και στρώματα αφαίρεσης υλικού (HAL) API που καλύπτουν το υλικό του μικροελεγκτή, μαζί με ένα εκτεταμένο σύνολο π.χ.ampλειτουργούν σε πλακέτες STMicroelectronics. Τα API HAL και LL είναι διαθέσιμα σε άδεια BSD ανοιχτού κώδικα για διευκόλυνση του χρήστη.
  • Το πακέτο STM32CubeWBA MCU περιέχει επίσης ένα ολοκληρωμένο στοιχείο ενδιάμεσου λογισμικού που έχει κατασκευαστεί γύρω από το ενδιάμεσο λογισμικό Microsoft® Azure® RTOS και άλλες στοίβες εσωτερικού και ανοιχτού κώδικα, με το αντίστοιχο π.amples.
  • Διατίθενται με δωρεάν, φιλικούς προς το χρήστη όρους άδειας χρήσης:
    • Ενσωματωμένο και πλήρως εξοπλισμένο Azure® RTOS: Azure® RTOS ThreadX
    • Υλοποίηση CMSIS-RTOS με το Azure® RTOS ThreadX
    • Στοίβες κεντρικών υπολογιστών και συσκευών USB με πολλές κατηγορίες: Azure® RTOS USBX
    • Προχωρημένος file επίπεδο μετάφρασης συστήματος και φλας: FileΧ / ΕπίπεδοΧ
    • Στοίβα δικτύων βιομηχανικής ποιότητας: βελτιστοποιημένη για απόδοση με πολλά πρωτόκολλα IoT: NetX Duo
    • OpenBootloader
    • Λύση ενσωμάτωσης Arm® Trusted Firmware-M (TF‑M).
    • mbed-crypto βιβλιοθήκες
    • Βιβλιοθήκη ST Netwok
    • Λύση βιβλιοθήκης ανίχνευσης αφής STMTtouch
  • Στο πακέτο STM32CubeWBA MCU παρέχονται επίσης αρκετές εφαρμογές και επιδείξεις που υλοποιούν όλα αυτά τα στοιχεία ενδιάμεσου λογισμικού.
  • Η διάταξη στοιχείων πακέτου STM32CubeWBA MCU απεικονίζεται στην Εικόνα 1. Στοιχεία πακέτου STM32CubeWBA MCU .

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-2

Η αρχιτεκτονική STM32CubeWBA έχει τελειώσειview

Η λύση πακέτου STM32CubeWBA MCU είναι χτισμένη γύρω από τρία ανεξάρτητα επίπεδα που αλληλεπιδρούν εύκολα όπως περιγράφεται στην Εικόνα 2. Αρχιτεκτονική πακέτου STM32CubeWBA MCU.

STMicroelectronics-STM32WBA-Series-Getting-Started-fig-3

Επίπεδο 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 πολλαπλών περιπτώσεων προσανατολισμένων σε χαρακτηριστικά, τα οποία απλοποιούν την υλοποίηση εφαρμογών χρήστη παρέχοντας διαδικασίες έτοιμες προς χρήση. Για π.χample, για τα περιφερειακά επικοινωνίας (I2S, UART και άλλα), παρέχει API που επιτρέπουν την προετοιμασία και διαμόρφωση του περιφερειακού, τη διαχείριση της μεταφοράς δεδομένων με βάση τη διαδικασία ψηφοφορίας, διακοπής ή DMA και χειρισμό σφαλμάτων επικοινωνίας που μπορεί να προκύψουν κατά την επικοινωνία. Τα API προγραμμάτων οδήγησης HAL χωρίζονται σε δύο κατηγορίες:
    1. Γενικά API, τα οποία παρέχουν κοινές και γενικές λειτουργίες σε όλους τους μικροελεγκτές της σειράς STM32.
    2. Επέκταση API, τα οποία παρέχουν συγκεκριμένες και προσαρμοσμένες λειτουργίες για μια συγκεκριμένη οικογένεια ή έναν συγκεκριμένο αριθμό εξαρτήματος.
  • Τα API χαμηλού επιπέδου παρέχουν API χαμηλού επιπέδου σε επίπεδο μητρώου, με καλύτερη βελτιστοποίηση αλλά λιγότερη φορητότητα.
    • Απαιτούν βαθιά γνώση των προδιαγραφών MCU και περιφερειακών.
    • Τα προγράμματα οδήγησης LL έχουν σχεδιαστεί για να προσφέρουν ένα γρήγορο, ελαφρύ επίπεδο προσανατολισμένο στους ειδικούς που είναι πιο κοντά στο υλικό από το HAL. Σε αντίθεση με το HAL, τα API LL δεν παρέχονται για περιφερειακά όπου η βελτιστοποιημένη πρόσβαση δεν είναι βασικό χαρακτηριστικό ή για εκείνα που απαιτούν βαριά διαμόρφωση λογισμικού ή σύνθετη στοίβα ανώτερου επιπέδου.
    • Τα προγράμματα οδήγησης LL διαθέτουν:
      • Ένα σύνολο συναρτήσεων για την προετοιμασία των περιφερειακών κύριων χαρακτηριστικών σύμφωνα με τις παραμέτρους που καθορίζονται στις δομές δεδομένων.
      • Ένα σύνολο συναρτήσεων για την πλήρωση δομών δεδομένων αρχικοποίησης με τις τιμές επαναφοράς που αντιστοιχούν σε κάθε πεδίο.
      • Λειτουργία για αποαρχικοποίηση περιφερειακών (περιφερικοί καταχωρητές επαναφέρονται στις προεπιλεγμένες τιμές τους).
      • Ένα σύνολο ενσωματωμένων λειτουργιών για άμεση και ατομική πρόσβαση καταχωρητή.
      • Πλήρης ανεξαρτησία από το HAL και δυνατότητα χρήσης σε αυτόνομη λειτουργία (χωρίς προγράμματα οδήγησης HAL).
      • Πλήρης κάλυψη των υποστηριζόμενων περιφερειακών χαρακτηριστικών.

Βασική χρήση περιφερειακών π.χamples
Αυτό το στρώμα περικλείει το examples που χτίστηκαν πάνω από τα περιφερειακά STM32 χρησιμοποιώντας μόνο τους πόρους HAL και BSP.

Επίπεδο 1

Αυτό το επίπεδο χωρίζεται σε δύο υποστρώματα:

  • Στοιχεία μεσαίου λογισμικού
  • Examples βασίζονται στα στοιχεία του ενδιάμεσου λογισμικού

Στοιχεία μεσαίου λογισμικού

  • Το ενδιάμεσο λογισμικό είναι ένα σύνολο βιβλιοθηκών που καλύπτουν Bluetooth® Low Energy (Linklayer, HCI, Stack), Thread®, Zigbee®,
  • Matter, OpenBootloader, Microsoft® Azure® RTOS, TF‑M, MCUboot και mbed-crypto.
  • Η οριζόντια αλληλεπίδραση μεταξύ των στοιχείων αυτού του επιπέδου πραγματοποιείται καλώντας τα επιλεγμένα API.
  • Η κάθετη αλληλεπίδραση με τα προγράμματα οδήγησης χαμηλού επιπέδου πραγματοποιείται μέσω συγκεκριμένων ανακλήσεων και στατικών μακροεντολών που υλοποιούνται στη διεπαφή κλήσεων του συστήματος βιβλιοθήκης.
  • Τα κύρια χαρακτηριστικά κάθε στοιχείου ενδιάμεσου λογισμικού είναι τα εξής:
    • Microsoft® Azure® RTOS
      • Azure® RTOS ThreadX: Ένα λειτουργικό σύστημα σε πραγματικό χρόνο (RTOS), σχεδιασμένο για ενσωματωμένα συστήματα με δύο λειτουργικές λειτουργίες.
        • Κοινή λειτουργία: Κοινές λειτουργίες RTOS, όπως διαχείριση νημάτων και συγχρονισμός, διαχείριση χώρου αποθήκευσης μνήμης, ανταλλαγή μηνυμάτων και χειρισμός συμβάντων.
        • Module mode: Μια προηγμένη λειτουργία χρήστη που επιτρέπει τη φόρτωση και την εκφόρτωση προσυνδεδεμένων λειτουργικών μονάδων ThreadX εν κινήσει μέσω ενός διαχειριστή λειτουργιών.
      • NetX Duo
      • FileX
      • USBX
    • Bluetooth® Low Energy (BLE): Υλοποιεί το πρωτόκολλο Bluetooth® Low Energy για τα επίπεδα Link και Stack.
    • MCUboot (λογισμικό ανοιχτού κώδικα)
    • Πρωτόκολλα Zigbee® για τη στοίβα και τα σχετικά συμπλέγματα.
    • Στοίβα πρωτοκόλλου Thread® και επίπεδο σύνδεσης.
    • Arm® αξιόπιστο firmware-M, TF-M (λογισμικό ανοιχτού κώδικα): Εφαρμογή αναφοράς της αρχιτεκτονικής ασφαλείας πλατφόρμας Arm® (PSA) για το TrustZone® με τις σχετικές ασφαλείς υπηρεσίες.
    • mbed-crypto (λογισμικό ανοιχτού κώδικα): Το ενδιάμεσο λογισμικό mbed-crypto παρέχει μια υλοποίηση API κρυπτογράφησης PSA.
    • Βιβλιοθήκη ανίχνευσης αφής STM32: Ισχυρή λύση χωρητικής ανίχνευσης αφής STMTouch, που υποστηρίζει αισθητήρες εγγύτητας, πλήκτρο αφής, γραμμικούς και περιστροφικούς αισθητήρες αφής. Βασίζεται σε μια αποδεδειγμένη αρχή απόκτησης μεταφοράς επιφανειακού φορτίου.

Examples βασίζονται στα στοιχεία του ενδιάμεσου λογισμικού
Κάθε στοιχείο ενδιάμεσου λογισμικού συνοδεύεται από ένα ή περισσότερα πρώηνamples (ονομάζονται επίσης εφαρμογές) που δείχνουν πώς να το χρησιμοποιήσετε. Ένταξη π.χampΠαρέχονται επίσης στοιχεία που χρησιμοποιούν διάφορα στοιχεία ενδιάμεσου λογισμικού.

Το πακέτο υλικολογισμικού STM32CubeWBA τελειώνει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 για να μεταφέρει την παρεχόμενη π.χamples στην πλακέτα, εάν η τελευταία έχει τα ίδια χαρακτηριστικά υλικού (όπως LED, οθόνη LCD και κουμπιά).
Το πακέτο υλικολογισμικού τελειώνειview
  • Η λύση πακέτου STM32CubeWBA παρέχεται σε ένα μόνο φερμουάρ που έχει τη δομή που φαίνεται στην Εικόνα 3. Δομή πακέτου υλικολογισμικού STM32CubeWBA.

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-4

  • Για κάθε πίνακα, ένα σετ π.χampΤο les παρέχεται με προρυθμισμένα έργα για αλυσίδες εργαλείων EWARM, MDK-ARM και STM32CubeIDE.
  • Εικόνα 4. STM32CubeWBA examples overview δείχνει τη δομή του έργου για τις πλακέτες NUCLEO‑WBA52CG, NUCLEO-WBA55CG και STM32WBA55G-DK1.

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-5

  • Ο πρώηνampΤα les ταξινομούνται ανάλογα με το επίπεδο STM32Cube στο οποίο ισχύουν και ονομάζονται ως εξής:
    • Επίπεδο 0 π.χamples λέγονται Examples, Examples_LL, και Examples_MIX. Χρησιμοποιούν αντίστοιχα προγράμματα οδήγησης HAL, προγράμματα οδήγησης LL και έναν συνδυασμό προγραμμάτων οδήγησης HAL και LL χωρίς κανένα στοιχείο ενδιάμεσου λογισμικού.
    • Επίπεδο 1 π.χamples ονομάζονται Εφαρμογές. Παρέχουν τυπικές περιπτώσεις χρήσης κάθε στοιχείου ενδιάμεσου λογισμικού. Οποιαδήποτε εφαρμογή υλικολογισμικού για μια δεδομένη πλακέτα μπορεί να κατασκευαστεί γρήγορα χάρη στα έργα προτύπων που είναι διαθέσιμα στους καταλόγους Templ ates και Templates_LL.

Έργα με δυνατότητα TrustZone®

  • Με δυνατότητα TrustZone® Π.χampΤα ονόματα les περιέχουν το πρόθεμα _TrustZone. Ο κανόνας εφαρμόζεται επίσης για εφαρμογές (εκτός από τα TFM και SBSFU, τα οποία είναι εγγενώς για το TrustZone®).
  • Με δυνατότητα TrustZone® ExampΟι εφαρμογές και οι εφαρμογές παρέχονται με μια δομή πολλών έργων που αποτελείται από ασφαλή και μη ασφαλή υποέργα όπως παρουσιάζονται στην Εικόνα 5. Ασφαλής και μη ασφαλής δομή έργου πολλαπλών έργων.
  • Τα έργα με δυνατότητα TrustZone® αναπτύσσονται σύμφωνα με το πρότυπο συσκευής CMSIS-5, που επεκτείνεται ώστε να περιλαμβάνει την κεφαλίδα διαμερισμάτων συστήματος file χώρισμα_ .h, ο οποίος είναι κυρίως υπεύθυνος για τη ρύθμιση της μονάδας ασφαλούς χαρακτηριστικού (SAU), της FPU και της εκχώρησης ασφαλών/μη ασφαλών διακοπών στην κατάσταση ασφαλούς εκτέλεσης.
  • Αυτή η ρύθμιση εκτελείται στη συνάρτηση ασφαλούς CMSIS SystemInit(), η οποία καλείται κατά την εκκίνηση πριν από την είσοδο στη συνάρτηση main() της ασφαλούς εφαρμογής. Ανατρέξτε στην τεκμηρίωση Arm® TrustZone®-M των οδηγιών λογισμικού.

    STMicroelectronics-STM32WBA-Series-Getting-Started-fig-6

  • Το πακέτο υλικολογισμικού πακέτου STM32CubeWBA παρέχει προεπιλεγμένη κατάτμηση μνήμης στο διαμέρισμα _ .h fileδιατίθεται στα εξής: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emplates
  • Σε αυτά τα κατάτμηση files, το SAU είναι απενεργοποιημένο από προεπιλογή. Κατά συνέπεια, η αντιστοίχιση μνήμης IDAU χρησιμοποιείται για την απόδοση ασφάλειας. Ανατρέξτε στην εικόνα Ασφαλής/μη ασφαλής κατάτμηση με χρήση τεχνολογίας TrustZone® στο εγχειρίδιο αναφοράς RM0495.
  • Εάν ο χρήστης ενεργοποιήσει το SAU, μια προεπιλεγμένη διαμόρφωση περιοχών SAU είναι προκαθορισμένη στο διαμέρισμα files ως ​​εξής:
    • Περιοχή SAU 0: 0x08080000 – 0x081FFFFF (μη ασφαλές ασφαλές μισό μνήμης flash (512 Kbyte))
    • Περιοχή SAU 1: 0x0BF88000 – 0x0BF97FFF (μη ασφαλής μνήμη συστήματος)
    • Περιοχή SAU 2: 0x0C07E000 – 0x0C07FFFF (ασφαλής, μη ασφαλής δυνατότητα κλήσης)
    • Περιοχή SAU 3: 0x20010000 – 0x2001FFFF (μη ασφαλής SRAM2 (64 Kbyte))
    • Περιοχή SAU 4: 0x40000000 – 0x4FFFFFFF (μη ασφαλής περιφερειακή αντιστοιχισμένη μνήμη)
  • Για να ταιριάξουν με την προεπιλεγμένη κατάτμηση, οι συσκευές της σειράς STM32WBAxx πρέπει να έχουν οριστεί τα ακόλουθα byte επιλογών χρήστη:
    • TZEN = 1 (συσκευή με δυνατότητα TrustZone®)
    • SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 από τις 128 σελίδες εσωτερικής μνήμης flash έχουν οριστεί ως ασφαλείς) Σημείωση: Η εσωτερική μνήμη flash είναι πλήρως ασφαλής από προεπιλογή στο TZEN = 1. Τα byte επιλογής χρήστη SECWM1_PSTRT/ SECWM1_PEND πρέπει να ρυθμιστούν σύμφωνα με την εφαρμογή διαμόρφωση μνήμης (περιοχές SAU, εάν είναι ενεργοποιημένο το SAU). Σύνδεση έργου ασφαλών/μη ασφαλών εφαρμογών fileΤα s πρέπει επίσης να είναι ευθυγραμμισμένα.
  • όλα exampέχουν την ίδια δομή:
    • \Inc φάκελος που περιέχει όλες τις κεφαλίδες files.
    • Φάκελος Src που περιέχει τον πηγαίο κώδικα.
    • Οι φάκελοι \EWARM, \MDK-ARM και \STM32CubeIDE που περιέχουν το προδιαμορφωμένο έργο για κάθε αλυσίδα εργαλείων.
    • readme.md και readme.html που περιγράφουν το π.χampτη συμπεριφορά και το απαραίτητο περιβάλλον για να λειτουργήσει.
    • ioc file που επιτρέπει στους χρήστες να ανοίξουν το μεγαλύτερο μέρος του υλικολογισμικού π.χamples εντός STM32CubeMX.

Ξεκινώντας με το STM32CubeWBA

Εκτέλεση ενός πρώτου HAL πρώηνample

Αυτή η ενότητα εξηγεί πόσο απλό είναι να εκτελέσετε το πρώτο exampστο STM32CubeWBA. Χρησιμοποιεί ενδεικτικά τη δημιουργία μιας απλής εναλλαγής LED που τρέχει στην πλακέτα NUCLEO-WBA52CG:

  1. Κατεβάστε το πακέτο STM32CubeWBA MCU.
  2. Αποσυμπιέστε το σε έναν κατάλογο της επιλογής σας.
  3. Βεβαιωθείτε ότι δεν έχετε τροποποιήσει τη δομή του πακέτου που φαίνεται στην Εικόνα 1. Συνιστάται επίσης να αντιγράψετε το πακέτο σε μια τοποθεσία κοντά στον τόμο ρίζας σας (που σημαίνει C:\ST ή G:\Tests), καθώς ορισμένα IDE αντιμετωπίζουν προβλήματα όταν η διαδρομή το μήκος είναι πολύ μεγάλο.

Εκτέλεση ενός πρώτου με δυνατότητα TrustZone® π.χample

  • Πριν από τη φόρτωση και την εκτέλεση ενός TrustZone® με δυνατότητα π.χample, είναι υποχρεωτική η ανάγνωση του πρample readme file για οποιαδήποτε συγκεκριμένη διαμόρφωση, η οποία διασφαλίζει ότι η ασφάλεια είναι ενεργοποιημένη όπως περιγράφεται στην Ενότητα 4.2.1 Έργα με δυνατότητα TrustZone® (TZEN=1 (byte επιλογής χρήστη)).
    1. Περιηγηθείτε στο \Projects\NUCLEO-WBA52CG\Examples.
    2. Ανοίξτε το \GPIO και μετά τους φακέλους \GPIO_IOToggle_TrustZone.
    3. Ανοίξτε το έργο με την αλυσίδα εργαλείων που προτιμάτε. Ένα γρήγορο πέρασμαview για το πώς να ανοίξετε, να δημιουργήσετε και να εκτελέσετε έναν πρώηνampΤο le με τις υποστηριζόμενες αλυσίδες εργαλείων δίνεται παρακάτω.
    4. Ανακατασκευάστε με τη σειρά όλα τα ασφαλή και μη ασφαλή έργα files και φορτώστε τις ασφαλείς και μη ασφαλείς εικόνες στη μνήμη προορισμού.
    5. Τρέξτε το πρώηνample: τακτικά, η ασφαλής εφαρμογή εναλλάσσει το LD2 κάθε δευτερόλεπτο και η μη ασφαλής εφαρμογή εναλλάσσει το LD3 δύο φορές πιο γρήγορα. Για περισσότερες λεπτομέρειες, ανατρέξτε στο readme file του πρώηνample.
  • Για να ανοίξετε, να δημιουργήσετε και να εκτελέσετε ένα πρώηνampμε τις υποστηριζόμενες αλυσίδες εργαλείων, ακολουθήστε τα παρακάτω βήματα:
    • EWARM:
      1. Κάτω από τον πρample φάκελο, ανοίξτε τον υποφάκελο \EWARM.
      2. Εκκινήστε τον χώρο εργασίας Project.eww
      3. Δημιουργήστε ξανά το ασφαλές έργο xxxxx_S files: [Project]>[Rebuild all].
      4. Ορίστε το μη ασφαλές έργο xxxxx_NS ως Ενεργή εφαρμογή (δεξί κλικ στο έργο xxxxx_NS [Ορισμός ως ενεργό])
      5. Δημιουργήστε ξανά το μη ασφαλές έργο xxxxx_NS files: [Project]>[Rebuild all].
      6. Φλακάρετε το μη ασφαλές δυαδικό αρχείο με [Project]>[Λήψη]>[Λήψη ενεργής εφαρμογής] .
      7. Ορίστε την εφαρμογή xxxxx_S ως Ενεργή (δεξί κλικ στο έργο xxxxx_S [Ορισμός ως Ενεργή].
      8. Κάντε Flash το ασφαλές δυαδικό αρχείο με το [Download and Debug] (Ctrl+D).
      9. Εκτελέστε το πρόγραμμα: [Debug]>[Go(F5)]
    • MDK-ARM:
      1. Ανοίξτε την αλυσίδα εργαλείων \MDK-ARM.
      2. Ανοίξτε τον χώρο εργασίας Multiprojects file Project.uvmpw.
      3. Επιλέξτε το έργο xxxxx_s ως Ενεργή εφαρμογή ([Ορισμός ως ενεργό έργο]).
      4. Δημιουργήστε το έργο xxxxx_s.
      5. Επιλέξτε το έργο xxxxx_ns ως Ενεργό έργο ([Ορισμός ως ενεργό έργο]).
      6. Δημιουργήστε το έργο xxxxx_ns.
      7. Φορτώστε το μη ασφαλές δυαδικό ([F8]). Αυτό κάνει λήψη του \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf σε μνήμη flash)
      8. Επιλέξτε το έργο Project_s ως Active project ([Set as Active Project]).
      9. Φορτώστε το ασφαλές δυαδικό αρχείο ([F8]). Αυτό κάνει λήψη του \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf σε μνήμη flash).
      10. Τρέξτε το πρώηνample.
    • STM32CubeIDE:
      1. Ανοίξτε την αλυσίδα εργαλείων STM32CubeIDE.
      2. Ανοίξτε τον χώρο εργασίας Multiprojects file .έργο.
      3. Δημιουργήστε ξανά το έργο xxxxx_Secure.
      4. Δημιουργήστε ξανά το έργο xxxxx_NonSecure.
      5. Εκκινήστε την εφαρμογή [Εντοπισμός σφαλμάτων ως STM32 Cortex-M C/C++] για το ασφαλές έργο.
      6. Στο παράθυρο [Επεξεργασία διαμόρφωσης], επιλέξτε τον πίνακα [Startup] και προσθέστε φόρτωση της εικόνας και των συμβόλων του μη ασφαλούς έργου.
        Σπουδαίος: Το μη ασφαλές έργο πρέπει να φορτωθεί πριν από το ασφαλές έργο.
      7. Κάντε κλικ στο [Ok].
      8. Τρέξτε το πρώηνample για την προοπτική εντοπισμού σφαλμάτων.

Εκτέλεση ενός πρώτου απενεργοποιημένου TrustZone® π.χample

  • Πριν φορτώσετε και εκτελέσετε ένα TrustZone® απενεργοποιημένο π.χample, είναι υποχρεωτική η ανάγνωση του πρample readme file για οποιαδήποτε συγκεκριμένη διαμόρφωση. Εάν δεν υπάρχουν συγκεκριμένες αναφορές, βεβαιωθείτε ότι η συσκευή πλακέτας έχει απενεργοποιημένη ασφάλεια (TZEN=0 (byte επιλογής χρήστη)). Ανατρέξτε στις Συνήθεις Ερωτήσεις για να κάνετε την προαιρετική παλινδρόμηση σε TZEN = 0
    1. Περιηγηθείτε στο \Projects\NUCLEO-WBA52CG\Examples.
    2. Ανοίξτε το \GPIO και μετά τους φακέλους \GPIO_EXTI.
    3. Ανοίξτε το έργο με την αλυσίδα εργαλείων που προτιμάτε. Ένα γρήγορο πέρασμαview για το πώς να ανοίξετε, να δημιουργήσετε και να εκτελέσετε έναν πρώηνampΤο le με τις υποστηριζόμενες αλυσίδες εργαλείων δίνεται παρακάτω.
    4. Ανοικοδομήστε όλα files και φορτώστε την εικόνα σας στη μνήμη προορισμού.
    5. Τρέξτε το πρώηνample: Κάθε φορά που πατάτε το κουμπί [ΧΡΗΣΤΗΣ], το LED LD1 εναλλάσσεται. Για περισσότερες λεπτομέρειες, ανατρέξτε στο readme file του πρώηνample.
  • Για να ανοίξετε, να δημιουργήσετε και να εκτελέσετε ένα πρώηνampμε τις υποστηριζόμενες αλυσίδες εργαλείων, ακολουθήστε τα παρακάτω βήματα:
    • EWARM:
      1. Κάτω από τον πρample φάκελο, ανοίξτε τον υποφάκελο \EWARM.
      2. Εκκινήστε τον χώρο εργασίας Project.eww (το όνομα του χώρου εργασίας μπορεί να αλλάξει από ένα πρώηνample σε άλλο).
      3. Ανοικοδομήστε όλα files: [Project]>[Rebuild all].
      4. Φόρτωση της εικόνας του έργου: [Έργο]> [Εντοπισμός σφαλμάτων].
      5. Εκτέλεση προγράμματος: [Εντοπισμός σφαλμάτων]> [Μετάβαση (F5)].
    • MDK-ARM:
      1. Κάτω από τον πρample, ανοίξτε τον υποφάκελο \MDK-ARM.
      2. Εκκινήστε τον χώρο εργασίας Project.uvproj (το όνομα του χώρου εργασίας μπορεί να αλλάξει από ένα π.χample σε άλλο).
      3. Ανοικοδομήστε όλα files:[Project]>[Rebuild all target fileμικρό].
      4. Φόρτωση της εικόνας του έργου: [Εντοπισμός σφαλμάτων]> [Έναρξη/Διακοπή συνεδρίας εντοπισμού σφαλμάτων].
      5. Εκτέλεση προγράμματος: [Εντοπισμός σφαλμάτων]> [Εκτέλεση (F5)].
    • STM32CubeIDE:
      1. Ανοίξτε την αλυσίδα εργαλείων STM32CubeIDE.
      2. Κάντε κλικ [File]>[Εναλλαγή χώρου εργασίας]>[Άλλο] και περιηγηθείτε στον κατάλογο χώρου εργασίας STM32CubeIDE.
      3. Κάντε κλικ [File]>[Εισαγωγή] , επιλέξτε [Γενικά]> [Υπάρχοντα έργα στον χώρο εργασίας] και, στη συνέχεια, κάντε κλικ στο [Επόμενο].
      4. Περιηγηθείτε στον κατάλογο χώρου εργασίας STM32CubeIDE και επιλέξτε το έργο.
      5. Ανακατασκευάστε όλο το έργο files: Επιλέξτε το έργο στο παράθυρο [Project Explorer] και μετά κάντε κλικ στο μενού [Project]>[Build project].
      6. Εκτελέστε το πρόγραμμα: [Εκτέλεση]> [Εντοπισμός σφαλμάτων (F11)]
Ανάπτυξη προσαρμοσμένης εφαρμογής

Σημείωμα: Το λογισμικό πρέπει να επιτρέπει στην προσωρινή μνήμη εντολών (ICACHE) να λαμβάνει εκτέλεση κατάστασης αναμονής 0 από τη μνήμη flash και να επιτυγχάνει τη μέγιστη απόδοση και καλύτερη κατανάλωση ενέργειας.

Χρήση STM32CubeMX για την ανάπτυξη ή την ενημέρωση μιας εφαρμογής

  • Στο πακέτο STM32CubeWBA MCU, σχεδόν όλα τα έργα π.χampΤα les δημιουργούνται με το εργαλείο STM32CubeMX για την προετοιμασία του συστήματος, των περιφερειακών και του ενδιάμεσου λογισμικού.
  • Η άμεση χρήση υπάρχοντος έργου π.χampΤο le από το εργαλείο STM32CubeMX απαιτεί STM32CubeMX 6.10.0 ή νεότερη έκδοση:
    • Μετά την εγκατάσταση του STM32CubeMX, ανοίξτε και αν χρειάζεται ενημερώστε ένα προτεινόμενο έργο. Ο απλούστερος τρόπος για να ανοίξετε ένα υπάρχον έργο είναι να κάνετε διπλό κλικ στο *.ioc file έτσι ώστε το STM32CubeMX να ανοίγει αυτόματα το έργο και την πηγή του files.
    • Το STM32CubeMX δημιουργεί τον πηγαίο κώδικα προετοιμασίας τέτοιων έργων. Ο κύριος πηγαίος κώδικας της εφαρμογής περιέχεται από τα σχόλια "ΧΡΗΣΤΗ ΚΩΔΙΚΟΣ ΑΡΧΗ" και "ΧΡΗΣΤΗ ΚΩΔΙΚΟΣ ΤΕΛΟΣ". Σε περίπτωση που τροποποιηθεί η επιλογή και η ρύθμιση IP, το STM32CubeMX ενημερώνει το τμήμα προετοιμασίας του κώδικα, αλλά διατηρεί τον κύριο πηγαίο κώδικα της εφαρμογής.
  • Για την ανάπτυξη ενός προσαρμοσμένου έργου στο STM32CubeMX, ακολουθήστε τη διαδικασία βήμα προς βήμα:
    1. Επιλέξτε τον μικροελεγκτή STM32 που ταιριάζει με το απαιτούμενο σύνολο περιφερειακών.
    2. Διαμορφώστε όλο το απαιτούμενο ενσωματωμένο λογισμικό χρησιμοποιώντας έναν επιλύτη διένεξης pinout, έναν βοηθό ρύθμισης clock-tree, έναν υπολογιστή κατανάλωσης ενέργειας και το βοηθητικό πρόγραμμα που εκτελεί περιφερειακές ρυθμίσεις παραμέτρων MCU (όπως GPIO ή USART) και στοίβες μεσαίου λογισμικού (όπως USB).
    3. Δημιουργήστε τον κωδικό αρχικοποίησης C με βάση την επιλεγμένη διαμόρφωση. Αυτός ο κώδικας είναι έτοιμος για χρήση σε διάφορα περιβάλλοντα ανάπτυξης. Ο κωδικός χρήστη διατηρείται στην επόμενη γενιά κώδικα.
  • Για περισσότερες πληροφορίες σχετικά με το STM32CubeMX, ανατρέξτε στο εγχειρίδιο χρήστη STM32CubeMX για τη διαμόρφωση και την προετοιμασία του STM32 δημιουργία κωδικού C (UM1718).
  • Για μια λίστα με τα διαθέσιμα έργα π.χamples για STM32CubeWBA, ανατρέξτε στη σημείωση εφαρμογής υλικολογισμικό STM32Cube examples για τη σειρά STM32WBA (AN5929).

Εφαρμογές προγραμμάτων οδήγησης

Εφαρμογή HAL
Αυτή η ενότητα περιγράφει τα βήματα που απαιτούνται για τη δημιουργία μιας προσαρμοσμένης εφαρμογής HAL χρησιμοποιώντας το STM32CubeWBA:

  1. Δημιουργήστε ένα έργο
    • Για να δημιουργήσετε ένα νέο έργο, ξεκινήστε είτε από το έργο Template που παρέχεται για κάθε πίνακα στο \Projects\ \Πρότυπα ή από οποιοδήποτε διαθέσιμο έργο στο \Projects\ \Εξετάσεις ή \Έργα\ \Εφαρμογές (όπου αναφέρεται στο όνομα της πλακέτας, όπως STM32CubeWBA).
    • Το έργο Πρότυπο παρέχει μια κενή συνάρτηση κύριου βρόχου. Ωστόσο, είναι ένα καλό σημείο εκκίνησης για να κατανοήσετε τις ρυθμίσεις του έργου STM32CubeWBA. Το πρότυπο έχει τα ακόλουθα χαρακτηριστικά:
      • Περιέχει τον πηγαίο κώδικα HAL, τα προγράμματα οδήγησης CMSIS και BSP, τα οποία είναι το ελάχιστο σύνολο στοιχείων που απαιτούνται για την ανάπτυξη ενός κώδικα σε μια δεδομένη πλακέτα.
      • Περιέχει τις συμπεριλαμβανόμενες διαδρομές για όλα τα στοιχεία υλικολογισμικού.
      • Καθορίζει τις υποστηριζόμενες συσκευές της σειράς STM32WBA, επιτρέποντας τη σωστή διαμόρφωση των προγραμμάτων οδήγησης CMSIS και HAL.
      • Παρέχει έτοιμο προς χρήση χρήστη files έχει προρυθμιστεί όπως φαίνεται παρακάτω:
        Το HAL αρχικοποιήθηκε με την προεπιλεγμένη βάση χρόνου με το Arm® core SysTick. Το SysTick ISR υλοποιήθηκε για το σκοπό HAL_Delay().
        Σημείωμα: Κατά την αντιγραφή ενός υπάρχοντος έργου σε άλλη τοποθεσία, βεβαιωθείτε ότι όλες οι διαδρομές που περιλαμβάνονται είναι ενημερωμένες.
  2. Προσθέστε το απαραίτητο ενδιάμεσο λογισμικό στο έργο χρήστη (προαιρετικό)
    Για να προσδιορίσετε την πηγή files που θα προστεθούν στο έργο file λίστα, ανατρέξτε στην τεκμηρίωση που παρέχεται για κάθε ενδιάμεσο λογισμικό. Ανατρέξτε στις εφαρμογές στην ενότητα \Projects\STM32xxx_yyyy\Applications\ (που αναφέρεται στη στοίβα του ενδιάμεσου λογισμικού, όπως το ThreadX) για να μάθετε ποια πηγή files και περιλαμβάνουν διαδρομές πρέπει να προστεθούν.
  3. Διαμορφώστε τα στοιχεία υλικολογισμικού
    Τα στοιχεία HAL και ενδιάμεσο λογισμικό προσφέρουν ένα σύνολο επιλογών διαμόρφωσης χρόνου κατασκευής χρησιμοποιώντας μακροεντολές #define που δηλώνονται σε μια κεφαλίδα file. Μια διαμόρφωση προτύπου file παρέχεται σε κάθε στοιχείο, το οποίο πρέπει να αντιγραφεί στο φάκελο του έργου (συνήθως η διαμόρφωση file ονομάζεται xxx_conf_template.h, η λέξη _template πρέπει να αφαιρεθεί κατά την αντιγραφή της στο φάκελο του έργου). Η διαμόρφωση file παρέχει αρκετές πληροφορίες για να κατανοήσετε τον αντίκτυπο κάθε επιλογής διαμόρφωσης. Περισσότερες λεπτομερείς πληροφορίες είναι διαθέσιμες στην τεκμηρίωση που παρέχεται για κάθε στοιχείο.
  4. Ξεκινήστε τη βιβλιοθήκη HAL
    Μετά τη μετάβαση στο κύριο πρόγραμμα, ο κώδικας της εφαρμογής πρέπει να καλέσει το HAL_Init() API για να προετοιμάσει τη βιβλιοθήκη HAL, η οποία εκτελεί τις ακόλουθες εργασίες:
    • Διαμόρφωση της προαναφοράς μνήμης flash και της προτεραιότητας διακοπής SysTick (μέσω μακροεντολών που ορίζονται στο st m32wbaxx_hal_conf.h).
    • Διαμόρφωση του SysTick για δημιουργία διακοπής κάθε χιλιοστό του δευτερολέπτου στην προτεραιότητα διακοπής SysTick TICK_INT_PRIO που ορίζεται στο stm32wbaxx_hal_conf.h.
    • Ρύθμιση της προτεραιότητας ομάδας NVIC στο 0.
    • Η κλήση της συνάρτησης επανάκλησης HAL_MspInit() ορίζεται στον χρήστη stm32wbaxx_hal_msp.c file για την εκτέλεση καθολικών αρχικοποιήσεων υλικού χαμηλού επιπέδου.
  5. Διαμορφώστε το ρολόι του συστήματος
    Η διαμόρφωση του ρολογιού του συστήματος γίνεται καλώντας τα δύο API που περιγράφονται παρακάτω:
    • HAL_RCC_OscConfig(): αυτό το API διαμορφώνει τους εσωτερικούς και εξωτερικούς ταλαντωτές. Ο χρήστης επιλέγει να διαμορφώσει έναν ή όλους τους ταλαντωτές.
    • HAL_RCC_ClockConfig(): αυτό το API διαμορφώνει την πηγή ρολογιού του συστήματος, τον λανθάνοντα χρόνο της μνήμης flash και τους προκαθορισμένους υπολογιστές AHB και APB.
  6. Αρχικοποιήστε το περιφερειακό
    • Πρώτα γράψτε την περιφερειακή συνάρτηση HAL_PPP_MspInit. Προχωρήστε ως εξής:
      • Ενεργοποιήστε το περιφερειακό ρολόι.
      • Διαμορφώστε τα περιφερειακά GPIO.
      • Διαμορφώστε το κανάλι DMA και ενεργοποιήστε τη διακοπή DMA (αν χρειάζεται).
      • Ενεργοποίηση περιφερειακής διακοπής (αν χρειάζεται).
    • Επεξεργαστείτε το stm32xxx_it.c για να καλέσετε τους απαιτούμενους χειριστές διακοπής (περιφερειακό και DMA), εάν χρειάζεται.
    • Γράψτε τις πλήρεις λειτουργίες επανάκλησης διεργασίας, εάν σχεδιάζεται να χρησιμοποιηθεί περιφερειακή διακοπή ή DMA.
    • Στο user main.c file, αρχικοποιήστε τη δομή της περιφερειακής λαβής και στη συνέχεια καλέστε τη συνάρτηση HAL_PPP_Init() για να αρχικοποιήσετε το περιφερειακό.
  7. Αναπτύξτε μια εφαρμογή
    • Σε αυτό το stagε, το σύστημα είναι έτοιμο και μπορεί να ξεκινήσει η ανάπτυξη κώδικα εφαρμογής χρήστη.
    • Το HAL παρέχει διαισθητικά και έτοιμα προς χρήση API για τη διαμόρφωση των περιφερειακών. Υποστηρίζει ψηφοφορία, διακοπές και ένα μοντέλο προγραμματισμού DMA, για να καλύψει τυχόν απαιτήσεις εφαρμογής. Για περισσότερες λεπτομέρειες σχετικά με τον τρόπο χρήσης κάθε περιφερειακού, ανατρέξτε στον πλούσιο πρώηνampΤο σετ παρέχεται στο πακέτο STM32CubeWBA MCU.
      Προσοχή: Στην προεπιλεγμένη υλοποίηση HAL, το χρονόμετρο SysTick χρησιμοποιείται ως βάση χρόνου: δημιουργεί διακοπές σε τακτά χρονικά διαστήματα. Εάν καλείται HAL_Delay() από τη διαδικασία περιφερειακής ISR, βεβαιωθείτε ότι η διακοπή SysTick έχει υψηλότερη προτεραιότητα (αριθμητικά χαμηλότερη) από την περιφερειακή διακοπή. Διαφορετικά, η διαδικασία ISR καλούντος μπλοκάρεται. Οι συναρτήσεις που επηρεάζουν τις διαμορφώσεις της βάσης χρόνου δηλώνονται ως __ασθενές για να καταστεί δυνατή η παράκαμψη σε περίπτωση άλλων υλοποιήσεων στον χρήστη file (χρησιμοποιώντας ένα χρονόμετρο γενικής χρήσης, π.χample, ή άλλη πηγή χρόνου). Για περισσότερες λεπτομέρειες, ανατρέξτε στο HAL_TimeBase example.

εφαρμογή LL
Αυτή η ενότητα περιγράφει τα βήματα που απαιτούνται για τη δημιουργία μιας προσαρμοσμένης εφαρμογής LL χρησιμοποιώντας το STM32CubeWBA.

  1. Δημιουργήστε ένα έργο
    • Για να δημιουργήσετε ένα νέο έργο, ξεκινήστε είτε από το έργο Templates_LL που παρέχεται για κάθε πίνακα στο \Projects\ \Templates_LL ή από οποιοδήποτε διαθέσιμο έργο στο \Projects\ \Πρώηνamples_LL ( αναφέρεται στο όνομα της πλακέτας, όπως NUCLEO-WBA32CG).
    • Το έργο προτύπου παρέχει μια κενή λειτουργία κύριου βρόχου, η οποία είναι ένα καλό σημείο εκκίνησης για την κατανόηση των ρυθμίσεων έργου για το STM32CubeWBA. Τα κύρια χαρακτηριστικά του προτύπου είναι τα ακόλουθα:
      • Περιέχει τους πηγαίους κώδικες των προγραμμάτων οδήγησης LL και CMSIS, που είναι το ελάχιστο σύνολο στοιχείων που απαιτούνται για την ανάπτυξη κώδικα σε μια δεδομένη πλακέτα.
      • Περιέχει τις συμπεριλαμβανόμενες διαδρομές για όλα τα απαιτούμενα στοιχεία υλικολογισμικού.
      • Επιλέγει την υποστηριζόμενη συσκευή της σειράς STM32WBA και επιτρέπει τη σωστή διαμόρφωση των προγραμμάτων οδήγησης CMSIS και LL.
      • Παρέχει έτοιμο προς χρήση χρήστη files που έχουν προρυθμιστεί ως εξής:
        ◦ main.h: Επίπεδο αφαίρεσης ορισμού LED και USER_BUTTON.
        ◦ main.c: Διαμόρφωση ρολογιού συστήματος για μέγιστη συχνότητα.
  2. Μεταφορά ενός υπάρχοντος έργου σε άλλο πίνακα
    Για να υποστηρίξετε ένα υπάρχον έργο σε άλλο πίνακα στόχο, ξεκινήστε από το έργο Templates_LL που παρέχεται για κάθε πίνακα και είναι διαθέσιμο στο \Projects\ \Πρότυπα_LL.
    • Επιλέξτε ένα LL example: Για να βρείτε τον πίνακα στον οποίο LL examples έχουν αναπτυχθεί, ανατρέξτε στη λίστα των LL examples STM32CubeProjectsList.html.
  3. Port the LL example:
    • Αντιγράψτε/επικολλήστε τον φάκελο Templates_LL – για να διατηρήσετε την αρχική πηγή – ή ενημερώστε απευθείας το υπάρχον έργο Templates_LL.
    • Στη συνέχεια, η μεταφορά συνίσταται κυρίως στην αντικατάσταση του Templates_LL files από την Examples_LL στοχευμένο έργο.
    • Διατηρήστε όλα τα συγκεκριμένα μέρη της πλακέτας. Για λόγους σαφήνειας, συγκεκριμένα μέρη της πλακέτας επισημαίνονται με συγκεκριμένα tags:

      STMicroelectronics-STM32WBA-Series-Getting-Started-fig-7

    • Έτσι, τα κύρια βήματα μεταφοράς είναι τα ακόλουθα:
      • Αντικαταστήστε το stm32wbaxx_it.h file
      • Αντικαταστήστε το stm32wbaxx_it.c file
      • Αντικαταστήστε το main.h file και ενημερώστε το: Διατηρήστε το LED και τον ορισμό του κουμπιού χρήστη του προτύπου LL κάτω από ΕΙΔΙΚΕΣ ΔΙΑΜΟΡΦΩΣΕΙΣ ΠΙΝΑΚΑΣ tags.
      • Αντικαταστήστε το κύριο.γ file και ενημερώστε το:
    • Διατηρήστε τη διαμόρφωση του ρολογιού της συνάρτησης προτύπου SystemClock_Config() LL κάτω από ΣΥΓΚΕΚΡΙΜΕΝΗ ΔΙΑΜΟΡΦΩΣΗ ΠΙΝΑΚΑΣ tags.
    • Ανάλογα με τον ορισμό LED, αντικαταστήστε κάθε εμφάνιση LDx με άλλο LDy διαθέσιμο στο main.h file.
    • Με αυτές τις τροποποιήσεις, η πρample τρέχει τώρα στον στοχευμένο πίνακα

Εφαρμογές ασφαλείας
Αυτό το πακέτο παραδίδεται με εφαρμογές ασφαλείας.

Εφαρμογές SBSFU

  • Το SBSFU παρέχει μια λύση Root of Trust, συμπεριλαμβανομένων των λειτουργιών Secure Boot και Secure Firmware Update (με βάση το MCUboot).
  • Η λύση χρησιμοποιείται πριν από την εκτέλεση της εφαρμογής.
  • Η λύση παρέχει ένα π.χample μιας ασφαλούς υπηρεσίας (εναλλαγή GPIO), που είναι απομονωμένη από τη μη ασφαλή εφαρμογή. Η μη ασφαλής εφαρμογή κατά το χρόνο εκτέλεσης μπορεί ακόμα να χρησιμοποιήσει αυτήν τη λύση.

Εφαρμογές TFM
Το TFM παρέχει μια λύση Root of Trust, συμπεριλαμβανομένων των λειτουργιών Secure Boot και Secure Firmware Update
(με βάση το MCUboot). Η λύση χρησιμοποιείται πριν από την εκτέλεση της εφαρμογής. Η λύση παρέχει ασφαλείς υπηρεσίες TFM που είναι απομονωμένες από τη μη ασφαλή εφαρμογή. Η μη ασφαλής εφαρμογή κατά το χρόνο εκτέλεσης μπορεί ακόμα να χρησιμοποιήσει αυτήν τη λύση.

Εφαρμογές ραδιοσυχνοτήτων
Η εφαρμογή RF περιγράφεται σε αυτήν τη σημείωση εφαρμογής: Δημιουργία ασύρματων εφαρμογών με μικροελεγκτές της σειράς STM32WBA (AN5928).

Λήψη ενημερώσεων έκδοσης STM32CubeWBA
Οι πιο πρόσφατες εκδόσεις και ενημερωμένες εκδόσεις πακέτων STM32CubeWBA MCU είναι διαθέσιμες από τη σειρά STM32WBA. Μπορούν να ανακτηθούν από το κουμπί CHECK FOR UPDATE στο STM32CubeMX. Για περισσότερες λεπτομέρειες, ανατρέξτε στην Ενότητα 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 λειτουργούν απευθείας σε περιφερειακούς καταχωρητές. Το Examples_MIX exampΤο le επεξηγεί τον τρόπο ανάμειξης HAL και LL.
  • Πώς ενεργοποιούνται τα API προετοιμασίας LL;
    • Ο ορισμός των API εκκίνησης LL και των σχετικών πόρων (Δομές, κυριολεκτικά και πρωτότυπα) εξαρτάται από τον διακόπτη μεταγλώττισης USE_FULL_LL_DRIVER.
    • Για να μπορείτε να χρησιμοποιήσετε τα API προετοιμασίας LL, προσθέστε αυτόν τον διακόπτη στον προεπεξεργαστή μεταγλωττιστή αλυσίδας εργαλείων.
  • Πώς μπορεί το 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 Ξεκινώντας, Ξεκινώντας, Ξεκινώντας

Αναφορές

Αφήστε ένα σχόλιο

Η διεύθυνση email σας δεν θα δημοσιευτεί. Τα υποχρεωτικά πεδία επισημαίνονται *