לוגו STMicroelectronics

STMicroelectronics STM32WBA סדרת תחילת העבודה

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

מידע על המוצר

מפרטים:

  • שם המוצר: חבילת MCU STM32CubeWBA
  • יַצרָן: STMicroelectronics
  • תְאִימוּת: מיקרו-בקרים מסדרת STM32WBA
  • רישוי: רישיון BSD בקוד פתוח

הוראות שימוש במוצר

תכונות עיקריות של חבילת STM32CubeWBA MCU:
חבילת MCU STM32CubeWBA מספקת את כל רכיבי התוכנה המשובצים הדרושים לפיתוח יישומים במיקרו-בקרים מסדרת STM32WBA. זה נייד מאוד בסדרת STM32 ומגיע עם ממשקי API של HAL ו-LL, למשלamples, ורכיבי תווך.

אדריכלות נגמרהview:
הארכיטקטורה של חבילת STM32CubeWBA MCU מורכבת משלוש רמות - יישומים, רכיבים מבוססי ספרייה ופרוטוקול, שכבת הפשטת חומרה, מנהלי התקנים של BSP, מנהלי התקנים ליבה וממשקי API של שכבה נמוכה.

שאלות נפוצות

  • מה כלול בחבילת STM32CubeWBA MCU?
    החבילה כוללת ממשקי API של שכבה נמוכה (LL) ושכבת אבסטרקציה של חומרה (HAL), למשלamples, אפליקציות, רכיבי תווך כמו FileX/LevelX, NetX Duo, ספריות mbed-crypto ועוד.
  • האם חבילת MCU STM32CubeWBA תואמת למחולל קוד 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 מספק מעלview של ארכיטקטורת STM32CubeWBA ומבנה חבילת MCU.

מידע כללי

חבילת MCU STM32CubeWBA פועלת על מיקרו-בקרים STM32 32-bit המבוססים על מעבד Arm® Cortex®-M33 עם Arm® TrustZone® ו-FPU.
פֶּתֶק: Arm ו-TrustZone הם סימנים מסחריים רשומים של Arm Limited (או חברות הבת שלה) בארה"ב ו/או במקומות אחרים.

תכונות עיקריות של STM32CubeWBA

  • חבילת MCU STM32CubeWBA פועלת על מיקרו-בקרים STM32 32-bit המבוססים על מעבד Arm® Cortex®-M33 עם TrustZone® ו-FPU.
  • ה- STM32CubeWBA אוסף, בחבילה אחת, את כל רכיבי התוכנה המשובצים הגנריים הנדרשים לפיתוח אפליקציה עבור המיקרו-בקרים מסדרת STM32WBA. בהתאם ליוזמת STM32Cube, סט רכיבים זה הוא נייד מאוד, לא רק בתוך המיקרו-בקרים מסדרת STM32WBA אלא גם לסדרות STM32 אחרות.
  • STM32CubeWBA תואם באופן מלא עם מחולל הקוד STM32CubeMX, כדי ליצור קוד אתחול. החבילה כוללת ממשקי API של שכבה נמוכה (LL) ושכבת אבסטרקציה של חומרה (HAL) המכסים את חומרת המיקרו-בקר, יחד עם סט נרחב של לשעברamples פועל על לוחות STMicroelectronics. ממשקי API של HAL ו-LL זמינים ברישיון BSD בקוד פתוח לנוחות המשתמש.
  • חבילת MCU STM32CubeWBA מכילה גם רכיב תווך מקיף שנבנה סביב תוכנת התווך של Microsoft® Azure® RTOS, וערימות פנימיות אחרות וקוד פתוח, עם האקס המקבילamples.
  • הם מגיעים עם תנאי רישיון חינמיים וידידותיים למשתמש:
    • Azure® RTOS משולב ומלא תכונות: Azure® RTOS ThreadX
    • הטמעת CMSIS-RTOS עם Azure® RTOS ThreadX
    • ערימות מארח ומכשיר USB מגיעות עם מחלקות רבות: Azure® RTOS USBX
    • מִתקַדֵם file שכבת תרגום מערכת ופלאש: FileX / LevelX
    • מחסנית רשת בדרגה תעשייתית: מותאמת לביצועים עם פרוטוקולי IoT רבים: NetX Duo
    • OpenBootloader
    • פתרון אינטגרציה של Arm® Trusted Firmware-M (TF‑M).
    • mbed-crypto ספריות
    • ספריית ST Netwok
    • פתרון ספריית חישת מגע STMTouch
  • מספר יישומים והדגמות המיישמים את כל רכיבי התווך הללו מסופקים גם בחבילת 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, Audio,\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. Extension APIs, המספקים פונקציות ספציפיות ומותאמות אישית למשפחה ספציפית או למספר חלק מסוים.
  • ממשקי API בשכבה נמוכה מספקים ממשקי API ברמה נמוכה ברמת הרישום, עם אופטימיזציה טובה יותר אך פחות ניידות.
    • הם דורשים ידע מעמיק של MCU ומפרטים היקפיים.
    • הדרייברים של LL מתוכננים להציע שכבה קלה ומהירה מוכוונת מומחה הקרובה יותר לחומרה מאשר ה-HAL. בניגוד ל-HAL, ממשקי API של LL אינם מסופקים עבור ציוד היקפי שבהם גישה אופטימלית אינה תכונת מפתח, או עבור אלה הדורשים תצורת תוכנה כבדה או ערימה מורכבת ברמה העליונה.
    • תכונת הדרייברים של LL:
      • קבוצה של פונקציות לאתחול תכונות עיקריות היקפיות בהתאם לפרמטרים המצוינים במבני נתונים.
      • קבוצה של פונקציות למילוי מבני נתוני אתחול עם ערכי האיפוס המתאימים לכל שדה.
      • פונקציה עבור דה-אתחול היקפי (אוגרים היקפיים שוחזרו לערכי ברירת המחדל שלהם).
      • קבוצה של פונקציות מוטבעות לגישה ישירה לרישום אטומי.
      • עצמאות מלאה מ-HAL ויכולת לשימוש במצב עצמאי (ללא דרייברים של HAL).
      • כיסוי מלא של תכונות ההיקפי הנתמכות.

שימוש היקפי בסיסי למשלamples
שכבה זו מקיפה את האקסampקבצים שנבנו על ציוד היקפי 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 נפוצות כגון ניהול וסנכרון שרשורים, ניהול מאגר זיכרון, העברת הודעות וטיפול באירועים.
        • מצב מודולים: מצב משתמש מתקדם המאפשר טעינה ופריקה של מודולי ThreadX מקושרים מראש תוך כדי תנועה דרך מנהל מודולים.
      • NetX Duo
      • FileX
      • USBX
    • Bluetooth® Low Energy (BLE): מיישם את פרוטוקול Bluetooth® Low Energy עבור שכבות הקישור והסטם.
    • MCUboot (תוכנת קוד פתוח)
    • פרוטוקולי Zigbee® עבור המחסנית ואשכולות קשורים.
    • ערימת פרוטוקול Thread® ושכבת קישור.
    • Arm® Trusted 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 כולל קבוצה עשירה של לשעברampקבצים ויישומים בכל הרמות המקלים על ההבנה והשימוש בכל מנהל התקן 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.

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

  • לכל לוח, סט של אקסamples מסופק עם פרויקטים מוגדרים מראש עבור שרשרות הכלים EWARM, MDK-ARM ו-STM32CubeIDE.
  • איור 4. STM32CubeWBA exampלס נגמרview מציג את מבנה הפרויקט עבור לוחות NUCLEO-WBA52CG, NUCLEO-WBA55CG ו-STM32WBA55G-DK1.

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

  • האקסיתampהקבצים מסווגים בהתאם לרמת STM32Cube שאליה הם חלים, והם נקראים כך:
    • רמה 0 למשלamples נקראים Examples, Examples_LL, ו-Examples_MIX. הם משתמשים במנהלי התקן של HAL, מנהלי התקנים של LL, ושילוב של מנהלי התקנים של HAL ו-LL ללא כל רכיב תוכנת ביניים.
    • רמה 1 למשלampאלה נקראים יישומים. הם מספקים מקרי שימוש טיפוסיים של כל רכיב בתווך. ניתן לבנות במהירות כל יישום קושחה עבור לוח נתון הודות לפרויקטי תבניות הזמינים בספריות Templates ו-Templates_LL.

פרויקטים המאפשרים TrustZone®

  • TrustZone® מאופשר Exampשמות הקבצים מכילים את הקידומת _TrustZone. הכלל מיושם גם עבור יישומים (למעט TFM ו-SBSFU, שהם מקוריים עבור TrustZone®).
  • דוגמה המותאמת ל- TrustZone®amples ואפליקציות מסופקים עם מבנה רב פרויקטים המורכב מתת פרויקטים מאובטחים ולא מאובטחים כפי שמוצג באיור 5. מבנה פרויקט מאובטח ולא מאובטח רב פרויקטים.
  • פרויקטים התומכים ב- TrustZone® מפותחים על פי תבנית ההתקן CMSIS-5, מורחבת כך שתכלול את כותרת החלוקה של המערכת file חֲלוּקָה_ .h, שאחראי בעיקר על ההגדרה של יחידת המאפיינים המאובטחים (SAU), ה-FPU והקצאת הפסקות מאובטחות/לא מאובטחות במצב ביצוע מאובטח.
  • הגדרה זו מבוצעת בפונקציה המאובטחת CMSIS SystemInit() הנקראת בעת ההפעלה לפני הכניסה לפונקציית main() של היישום המאובטח. עיין בתיעוד Arm® TrustZone®-M של הנחיות תוכנה.

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

  • חבילת הקושחה של חבילת STM32CubeWBA מספקת חלוקת זיכרון ברירת מחדל במחיצה _ .h files זמין תחת: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emlates
  • במחיצה אלו files, ה-SAU מושבת כברירת מחדל. כתוצאה מכך, מיפוי הזיכרון של IDAU משמש לייחוס אבטחה. עיין באיור חלוקה מאובטחת/לא מאובטחת באמצעות טכנולוגיית TrustZone® במדריך העזר RM0495.
  • אם המשתמש מפעיל את ה-SAU, תצורת ברירת המחדל של אזורי SAU מוגדרת מראש במחיצה files כדלקמן:
    • אזור SAU 0: 0x08080000 – 0x081FFFFF (מחצית מאובטחת לא מאובטחת של זיכרון פלאש (512 Kbytes))
    • אזור SAU 1: 0x0BF88000 – 0x0BF97FFF (זיכרון מערכת לא מאובטח)
    • אזור SAU 2: 0x0C07E000 – 0x0C07FFFF (מובטח, ניתן להתקשרות לא מאובטח)
    • אזור SAU 3: 0x20010000 – 0x2001FFFF (SRAM2 לא מאובטח (64 Kbytes))
    • אזור SAU 4: 0x40000000 – 0x4FFFFFFF (זיכרון ממופה היקפי לא מאובטח)
  • כדי להתאים למחיצות ברירת המחדל, על המכשירים מסדרת STM32WBAxx להגדיר את הבתים הבאים של אפשרויות המשתמש:
    • TZEN = 1 (מכשיר התומך ב-TrustZone®)
    • SECWM1_PSTRT = 0x0 SECWM1_PEND = 0x3F (64 מתוך 128 דפים של זיכרון פלאש פנימי מוגדרים כמאובטחים) הערה: זיכרון ההבזק הפנימי מאובטח לחלוטין כברירת מחדל ב-TZEN = 1. יש להגדיר בתים של אפשרות המשתמש SECWM1_PSTRT/SECWM1_PEND בהתאם ליישום תצורת זיכרון (אזורי SAU, אם SAU מופעל). קישור פרויקטים של יישומים מאובטחים/לא מאובטחים fileיש גם ליישר את s.
  • כל לשעברampללס יש את אותו מבנה:
    • תיקיית \Inc המכילה את כל הכותרות files.
    • תיקיית Src המכילה את קוד המקור.
    • תיקיות \EWARM, \MDK-ARM ו-\STM32CubeIDE המכילות את הפרוייקט המוגדר מראש עבור כל שרשרת כלים.
    • readme.md ו-readme.html המתארים את האקסampההתנהגות והסביבה הדרושה כדי לגרום לזה לעבוד.
    • ioc file המאפשר למשתמשים לפתוח את רוב הקושחה לשעברamples בתוך STM32CubeMX.

תחילת העבודה עם STM32CubeWBA

הפעלת אקס HAL ראשוןample

חלק זה מסביר כמה פשוט להפעיל את האקס הראשוןample בתוך STM32CubeWBA. הוא משתמש כהמחשה ביצירת בורר LED פשוט הפועל על לוח NUCLEO-WBA52CG:

  1. הורד את חבילת STM32CubeWBA MCU.
  2. פתח אותו לספרייה לבחירתך.
  3. הקפד לא לשנות את מבנה החבילה המוצג באיור 1. מומלץ גם להעתיק את החבילה במיקום קרוב לנפח השורש שלך (כלומר C:\ST או G:\Tests), מכיוון שכמה IDEs נתקלים בבעיות כאשר הנתיב האורך ארוך מדי.

הפעלת דוגמה ראשונה המותאמת ל- TrustZone®ample

  • לפני טעינה והרצה של TrustZone® מאופשר דוגמהample, חובה לקרוא את האקסample readme file עבור כל תצורה ספציפית, מה שמבטיח שהאבטחה מופעלת כמתואר בסעיף 4.2.1 פרויקטים התומכים ב- TrustZone® (TZEN=1 (בייט של אפשרויות משתמש)).
    1. דפדף אל \Projects\NUCLEO-WBA52CG\Examples.
    2. פתח את \GPIO ולאחר מכן את התיקיות \GPIO_IOToggle_TrustZone.
    3. פתח את הפרויקט עם שרשרת הכלים המועדפת עליך. סיום מהירview כיצד לפתוח, לבנות ולהפעיל אקסampהקובץ עם שרשרת הכלים הנתמכת מובא להלן.
    4. בנה מחדש ברצף את כל הפרויקטים המאובטחים והלא מאובטחים files וטען את התמונות המאובטחות והלא מאובטחות לזיכרון היעד.
    5. הפעל את האקסample: באופן קבוע, היישום המאובטח מחליף את LD2 בכל שנייה, והיישום הלא מאובטח מחליף את LD3 במהירות כפולה. לפרטים נוספים, עיין ב-readme file של האקסיתample.
  • כדי לפתוח, לבנות ולהפעיל אקסampעם שרשרת הכלים הנתמכת, בצע את השלבים הבאים:
    • EWARM:
      1. מתחת לאקסampהתיקיה, פתח את תיקיית המשנה \EWARM.
      2. הפעל את סביבת העבודה Project.eww
      3. בנה מחדש את הפרויקט המאובטח xxxxx_S files: [פרויקט]>[בנה הכל מחדש].
      4. הגדר את הפרויקט הלא מאובטח xxxxx_NS כיישום פעיל (לחץ לחיצה ימנית על פרויקט xxxxx_NS [הגדר כפעיל])
      5. בנה מחדש את הפרויקט הלא מאובטח xxxxx_NS files: [פרויקט]>[בנה הכל מחדש].
      6. הבזק את הבינארי הלא מאובטח עם [פרויקט]>[הורד]>[הורד יישום פעיל] .
      7. הגדר את היישום xxxxx_S כפעיל (לחץ לחיצה ימנית על פרויקט xxxxx_S [הגדר כפעיל].
      8. הבזק את הקובץ הבינארי המאובטח עם [הורד וניפוי באגים] (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 לזיכרון הבזק)
      8. בחר בפרויקט Project_s כפרויקט פעיל ([הגדר כפרויקט פעיל]).
      9. טען את הבינארי המאובטח ([F8]). פעולה זו מורידה את \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf לזיכרון הבזק).
      10. הפעל את האקסample.
    • STM32CubeIDE:
      1. פתח את שרשרת הכלים STM32CubeIDE.
      2. פתח את סביבת העבודה של Multiprojects file .פּרוֹיֶקט.
      3. בנה מחדש את הפרויקט xxxxx_Secure.
      4. בנה מחדש את הפרויקט xxxxx_NonSecure.
      5. הפעל את היישום [Debug as STM32 Cortex-M C/C++] עבור הפרויקט המאובטח.
      6. בחלון [ערוך תצורה], בחר בחלונית [אתחול] והוסף טעינת התמונה והסמלים של הפרויקט הלא מאובטח.
        חָשׁוּב: יש לטעון את הפרויקט הלא מאובטח לפני הפרויקט המאובטח.
      7. לחץ על [אישור].
      8. הפעל את האקסampפרספקטיבה של ניפוי באגים.

הפעלת דוגמה ראשונה מושבתת TrustZone®ample

  • לפני טעינה והרצה של TrustZone® מושבת דוגמהample, חובה לקרוא את האקסample readme file עבור כל תצורה ספציפית. אם אין אזכורים ספציפיים, ודא שהאבטחה מושבתת בהתקן הלוח (TZEN=0 (בייט של אפשרות משתמש)). ראה שאלות נפוצות לביצוע הרגרסיה האופציונלית ל-TZEN = 0
    1. דפדף אל \Projects\NUCLEO-WBA52CG\Examples.
    2. פתח את \GPIO ולאחר מכן את התיקיות \GPIO_EXTI.
    3. פתח את הפרויקט עם שרשרת הכלים המועדפת עליך. סיום מהירview כיצד לפתוח, לבנות ולהפעיל אקסampהקובץ עם שרשרת הכלים הנתמכת מובא להלן.
    4. לבנות הכל מחדש files וטען את התמונה שלך לזיכרון היעד.
    5. הפעל את האקסample: בכל פעם שלוחצים על לחצן [USER], נורית ה-LD1 מתחלפת. לפרטים נוספים, עיין ב-readme file של האקסיתample.
  • כדי לפתוח, לבנות ולהפעיל אקסampעם שרשרת הכלים הנתמכת, בצע את השלבים הבאים:
    • EWARM:
      1. מתחת לאקסampהתיקיה, פתח את תיקיית המשנה \EWARM.
      2. הפעל את סביבת העבודה Project.eww (שם סביבת העבודה עשוי להשתנות מדוגמה אחתampלה לאחר).
      3. לבנות הכל מחדש files: [פרויקט]>[בנה הכל מחדש].
      4. טען את תמונת הפרויקט: [Project]>[Debug].
      5. הפעל את התוכנית: [Debug]>[Go (F5)].
    • MDK-ARM:
      1. מתחת לאקסampהתיקיה, פתח את תיקיית המשנה \MDK-ARM.
      2. הפעל את סביבת העבודה Project.uvproj (שם סביבת העבודה עשוי להשתנות מדוגמה אחתampלה לאחר).
      3. לבנות הכל מחדש files:[פרויקט]>[בנה מחדש את כל היעדים files].
      4. טען את תמונת הפרויקט: [Debug]>[Start/Stop Debug Session].
      5. הפעל תוכנית: [Debug]>[Run (F5)].
    • STM32CubeIDE:
      1. פתח את שרשרת הכלים STM32CubeIDE.
      2. לחץ על [File]>[החלף סביבת עבודה]>[אחר] ודפדף אל ספריית סביבת העבודה STM32CubeIDE.
      3. לחץ על [File]>[ייבא] , בחר [כללי]>[פרויקטים קיימים אל סביבת העבודה], ולאחר מכן לחץ על [הבא].
      4. דפדף אל ספריית סביבת העבודה STM32CubeIDE ובחר את הפרויקט.
      5. לבנות מחדש את כל הפרויקט files: בחר את הפרויקט בחלון [Project Explorer] ולאחר מכן לחץ על התפריט [Project]>[Build project].
      6. הפעל את התוכנית: [Run]>[Debug (F11)]
פיתוח אפליקציה מותאמת אישית

פֶּתֶק: התוכנה חייבת לאפשר למטמון ההוראות (ICACHE) לקבל ביצוע 0 מצב המתנה מזיכרון פלאש, ולהגיע לביצועים המקסימליים ולצריכת חשמל טובה יותר.

שימוש ב-STM32CubeMX כדי לפתח או לעדכן אפליקציה

  • בחבילת STM32CubeWBA MCU, כמעט כל הפרויקטים לשעברampתמונות נוצרות עם הכלי STM32CubeMX כדי לאתחל את המערכת, הציוד ההיקפי והתווך.
  • שימוש ישיר בפרויקט קיים, למשלample מכלי STM32CubeMX דורש STM32CubeMX 6.10.0 ומעלה:
    • לאחר ההתקנה של STM32CubeMX, פתח ובמידת הצורך עדכן פרויקט מוצע. הדרך הפשוטה ביותר לפתוח פרויקט קיים היא ללחוץ פעמיים על ה-*.ioc file כך ש-STM32CubeMX פותח אוטומטית את הפרויקט והמקור שלו files.
    • STM32CubeMX מייצר את קוד מקור האתחול של פרויקטים כאלה. קוד המקור העיקרי של האפליקציה כלול בהערות "USER CODE BEGIN" ו-"USER CODE END". במקרה שבחירת ה-IP וההגדרה משתנות, STM32CubeMX מעדכן את חלק האתחול של הקוד אך שומר על קוד המקור של היישום הראשי.
  • לפיתוח פרויקט מותאם אישית ב- STM32CubeMX, בצע את התהליך שלב אחר שלב:
    1. בחר את המיקרו-בקר STM32 שתואם את סט הציוד ההיקפי הנדרש.
    2. הגדר את כל התוכנות המוטמעות הנדרשות באמצעות פותר קונפליקטים Pinout, מסייע להגדרת עץ שעון, מחשבון צריכת חשמל, ותוכנית השירות המבצעת תצורת MCU היקפית (כגון GPIO או USART) וערימות תווך (כגון USB).
    3. צור את קוד האתחול C בהתבסס על התצורה שנבחרה. קוד זה מוכן לשימוש בתוך מספר סביבות פיתוח. קוד המשתמש נשמר בדור הבא של הקוד.
  • למידע נוסף על STM32CubeMX, עיין במדריך למשתמש STM32CubeMX עבור יצירת קוד STM32 ואתחול C (UM1718).
  • לרשימה של הפרויקט הזמינים, למשלamples עבור STM32CubeWBA, עיין בהערת היישום STM32Cube קושחה examples עבור סדרת STM32WBA (AN5929).

יישומי מנהלי התקנים

יישום HAL
סעיף זה מתאר את השלבים הדרושים ליצירת יישום HAL מותאם אישית באמצעות STM32CubeWBA:

  1. צור פרויקט
    • כדי ליצור פרויקט חדש, התחל אחד מפרויקט התבנית שסופק עבור כל לוח תחת \Projects\ \Templates או מכל פרויקט זמין תחת \Projects\ \exam ples או \Projects\ \יישומים (היכן מתייחס לשם הלוח, כגון STM32CubeWBA).
    • פרויקט ה-Template מספק פונקציית לולאה ראשית ריקה. עם זאת, זוהי נקודת התחלה טובה להבין את הגדרות הפרויקט STM32CubeWBA. לתבנית יש את המאפיינים הבאים:
      • הוא מכיל את קוד המקור של HAL, CMSIS ומנהלי התקנים של BSP, שהם קבוצת הרכיבים המינימלית הנדרשת לפיתוח קוד בלוח נתון.
      • הוא מכיל את הנתיבים הכלולים עבור כל רכיבי הקושחה.
      • הוא מגדיר את התקני סדרת STM32WBA הנתמכים, ומאפשר להגדיר כהלכה את מנהלי ההתקן של CMSIS ו-HAL.
      • הוא מספק משתמש מוכן לשימוש files מוגדר מראש כפי שמוצג להלן:
        HAL אותחל עם בסיס זמן ברירת המחדל עם Arm® core SysTick. SysTick ISR מיושם למטרת HAL_Delay().
        פֶּתֶק: בעת העתקת פרויקט קיים למיקום אחר, ודא שכל הנתיבים הכלולים מעודכנים.
  2. הוסף את תוכנת הביניים הדרושה לפרויקט המשתמש (אופציונלי)
    כדי לזהות את המקור fileיתווספו לפרויקט file רשימה, עיין בתיעוד שסופק עבור כל תוכנת ביניים. עיין באפליקציות תחת \Projects\STM32xxx_yyy\Applications\ (איפה מתייחס למחסנית התווך, כגון ThreadX) כדי לדעת איזה מקור fileיש להוסיף נתיבים s ו-include.
  3. הגדר את רכיבי הקושחה
    רכיבי ה-HAL והתווך מציעים קבוצה של אפשרויות תצורה של זמן בנייה באמצעות פקודות מאקרו #define המוצהרות בכותרת file. תצורת תבנית file מסופק בתוך כל רכיב, אותו יש להעתיק לתיקיית הפרויקט (בדרך כלל התצורה file הוא נקרא xxx_conf_template.h, יש להסיר את המילה _template בעת העתקתה לתיקיית הפרויקט). התצורה file מספק מספיק מידע כדי להבין את ההשפעה של כל אפשרות תצורה. מידע מפורט יותר זמין בתיעוד המסופק עבור כל רכיב.
  4. הפעל את ספריית 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 לבצע אתחולי חומרה ברמה נמוכה גלובלית.
  5. הגדר את שעון המערכת
    תצורת שעון המערכת מתבצעת על ידי קריאה לשני ממשקי ה-API המתוארים להלן:
    • HAL_RCC_OscConfig(): API זה מגדיר את המתנדים הפנימיים והחיצוניים. המשתמש בוחר להגדיר את המתנדים אחד או את כולם.
    • HAL_RCC_ClockConfig(): ממשק API זה מגדיר את מקור השעון של המערכת, את זמן ההשהיה של זיכרון ההבזק ו-prescaleers AHB ו-APB.
  6. אתחל את הציוד ההיקפי
    • תחילה כתוב את הפונקציה ההיקפית HAL_PPP_MspInit. בצע את הפעולות הבאות:
      • הפעל את השעון ההיקפי.
      • הגדר את GPIOs ההיקפי.
      • הגדר את ערוץ ה-DMA והפעל פסיקת DMA (במידת הצורך).
      • אפשר פסיקה היקפית (במידת הצורך).
    • ערוך את ה-stm32xxx_it.c כדי להתקשר למטפלי הפסיקות הנדרשים (פריפריאלי ו-DMA), במידת הצורך.
    • כתיבת תהליך מלא של פונקציות התקשרות חוזרת, אם מתוכנן להשתמש בהפרעה היקפית או ב-DMA.
    • ב-main.c של המשתמש file, אתחל את מבנה הידית ההיקפית ואז קרא לפונקציה HAL_PPP_Init() כדי לאתחל את הציוד ההיקפי.
  7. פתח אפליקציה
    • בס' זהtagה, המערכת מוכנה ופיתוח קוד יישום המשתמש יכול להתחיל.
    • ה-HAL מספק ממשקי API אינטואיטיביים ומוכנים לשימוש כדי להגדיר את הציוד ההיקפי. הוא תומך בסקר, פסיקות ומודל תכנות DMA, כדי להתאים לכל דרישות היישום. לפרטים נוספים על אופן השימוש בכל ציוד היקפי, עיין באקס העשירampהסט מסופק בחבילת STM32CubeWBA MCU.
      זְהִירוּת: ביישום ברירת המחדל של HAL, טיימר SysTick משמש כבסיס זמן: הוא מייצר פסיקות במרווחי זמן קבועים. אם HAL_Delay() נקרא מתהליך ISR היקפי, ודא שלפסיקת SysTick יש עדיפות גבוהה יותר (נמוכה מספרית) מהפסיקה ההיקפית. אחרת, תהליך ISR המתקשר נחסם. פונקציות המשפיעות על תצורות בסיס זמן מוכרזות כ-__חלשות כדי לאפשר עקיפה במקרה של יישומים אחרים במשתמש file (באמצעות טיימר לשימוש כללי, למשלample, או מקור זמן אחר). לפרטים נוספים, עיין בדוגמה של HAL_TimeBaseample.

יישום 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\ \Templates_LL.
    • בחר LL example: כדי למצוא את הלוח שבו LL exampקבצים נפרסים, עיין ברשימת LL examples STM32CubeProjectsList.html.
  3. העבר את ה-LL exampעל:
    • העתק/הדבק את התיקיה Templates_LL - כדי לשמור על המקור הראשוני - או עדכן ישירות את פרויקט Templates_LL הקיים.
    • לאחר מכן, העברה מורכבת בעיקר מהחלפת Templates_LL fileשל האקסampפרויקט ממוקד les_LL.
    • שמור את כל החלקים הספציפיים של הלוח. מטעמי בהירות, חלקים ספציפיים של לוח מסומנים בסימן ספציפי tags:

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

    • לפיכך, שלבי ההעברה העיקריים הם הבאים:
      • החלף את ה-stm32wbaxx_it.h file
      • החלף את ה-stm32wbaxx_it.c file
      • החלף את ה-main.h file ועדכן אותה: שמור את ה-LED וכפתור המשתמש של תבנית LL תחת BOARD SPECIFIC CONFIGURATION tags.
      • החלף את main.c file ותעדכן את זה:
    • שמור את תצורת השעון של פונקציית התבנית SystemClock_Config() LL תחת BOARD SPECIFIC CONFIGURATION tags.
    • בהתאם להגדרת LED, החלף כל מופע LDx ב-LDy אחר זמין ב-main.h file.
    • עם שינויים אלה, האקסample כעת פועל על הלוח הממוקד

יישומי אבטחה
חבילה זו מסופקת עם יישומי אבטחה.

יישומי SBSFU

  • SBSFU מספקת פתרון Root of Trust, כולל אתחול מאובטח ופונקציונליות עדכון קושחה מאובטח (מבוסס על MCUboot).
  • הפתרון משמש לפני הפעלת היישום.
  • הפתרון מספק אקסample של שירות מאובטח (GPIO toggle), המבודד מהיישום הלא מאובטח. היישום הלא מאובטח בזמן ריצה עדיין יכול להשתמש בפתרון זה.

יישומי TFM
ה-TFM מספק פתרון Root of Trust הכולל את הפונקציות של Secure Boot ו-Secure Firmware Update
(מבוסס על MCUboot). הפתרון משמש לפני הפעלת היישום. הפתרון מספק שירותי TFM מאובטחים המבודדים מהאפליקציה הלא מאובטחת. היישום הלא מאובטח בזמן ריצה עדיין יכול להשתמש בפתרון זה.

יישומי RF
יישום ה-RF מתואר בהערת יישום זה: בניית יישומים אלחוטיים עם מיקרו-בקרים מסדרת STM32WBA (AN5928).

קבלת עדכוני מהדורת STM32CubeWBA
המהדורות והתיקונים האחרונים של חבילת STM32CubeWBA MCU זמינים מסדרת STM32WBA. ניתן לאחזר אותם מכפתור CHECK FOR UPDATE ב- STM32CubeMX. לפרטים נוספים, עיין בסעיף 3 במדריך למשתמש STM32CubeMX עבור יצירת קוד STM32 ואתחול C (UM1718).

שאלות נפוצות

  • מתי עלי להשתמש ב-HAL במקום במנהלי התקנים של LL?
    • מנהלי התקנים של HAL מציעים ממשקי API ברמה גבוהה ומוכווני פונקציה, עם רמה גבוהה של ניידות. מורכבות המוצר או היקפי מוסתרת עבור משתמשי הקצה.
    • מנהלי התקנים של LL מציעים ממשקי API ברמת רישום בשכבה נמוכה, עם אופטימיזציה טובה יותר אך פחות ניידת. הם דורשים ידע מעמיק במפרטי המוצר או ה-IP.
  • האם אני יכול להשתמש בדרייברים של HAL ו-LL ביחד? אם אני יכול, מה האילוצים?
    • אפשר להשתמש גם בדרייברים של HAL וגם ב-LL. השתמש ב-HAL לשלב אתחול ה-IP ולאחר מכן נהל את פעולות ה-I/O עם מנהלי התקנים של LL.
    • ההבדל העיקרי בין HAL ל-LL הוא שמנהלי התקנים של HAL דורשים ליצור ולהשתמש בידיות לניהול תפעול בעוד שמנהלי התקנים של LL פועלים ישירות על אוגרים היקפיים. האקסamples_MIX example ממחיש כיצד מערבבים 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 תחילת העבודה, תחילת העבודה, התחלה

הפניות

השאר תגובה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *