STMicroelectronics-โลโก้

การเริ่มต้นใช้งานซีรีส์ STMicroelectronics STM32WBA

STMicroelectronics-STM32WBA-Series-เริ่มต้นใช้งาน-fig-1

ข้อมูลสินค้า

ข้อมูลจำเพาะ:

  • ชื่อสินค้า : แพ็คเกจ MCU STM32CubeWBA
  • ผู้ผลิต: บริษัท เอส ที ไมโครอิเล็กทรอนิกส์
  • ความเข้ากันได้: ไมโครคอนโทรลเลอร์ซีรีส์ STM32WBA
  • การออกใบอนุญาต: ใบอนุญาต BSD แบบโอเพ่นซอร์ส

คำแนะนำการใช้ผลิตภัณฑ์

คุณสมบัติหลักของแพ็คเกจ MCU STM32CubeWBA:
แพ็คเกจ MCU STM32CubeWBA มอบส่วนประกอบซอฟต์แวร์แบบฝังที่จำเป็นทั้งหมดสำหรับการพัฒนาแอปพลิเคชันบนไมโครคอนโทรลเลอร์ซีรีส์ STM32WBA พกพาสะดวกมากในซีรีส์ STM32 และมาพร้อมกับ HAL และ LL API เช่นampไฟล์ และส่วนประกอบมิดเดิลแวร์

สถาปัตยกรรมมากกว่าview:
สถาปัตยกรรมของแพ็คเกจ MCU STM32CubeWBA ประกอบด้วยสามระดับ ได้แก่ แอปพลิเคชัน ไลบรารีและส่วนประกอบที่ใช้โปรโตคอล เลเยอร์การลบล้างฮาร์ดแวร์ ไดรเวอร์ BSP ไดรเวอร์ Core และ API เลเยอร์ต่ำ

คำถามที่พบบ่อย

  • มีอะไรรวมอยู่ในแพ็คเกจ MCU STM32CubeWBA
    แพ็คเกจประกอบด้วย low-layer (LL) และ hardware abstraction layer (HAL) APIs เช่นampไฟล์, แอปพลิเคชัน, ส่วนประกอบมิดเดิลแวร์เช่น FileX/LevelX, NetX Duo, ไลบรารี mbed-crypto และอื่นๆ อีกมากมาย
  • แพ็คเกจ MCU STM32CubeWBA เข้ากันได้กับตัวสร้างโค้ด STM32CubeMX หรือไม่
    ใช่ แพ็คเกจนี้เข้ากันได้อย่างสมบูรณ์กับตัวสร้างโค้ด STM32CubeMX สำหรับการสร้างโค้ดเริ่มต้น

การแนะนำ

  • STM32Cube เป็นความคิดริเริ่มดั้งเดิมของ STMicroelectronics เพื่อปรับปรุงประสิทธิภาพการทำงานของนักออกแบบอย่างมีนัยสำคัญโดยการลดความพยายาม เวลา และต้นทุนในการพัฒนา STM32Cube ครอบคลุมพอร์ตโฟลิโอ STM32 ทั้งหมด
    STM32Cube ประกอบด้วย:
    • ชุดเครื่องมือพัฒนาซอฟต์แวร์ที่เป็นมิตรกับผู้ใช้เพื่อครอบคลุมการพัฒนาโครงการตั้งแต่แนวคิดจนถึงการทำให้เป็นจริง ซึ่งได้แก่:
      • STM32CubeMX ซึ่งเป็นเครื่องมือกำหนดค่าซอฟต์แวร์กราฟิกที่อนุญาตให้สร้างรหัสการเริ่มต้น C โดยอัตโนมัติโดยใช้วิซาร์ดกราฟิก
      • STM32CubeIDE เครื่องมือพัฒนาแบบ all-in-one ที่มีการกำหนดค่าอุปกรณ์ต่อพ่วง การสร้างโค้ด การคอมไพล์โค้ด และการดีบัก
      • STM32CubeCLT ชุดเครื่องมือพัฒนาบรรทัดคำสั่งแบบครบวงจรพร้อมการคอมไพล์โค้ด การตั้งโปรแกรมบอร์ด และคุณลักษณะการแก้ไขข้อบกพร่อง
      • STM32CubeProgrammer (STM32CubeProg) เครื่องมือการเขียนโปรแกรมที่มีอยู่ในเวอร์ชันกราฟิกและบรรทัดคำสั่ง
      • STM32CubeMonitor (STM32CubeMonitor, STM32CubeMonPwr, STM32CubeMonRF, STM32CubeMonUCPD) เครื่องมือตรวจสอบอันทรงพลังเพื่อปรับแต่งพฤติกรรมและประสิทธิภาพของแอปพลิเคชัน STM32 แบบเรียลไทม์
    • แพ็คเกจ MCU และ MPU STM32Cube ซึ่งเป็นแพลตฟอร์มซอฟต์แวร์แบบฝังที่ครอบคลุมเฉพาะสำหรับไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์แต่ละซีรีส์ (เช่น STM32CubeWBA สำหรับซีรีส์ STM32WBA) ซึ่งประกอบด้วย:
      • STM32Cube hardware abstraction layer (HAL) ทำให้มั่นใจได้ถึงความสามารถในการพกพาสูงสุดในกลุ่มผลิตภัณฑ์ STM32
      • STM32Cube low-layer APIs ทำให้มั่นใจได้ถึงประสิทธิภาพและรอยเท้าที่ดีที่สุดด้วยการควบคุมฮาร์ดแวร์ของผู้ใช้ในระดับสูง
      • ชุดส่วนประกอบมิดเดิลแวร์ที่สอดคล้องกัน เช่น ThreadX FileX / LevelX, NetX Duo, USBX, ไลบรารีระบบสัมผัส, mbed-crypto, TFM, MCUboot, OpenBL และ STM32_WPAN (รวมถึง Bluetooth® Low Energy profileและบริการ, Mesh, Zigbee®, OpenThread, Matter และเลเยอร์ MAC 802.15.4)
      • ยูทิลิตี้ซอฟต์แวร์แบบฝังทั้งหมดพร้อมชุดอุปกรณ์ต่อพ่วงและแอพพลิเคชั่นครบชุด เช่นampเลส
    • แพ็คเกจเสริม STM32Cube ซึ่งมีส่วนประกอบซอฟต์แวร์ฝังตัวที่ช่วยเสริมการทำงานของแพ็คเกจ STM32Cube MCU และ MPU ด้วย:
      • ส่วนขยายมิดเดิลแวร์และเลเยอร์แอปพลิเคชัน
      • Exampทำงานบนบอร์ดพัฒนา STMicroelectronics เฉพาะบางรุ่น
  • คู่มือผู้ใช้นี้อธิบายวิธีเริ่มต้นใช้งานแพ็คเกจ MCU STM32CubeWBA
    • ส่วนที่ 2 คุณสมบัติหลักของ STM32CubeWBA อธิบายคุณสมบัติหลักของแพ็คเกจ MCU STM32CubeWBA
    • ส่วนที่ 3 สถาปัตยกรรม STM32CubeWBA จบลงแล้วview ให้มากกว่าview ของสถาปัตยกรรม STM32CubeWBA และโครงสร้างแพ็คเกจ MCU

ข้อมูลทั่วไป

แพ็คเกจ MCU STM32CubeWBA ทำงานบนไมโครคอนโทรลเลอร์ STM32 32 บิตที่ใช้โปรเซสเซอร์ Arm® Cortex®-M33 พร้อม Arm® TrustZone® และ FPU
บันทึก: Arm และ TrustZone เป็นเครื่องหมายการค้าจดทะเบียนของ Arm Limited (หรือบริษัทในเครือ) ในสหรัฐอเมริกาและ/หรือที่อื่นๆ

คุณสมบัติหลักของ STM32CubeWBA

  • แพ็คเกจ MCU STM32CubeWBA ทำงานบนไมโครคอนโทรลเลอร์ STM32 32 บิตที่ใช้โปรเซสเซอร์ Arm® Cortex®-M33 พร้อม TrustZone® และ FPU
  • STM32CubeWBA รวบรวมส่วนประกอบซอฟต์แวร์ฝังตัวทั่วไปทั้งหมดที่จำเป็นสำหรับการพัฒนาแอปพลิเคชันสำหรับไมโครคอนโทรลเลอร์ซีรีส์ STM32WBA ในแพ็คเกจเดียว เพื่อให้สอดคล้องกับโครงการริเริ่ม STM32Cube ชุดส่วนประกอบนี้จึงสามารถพกพาได้สะดวก ไม่เพียงแต่ในไมโครคอนโทรลเลอร์ซีรีส์ STM32WBA เท่านั้น แต่ยังรวมไปถึงซีรีส์ STM32 อื่นๆ ด้วย
  • STM32CubeWBA เข้ากันได้อย่างสมบูรณ์กับตัวสร้างโค้ด STM32CubeMX เพื่อสร้างโค้ดเริ่มต้น แพคเกจประกอบด้วย low-layer (LL) และ hardware abstraction layer (HAL) APIs ที่ครอบคลุมฮาร์ดแวร์ไมโครคอนโทรลเลอร์ พร้อมด้วยชุด ex ที่กว้างขวางampทำงานบนบอร์ด STMicroelectronics HAL และ LL API มีอยู่ในใบอนุญาต BSD แบบโอเพ่นซอร์สเพื่อความสะดวกของผู้ใช้
  • แพ็คเกจ MCU STM32CubeWBA ยังมีส่วนประกอบมิดเดิลแวร์ที่ครอบคลุมซึ่งสร้างโดยใช้มิดเดิลแวร์ Microsoft® Azure® RTOS และสแต็กภายในและโอเพ่นซอร์สอื่นๆ พร้อมด้วยตัวอย่างที่สอดคล้องกันampเลส.
  • มาพร้อมกับข้อกำหนดสิทธิ์การใช้งานฟรีและใช้งานง่าย:
    • Azure® RTOS ที่ผสานรวมและมีคุณสมบัติครบถ้วน: Azure® RTOS ThreadX
    • การใช้งาน CMSIS-RTOS กับ Azure® RTOS ThreadX
    • โฮสต์ USB และอุปกรณ์ที่มาพร้อมกับหลายคลาส: Azure® RTOS USBX
    • ขั้นสูง file ระบบและเลเยอร์การแปลแฟลช: FileX / ระดับX
    • สแต็กเครือข่ายระดับอุตสาหกรรม: ปรับให้เหมาะสมสำหรับประสิทธิภาพที่มาพร้อมกับโปรโตคอล IoT มากมาย: NetX Duo
    • เปิด Bootloader
    • โซลูชันการรวม Arm® Trusted Firmware-M (TF-M)
    • ไลบรารี mbed-crypto
    • ห้องสมุด ST Netwok
    • โซลูชันไลบรารีการตรวจจับการสัมผัส STMTouch
  • แอปพลิเคชันและการสาธิตการใช้งานส่วนประกอบมิดเดิลแวร์เหล่านี้ทั้งหมดมีอยู่ในแพ็คเกจ MCU STM32CubeWBA
  • โครงร่างส่วนประกอบแพ็คเกจ STM32CubeWBA MCU แสดงไว้ในรูปที่ 1 ส่วนประกอบแพ็คเกจ MCU STM32CubeWBA

    STMicroelectronics-STM32WBA-Series-เริ่มต้นใช้งาน-fig-2

สถาปัตยกรรม STM32CubeWBA จบลงแล้วview

โซลูชันแพ็กเกจ STM32CubeWBA MCU สร้างขึ้นโดยมีระดับอิสระสามระดับที่สามารถโต้ตอบได้อย่างง่ายดายตามที่อธิบายไว้ในรูปที่ 2 สถาปัตยกรรมแพ็กเกจ STM32CubeWBA MCU

STMicroelectronics-STM32WBA-Series-เริ่มต้นใช้งาน-fig-3

ระดับ 0

ระดับนี้แบ่งออกเป็นสามชั้นย่อย:

  • แพ็คเกจสนับสนุนบอร์ด (BSP)
  • เลเยอร์นามธรรมของฮาร์ดแวร์ (HAL):
    • ไดรเวอร์อุปกรณ์ต่อพ่วง HAL
    • ไดรเวอร์เลเยอร์ต่ำ
  • การใช้งานอุปกรณ์ต่อพ่วงพื้นฐาน เช่นampเลส.

แพ็คเกจสนับสนุนบอร์ด (BSP)
เลเยอร์นี้นำเสนอชุดของ API ที่เกี่ยวข้องกับส่วนประกอบฮาร์ดแวร์ในบอร์ดฮาร์ดแวร์ (เช่น ไดรเวอร์ LCD, Audio,\ microSD™ และ MEMS) ประกอบด้วยสองส่วน:

  • ไดรเวอร์ส่วนประกอบ:
    ไดรเวอร์นี้เกี่ยวข้องกับอุปกรณ์ภายนอกบนบอร์ด ไม่ใช่กับอุปกรณ์ STM32 ไดรเวอร์ส่วนประกอบจัดเตรียม API เฉพาะให้กับส่วนประกอบภายนอกของไดรเวอร์ BSP และสามารถพกพาไปบนบอร์ดอื่นได้
  • ไดรเวอร์ BSP:
    ไดรเวอร์ BSP ช่วยให้สามารถเชื่อมโยงไดรเวอร์ส่วนประกอบกับบอร์ดเฉพาะได้ และมอบชุดไดรเวอร์ที่เป็นมิตรต่อผู้ใช้
    API กฎการตั้งชื่อ API คือ BSP_FUNCT_Action()
    Exampเลอ: BSP_LED_Init(), BSP_LED_On()
    BSP มีพื้นฐานมาจากสถาปัตยกรรมแบบโมดูลาร์ทำให้สามารถพอร์ตบนฮาร์ดแวร์ต่างๆ ได้อย่างง่ายดายโดยเพียงแค่ปรับใช้รูทีนระดับต่ำ

ฮาร์ดแวร์นามธรรมเลเยอร์ (HAL) และเลเยอร์ต่ำ (LL)
STM32CubeWBA HAL และ LL เป็นส่วนเสริมและครอบคลุมข้อกำหนดการใช้งานที่หลากหลาย:

  • ไดรเวอร์ HAL นำเสนอ API แบบพกพาระดับสูงที่มุ่งเน้นฟังก์ชันระดับสูง โดยจะซ่อน MCU และความซับซ้อนของอุปกรณ์ต่อพ่วงให้กับผู้ใช้ปลายทาง
    ไดรเวอร์ HAL มี API เชิงคุณลักษณะแบบหลายอินสแตนซ์ทั่วไป ซึ่งช่วยให้การใช้งานแอปพลิเคชันของผู้ใช้ง่ายขึ้นโดยจัดเตรียมกระบวนการที่พร้อมใช้งาน สำหรับเช่นampสำหรับอุปกรณ์ต่อพ่วงการสื่อสาร (I2S, UART และอื่นๆ) จะมี API ที่ช่วยให้สามารถเริ่มต้นและกำหนดค่าอุปกรณ์ต่อพ่วง จัดการการถ่ายโอนข้อมูลตามการโพล การขัดจังหวะ หรือกระบวนการ DMA และจัดการข้อผิดพลาดในการสื่อสารที่อาจเกิดขึ้นระหว่างการสื่อสาร API ไดรเวอร์ HAL แบ่งออกเป็นสองประเภท:
    1. API ทั่วไปซึ่งมีฟังก์ชันทั่วไปและฟังก์ชันทั่วไปให้กับไมโครคอนโทรลเลอร์ซีรีส์ STM32 ทั้งหมด
    2. API ส่วนขยายซึ่งมีฟังก์ชันเฉพาะและปรับแต่งได้สำหรับตระกูลเฉพาะหรือหมายเลขชิ้นส่วนเฉพาะ
  • API ชั้นล่างมี API ระดับต่ำที่ระดับรีจิสเตอร์ พร้อมการปรับให้เหมาะสมที่ดีกว่าแต่มีความสะดวกในการพกพาน้อยกว่า
    • พวกเขาต้องการความรู้เชิงลึกเกี่ยวกับ MCU และข้อกำหนดอุปกรณ์ต่อพ่วง
    • ไดรเวอร์ LL ได้รับการออกแบบมาเพื่อนำเสนอเลเยอร์ที่มุ่งเน้นผู้เชี่ยวชาญน้ำหนักเบาที่รวดเร็วและอยู่ใกล้กับฮาร์ดแวร์มากกว่า HAL ตรงกันข้ามกับ HAL LL API ไม่ได้มีไว้สำหรับอุปกรณ์ต่อพ่วงที่การเข้าถึงที่ได้รับการปรับปรุงไม่ใช่คุณสมบัติหลัก หรือสำหรับผู้ที่ต้องการการกำหนดค่าซอฟต์แวร์จำนวนมากหรือสแต็กระดับบนที่ซับซ้อน
    • คุณสมบัติของไดรเวอร์ LL:
      • ชุดฟังก์ชันเพื่อเริ่มต้นคุณสมบัติหลักต่อพ่วงตามพารามิเตอร์ที่ระบุในโครงสร้างข้อมูล
      • ชุดของฟังก์ชันเพื่อเติมโครงสร้างข้อมูลการเริ่มต้นด้วยค่ารีเซ็ตที่สอดคล้องกับแต่ละฟิลด์
      • ฟังก์ชันสำหรับการดีเริ่มต้นอุปกรณ์ต่อพ่วง (รีจิสเตอร์อุปกรณ์ต่อพ่วงคืนค่าเป็นค่าเริ่มต้น)
      • ชุดฟังก์ชันอินไลน์สำหรับการเข้าถึงรีจิสเตอร์โดยตรงและอะตอมมิก
      • ความเป็นอิสระอย่างเต็มที่จาก HAL และความสามารถในการใช้ในโหมดสแตนด์อโลน (โดยไม่ต้องใช้ไดรเวอร์ HAL)
      • ความครอบคลุมเต็มรูปแบบของคุณสมบัติอุปกรณ์ต่อพ่วงที่รองรับ

การใช้งานอุปกรณ์ต่อพ่วงพื้นฐาน เช่นampเลส
เลเยอร์นี้ล้อมรอบอดีตampสร้างขึ้นเหนืออุปกรณ์ต่อพ่วง STM32 โดยใช้ทรัพยากร HAL และ BSP เท่านั้น

ระดับ 1

ระดับนี้แบ่งออกเป็นสองชั้นย่อย:

  • ส่วนประกอบมิดเดิลแวร์
  • Exampขึ้นอยู่กับส่วนประกอบมิดเดิลแวร์

ส่วนประกอบมิดเดิลแวร์

  • มิดเดิลแวร์คือชุดของไลบรารีที่ครอบคลุม 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 ที่เชื่อมโยงไว้ล่วงหน้าได้ทันทีผ่านตัวจัดการโมดูล
      • เน็ตเอ็กซ์ ดูโอ
      • FileX
      • ยูเอสบีเอ็กซ์
    • Bluetooth® Low Energy (BLE): ใช้โปรโตคอล Bluetooth® Low Energy สำหรับเลเยอร์ Link และ Stack
    • MCUboot (ซอฟต์แวร์โอเพ่นซอร์ส)
    • โปรโตคอล Zigbee® สำหรับสแต็กและคลัสเตอร์ที่เกี่ยวข้อง
    • สแต็กโปรโตคอลThread®และเลเยอร์ลิงก์
    • เฟิร์มแวร์ที่เชื่อถือได้ของ Arm®-M, TF-M (ซอฟต์แวร์โอเพ่นซอร์ส): การใช้งานอ้างอิงของสถาปัตยกรรมความปลอดภัยแพลตฟอร์ม Arm® (PSA) สำหรับ TrustZone® พร้อมบริการความปลอดภัยที่เกี่ยวข้อง
    • mbed-crypto (ซอฟต์แวร์โอเพ่นซอร์ส): มิดเดิลแวร์ mbed-crypto จัดเตรียมการใช้งาน API การเข้ารหัส PSA
    • ไลบรารีการตรวจจับการสัมผัส STM32: โซลูชันการตรวจจับการสัมผัสแบบคาปาซิทีฟ STMTouch ที่แข็งแกร่ง รองรับเซ็นเซอร์สัมผัสความใกล้เคียง ปุ่มสัมผัส เซ็นเซอร์สัมผัสเชิงเส้นและแบบหมุน มันขึ้นอยู่กับหลักการได้มาซึ่งการถ่ายโอนประจุพื้นผิวที่ได้รับการพิสูจน์แล้ว

Exampขึ้นอยู่กับส่วนประกอบมิดเดิลแวร์
ส่วนประกอบมิดเดิลแวร์แต่ละองค์ประกอบมาพร้อมกับตัวอย่างอย่างน้อยหนึ่งรายการamples (หรือที่เรียกว่าแอปพลิเคชัน) ที่แสดงวิธีการใช้งาน บูรณาการ เช่นampไฟล์ที่ใช้ส่วนประกอบมิดเดิลแวร์หลายตัวก็มีให้เช่นกัน

แพ็คเกจเฟิร์มแวร์ STM32CubeWBA สิ้นสุดลงแล้วview

อุปกรณ์และฮาร์ดแวร์ซีรีส์ STM32WBA ที่รองรับ

  • STM32Cube นำเสนอ Hardware Abstraction Layer (HAL) แบบพกพาสูง ซึ่งสร้างขึ้นจากสถาปัตยกรรมทั่วไป ช่วยให้หลักการ build-upon layer เช่น การใช้มิดเดิลแวร์เลเยอร์ใช้งานฟังก์ชันต่างๆ ได้โดยไม่ต้องรู้เชิงลึกว่า MCU ใดที่ใช้ สิ่งนี้ช่วยปรับปรุงการนำโค้ดไลบรารีกลับมาใช้ซ้ำได้และช่วยให้พกพาไปยังอุปกรณ์อื่นได้ง่าย
  • นอกจากนี้ ด้วยสถาปัตยกรรมแบบเลเยอร์ STM32CubeWBA จึงให้การสนับสนุนซีรีส์ STM32WBA ทั้งหมดได้อย่างเต็มรูปแบบ
  • ผู้ใช้จะต้องกำหนดแมโครที่ถูกต้องใน stm32wbaxx.h เท่านั้น
  • ตารางที่ 1 แสดงมาโครที่จะกำหนดขึ้นอยู่กับอุปกรณ์ซีรีส์ STM32WBA ที่ใช้ ต้องกำหนดแมโครนี้ในตัวประมวลผลล่วงหน้าของคอมไพเลอร์ด้วย
    ตารางที่ 1. มาโครสำหรับซีรีส์ STM32WBA
    มาโครที่กำหนดใน stm32wbaxx.h อุปกรณ์ซีรีย์ STM32WBA
    stm32wba52xx STM32WBA52CGU6, STM32WBA52KGU6, STM32WBA52CEU6, STM32WBA52KEU6
    stm32wba55xx STM32WBA55CGU6, STM32WBA55CGU6U, STM32WBA55CGU7, STM32WBA55CEU6, STM32WBA55CEU7

     

  • STM32CubeWBA มีชุด ex ที่หลากหลายampไฟล์และแอปพลิเคชันในทุกระดับทำให้ง่ายต่อการเข้าใจและใช้ไดรเวอร์ HAL หรือส่วนประกอบมิดเดิลแวร์ อดีตเหล่านี้ampทำงานบนบอร์ด STMicroelectronics ที่แสดงอยู่ในตารางที่ 2
    ตารางที่ 2. บอร์ดสำหรับซีรีส์ STM32WBA
    กระดาน อุปกรณ์ที่รองรับบอร์ด STM32WBA
    นิวคลีโอ-WBA52CG STM32WBA52CGU6
    นิวคลีโอ-WBA55CG STM32WBA55CGU6
    STM32WBA55-DK1 STM32WBA55CGU7
  • แพ็คเกจ STM32CubeWBA MCU สามารถทำงานบนฮาร์ดแวร์ที่เข้ากันได้ ผู้ใช้เพียงอัพเดตไดรเวอร์ BSP เพื่อพอร์ตพอร์ตที่ให้มา เช่นampบนบอร์ด หากรุ่นหลังมีคุณสมบัติฮาร์ดแวร์เหมือนกัน (เช่น LED, จอแสดงผล LCD และปุ่ม)
แพ็คเกจเฟิร์มแวร์สิ้นสุดลงview
  • โซลูชันแพ็คเกจ STM32CubeWBA มีให้ในแพ็คเกจ zip เดียวซึ่งมีโครงสร้างแสดงในรูปที่ 3 โครงสร้างแพ็คเกจเฟิร์มแวร์ STM32CubeWBA

    STMicroelectronics-STM32WBA-Series-เริ่มต้นใช้งาน-fig-4

  • สำหรับแต่ละบอร์ดจะมีชุดเช่นamples มาพร้อมกับโปรเจ็กต์ที่กำหนดค่าล่วงหน้าสำหรับ toolchains EWARM, MDK-ARM และ STM32CubeIDE
  • รูปที่ 4 STM32CubeWBA เช่นampจบแล้วview แสดงโครงสร้างโปรเจ็กต์สำหรับบอร์ด NUCLEO‑WBA52CG, NUCLEO-WBA55CG และ STM32WBA55G-DK1

    STMicroelectronics-STM32WBA-Series-เริ่มต้นใช้งาน-fig-5

  • อดีตampไฟล์จะถูกจัดประเภทขึ้นอยู่กับระดับ STM32Cube ที่นำไปใช้ และตั้งชื่อดังนี้:
    • ระดับ 0 เช่นampมันถูกเรียกว่า Exampเล เช่นamples_LL และอดีตamples_MIX. พวกเขาใช้ไดรเวอร์ HAL, ไดรเวอร์ LL และไดรเวอร์ HAL และ LL ตามลำดับโดยไม่มีส่วนประกอบมิดเดิลแวร์ใดๆ
    • ระดับ 1 เช่นampไฟล์เหล่านี้เรียกว่า Applications มีกรณีการใช้งานทั่วไปของส่วนประกอบมิดเดิลแวร์แต่ละรายการ แอปพลิเคชันเฟิร์มแวร์ใดๆ สำหรับบอร์ดที่กำหนดสามารถสร้างขึ้นได้อย่างรวดเร็วด้วยโปรเจ็กต์เทมเพลตที่มีอยู่ในไดเร็กทอรี Templ ates และ Templates_LL

โครงการที่เปิดใช้งาน TrustZone®

  • เปิดใช้งาน TrustZone® เช่นampชื่อไฟล์มีคำนำหน้า _TrustZone กฎนี้ยังใช้กับ Applicatio ns ด้วย (ยกเว้น TFM และ SBSFU ซึ่งมีไว้สำหรับ TrustZone®)
  • ตัวอย่างที่เปิดใช้งาน TrustZone®amples และ Applications ได้รับการจัดเตรียมไว้ด้วยโครงสร้างหลายโครงการที่ประกอบด้วยโครงการย่อยที่ปลอดภัยและไม่ปลอดภัย ดังแสดงในรูปที่ 5 โครงสร้างโครงการหลายโครงการที่ปลอดภัยและไม่ปลอดภัย
  • โปรเจ็กต์ที่เปิดใช้งาน TrustZone® ได้รับการพัฒนาตามเทมเพลตอุปกรณ์ CMSIS-5 ซึ่งขยายเพื่อรวมส่วนหัวการแบ่งพาร์ติชันระบบ file พาร์ติชั่น_ .h ซึ่งรับผิดชอบหลักในการตั้งค่าหน่วยคุณลักษณะที่ปลอดภัย (SAU), FPU และการกำหนดการขัดจังหวะแบบปลอดภัย/ไม่ปลอดภัยในสถานะการดำเนินการที่ปลอดภัย
  • การตั้งค่านี้ดำเนินการในฟังก์ชัน CMSIS SystemInit() ที่ปลอดภัย ซึ่งจะถูกเรียกเมื่อเริ่มต้นระบบก่อนที่จะเข้าสู่ฟังก์ชัน main() ของแอปพลิเคชันที่ปลอดภัย โปรดดูเอกสารแนวทางซอฟต์แวร์ของ Arm® TrustZone®-M

    STMicroelectronics-STM32WBA-Series-เริ่มต้นใช้งาน-fig-6

  • แพ็คเกจเฟิร์มแวร์แพ็คเกจ STM32CubeWBA จัดเตรียมการแบ่งพาร์ติชันหน่วยความจำเริ่มต้นในพาร์ติชัน _ .ชม fileมีอยู่ใน: \Drivers\CMSIS\Device\ST\STM32WBAxx\Include\T emlates
  • ในพาร์ติชั่นเหล่านี้ files, SAU จะถูกปิดใช้งานตามค่าเริ่มต้น ด้วยเหตุนี้ การแมปหน่วยความจำ IDAU จึงใช้สำหรับการระบุแหล่งที่มาด้านความปลอดภัย โปรดดูรูปการแบ่งพาร์ติชันแบบปลอดภัย/ไม่ปลอดภัยโดยใช้เทคโนโลยี TrustZone® ในคู่มืออ้างอิง RM0495
  • หากผู้ใช้เปิดใช้งาน SAU การกำหนดค่าภูมิภาค SAU เริ่มต้นจะถูกกำหนดไว้ล่วงหน้าในพาร์ติชัน fileดังต่อไปนี้:
    • SAU ภูมิภาค 0: 0x08080000 – 0x081FFFFFF (หน่วยความจำแฟลชครึ่งหนึ่งที่ปลอดภัยที่ไม่ปลอดภัย (512 Kbytes))
    • SAU ภูมิภาค 1: 0x0BF88000 – 0x0BF97FFF (หน่วยความจำระบบที่ไม่ปลอดภัย)
    • SAU ภูมิภาค 2: 0x0C07E000 – 0x0C07FFFF (เรียกได้อย่างปลอดภัยและไม่ปลอดภัย)
    • SAU ภูมิภาค 3: 0x20010000 – 0x2001FFFF (SRAM2 ที่ไม่ปลอดภัย (64 Kbytes))
    • SAU ภูมิภาค 4: 0x40000000 – 0x4FFFFFF (หน่วยความจำที่แมปอุปกรณ์ต่อพ่วงที่ไม่ปลอดภัย)
  • เพื่อให้ตรงกับการแบ่งพาร์ติชันเริ่มต้น อุปกรณ์ซีรีส์ 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 มีโปรเจ็กต์ที่กำหนดค่าไว้ล่วงหน้าสำหรับแต่ละ toolchain
    • readme.md และ readme.html อธิบายอดีตampพฤติกรรมและสภาพแวดล้อมที่จำเป็นเพื่อให้ทำงานได้
    • ไอโอซี file ที่ให้ผู้ใช้สามารถเปิดเฟิร์มแวร์ส่วนใหญ่ได้ เช่นampภายใน STM32CubeMX

เริ่มต้นใช้งาน STM32CubeWBA

ใช้งาน HAL ex แรกample

ในส่วนนี้จะอธิบายว่าการรัน ex แรกนั้นง่ายเพียงใดampภายใน STM32CubeWBA โดยใช้เป็นภาพประกอบถึงการสร้างตัวสลับ LED แบบธรรมดาที่ทำงานบนบอร์ด NUCLEO-WBA52CG:

  1. ดาวน์โหลดแพ็คเกจ STM32CubeWBA MCU
  2. แตกไฟล์ลงในไดเร็กทอรีที่คุณเลือก
  3. ตรวจสอบให้แน่ใจว่าไม่ได้แก้ไขโครงสร้างแพ็คเกจที่แสดงในรูปที่ 1 ขอแนะนำให้คัดลอกแพ็คเกจในตำแหน่งใกล้กับวอลลุมรูทของคุณ (หมายถึง C:\ST หรือ G:\Tests) เนื่องจาก IDE บางตัวประสบปัญหาเมื่อพาธ ความยาวยาวเกินไป

ใช้งาน TrustZone® ตัวแรกที่เปิดใช้งาน เช่นample

  • ก่อนที่จะโหลดและเรียกใช้ TrustZone® ที่เปิดใช้งาน เช่นampเลอ, จำเป็นต้องอ่านอดีตampเลอ อ่านฉันหน่อย file สำหรับการกำหนดค่าเฉพาะใดๆ ซึ่งช่วยให้มั่นใจว่ามีการเปิดใช้งานการรักษาความปลอดภัยตามที่อธิบายไว้ในส่วนที่ 4.2.1 โปรเจ็กต์ที่เปิดใช้งาน TrustZone® (TZEN=1 (ไบต์ตัวเลือกผู้ใช้))
    1. เรียกดู \Projects\NUCLEO-WBA52CG\Exampเลส.
    2. เปิด \GPIO จากนั้นเปิดโฟลเดอร์ \GPIO_IOToggle_TrustZone
    3. เปิดโปรเจ็กต์ด้วย toolchain ที่คุณต้องการ จบอย่างรวดเร็วview เกี่ยวกับวิธีการเปิด สร้าง และใช้งานอดีตampไฟล์ที่มี toolchains ที่รองรับแสดงไว้ด้านล่าง
    4. สร้างใหม่ตามลำดับโครงการที่ปลอดภัยและไม่ปลอดภัยทั้งหมด fileและโหลดอิมเมจที่ปลอดภัยและไม่ปลอดภัยลงในหน่วยความจำเป้าหมาย
    5. เรียกใช้อดีตample: เป็นประจำ แอปพลิเคชันที่ปลอดภัยจะสลับ LD2 ทุกวินาที และแอปพลิเคชันที่ไม่ปลอดภัยจะสลับ LD3 เร็วขึ้นสองเท่า สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ readme file ของอดีตampเล.
  • เพื่อเปิด สร้าง และดำเนินการอดีตampด้วย toolchains ที่รองรับ ให้ทำตามขั้นตอนด้านล่าง:
    • อบอุ่น:
      1. ภายใต้อดีตampโฟลเดอร์ le ให้เปิดโฟลเดอร์ย่อย \EWARM
      2. เปิดใช้งานพื้นที่ทำงาน Project.eww
      3. สร้างโปรเจ็กต์ที่ปลอดภัย xxxxx_S ใหม่ files: [โครงการ]>[สร้างใหม่ทั้งหมด]
      4. ตั้งค่าโครงการที่ไม่ปลอดภัย xxxxx_NS เป็นแอปพลิเคชันที่ใช้งานอยู่ (คลิกขวาที่โครงการ xxxxx_NS [ตั้งเป็นใช้งาน])
      5. สร้างโครงการที่ไม่ปลอดภัย xxxxx_NS ใหม่ files: [โครงการ]>[สร้างใหม่ทั้งหมด]
      6. แฟลชไบนารีที่ไม่ปลอดภัยด้วย [Project]>[Download]>[Download active application]
      7. ตั้งค่า xxxxx_S เป็นแอปพลิเคชันที่ใช้งานอยู่ (คลิกขวาที่โครงการ xxxxx_S [ตั้งค่าเป็นใช้งานอยู่]
      8. แฟลชไบนารีที่ปลอดภัยด้วย [ดาวน์โหลดและแก้ไขข้อบกพร่อง] (Ctrl+D)
      9. รันโปรแกรม: [Debug]>[Go(F5)]
    • MDK-ARM:
      1. เปิดเครือเครื่องมือ \MDK-ARM
      2. เปิดพื้นที่ทำงาน Multiprojects file โครงการ.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. เรียกใช้อดีตampเล.
    • 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® ที่ปิดใช้งาน เช่นampเลอ, จำเป็นต้องอ่านอดีตampเลอ อ่านฉันหน่อย file สำหรับการกำหนดค่าเฉพาะใดๆ หากไม่มีการระบุเจาะจง ตรวจสอบให้แน่ใจว่าอุปกรณ์บอร์ดปิดใช้งานระบบรักษาความปลอดภัย (TZEN=0 (ไบต์ตัวเลือกผู้ใช้)) ดูคำถามที่พบบ่อยสำหรับการดำเนินการถดถอยเผื่อเลือกเป็น TZEN = 0
    1. เรียกดู \Projects\NUCLEO-WBA52CG\Exampเลส.
    2. เปิด \GPIO จากนั้นเปิดโฟลเดอร์ \GPIO_EXTI
    3. เปิดโปรเจ็กต์ด้วย toolchain ที่คุณต้องการ จบอย่างรวดเร็วview เกี่ยวกับวิธีการเปิด สร้าง และใช้งานอดีตampไฟล์ที่มี toolchains ที่รองรับแสดงไว้ด้านล่าง
    4. สร้างใหม่ทั้งหมด fileและโหลดภาพของคุณลงในหน่วยความจำเป้าหมาย
    5. เรียกใช้อดีตample: ทุกครั้งที่กดปุ่ม [USER] ไฟ LED LD1 จะสลับ สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ readme file ของอดีตampเล.
  • เพื่อเปิด สร้าง และดำเนินการอดีตampด้วย toolchains ที่รองรับ ให้ทำตามขั้นตอนด้านล่าง:
    • อบอุ่น:
      1. ภายใต้อดีตampโฟลเดอร์ le ให้เปิดโฟลเดอร์ย่อย \EWARM
      2. เปิดใช้งานพื้นที่ทำงาน Project.eww (ชื่อพื้นที่ทำงานอาจเปลี่ยนจากชื่อหนึ่งเช่นampไปยังอีกที่หนึ่ง)
      3. สร้างใหม่ทั้งหมด files: [โครงการ]>[สร้างใหม่ทั้งหมด]
      4. โหลดอิมเมจโปรเจ็กต์: [โปรเจ็กต์]>[ดีบั๊ก]
      5. เรียกใช้โปรแกรม: [Debug]>[Go (F5)]
    • MDK-ARM:
      1. ภายใต้อดีตampโฟลเดอร์ le ให้เปิดโฟลเดอร์ย่อย \MDK-ARM
      2. เปิดใช้งานพื้นที่ทำงาน Project.uvproj (ชื่อพื้นที่ทำงานอาจเปลี่ยนจากชื่อเดิมampไปยังอีกที่หนึ่ง)
      3. สร้างใหม่ทั้งหมด files:[โครงการ]>[สร้างเป้าหมายทั้งหมดใหม่ fileNS].
      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 เพื่อเริ่มต้นระบบ อุปกรณ์ต่อพ่วง และมิดเดิลแวร์
  • การใช้โครงการที่มีอยู่โดยตรง เช่นampไฟล์จากเครื่องมือ 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)
  • สำหรับรายการโครงการที่มีอยู่ เช่นampสำหรับ STM32CubeWBA โปรดดูหมายเหตุแอปพลิเคชันเฟิร์มแวร์ STM32Cube เช่นampสำหรับซีรีส์ STM32WBA (AN5929)

แอพพลิเคชั่นไดร์เวอร์

ใบสมัคร HAL
ส่วนนี้จะอธิบายขั้นตอนที่จำเป็นในการสร้างแอปพลิเคชัน HAL แบบกำหนดเองโดยใช้ STM32CubeWBA:

  1. สร้างโครงการ
    • หากต้องการสร้างโปรเจ็กต์ใหม่ ให้เริ่มจากโปรเจ็กต์เทมเพลตที่จัดเตรียมไว้สำหรับแต่ละบอร์ดภายใต้ \Projects\ \Templates หรือจากโครงการใด ๆ ที่มีอยู่ภายใต้ \Projects\ \Exam ples หรือ \Projects\ \แอปพลิเคชัน (โดยที่ หมายถึงชื่อบอร์ด เช่น STM32CubeWBA)
    • โปรเจ็กต์เทมเพลตมีฟังก์ชันลูปหลักที่ว่างเปล่า อย่างไรก็ตาม เป็นจุดเริ่มต้นที่ดีที่จะทำความเข้าใจการตั้งค่าโปรเจ็กต์ STM32CubeWBA เทมเพลตมีลักษณะดังต่อไปนี้:
      • ประกอบด้วยซอร์สโค้ด HAL, CMSIS และไดรเวอร์ BSP ซึ่งเป็นชุดส่วนประกอบขั้นต่ำที่จำเป็นในการพัฒนาโค้ดบนบอร์ดที่กำหนด
      • ประกอบด้วยเส้นทางที่รวมไว้สำหรับส่วนประกอบเฟิร์มแวร์ทั้งหมด
      • โดยจะกำหนดอุปกรณ์ซีรีส์ STM32WBA ที่รองรับ ทำให้สามารถกำหนดค่าไดรเวอร์ CMSIS และ HAL ได้อย่างถูกต้อง
      • มีผู้ใช้ที่พร้อมใช้งาน fileกำหนดค่าไว้ล่วงหน้าตามที่แสดงด้านล่าง:
        HAL เริ่มต้นด้วยฐานเวลาเริ่มต้นด้วย Arm® core SysTick SysTick ISR ถูกนำไปใช้เพื่อจุดประสงค์ HAL_Delay()
        บันทึก: เมื่อคัดลอกโปรเจ็กต์ที่มีอยู่ไปยังตำแหน่งอื่น ตรวจสอบให้แน่ใจว่าพาธที่รวมไว้ทั้งหมดได้รับการอัปเดต
  2. เพิ่มมิดเดิลแวร์ที่จำเป็นให้กับโปรเจ็กต์ผู้ใช้ (ไม่บังคับ)
    เพื่อระบุแหล่งที่มา fileที่จะนำมาเพิ่มเข้าในโครงการ file รายการ โปรดดูเอกสารประกอบที่ให้ไว้สำหรับมิดเดิลแวร์แต่ละรายการ อ้างถึงแอปพลิเคชันภายใต้ \Projects\STM32xxx_yyy\Applications\ (ที่ไหน หมายถึงมิดเดิลแวร์สแต็ก เช่น ThreadX) เพื่อทราบว่าแหล่งใด files และต้องเพิ่มเส้นทางรวม
  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 นี้จะกำหนดค่าแหล่งที่มานาฬิกาของระบบ เวลาแฝงของหน่วยความจำแฟลช และพรีสเกลเลอร์ AHB และ APB
  6. เริ่มต้นอุปกรณ์ต่อพ่วง
    • ขั้นแรกให้เขียนฟังก์ชันต่อพ่วง HAL_PPP_MspInit ดำเนินการดังต่อไปนี้:
      • เปิดใช้งานนาฬิกาต่อพ่วง
      • กำหนดค่า GPIO อุปกรณ์ต่อพ่วง
      • กำหนดค่าช่อง DMA และเปิดใช้งานการขัดจังหวะ DMA (หากจำเป็น)
      • เปิดใช้งานการขัดจังหวะอุปกรณ์ต่อพ่วง (หากจำเป็น)
    • แก้ไข stm32xxx_it.c เพื่อเรียกตัวจัดการการขัดจังหวะที่จำเป็น (อุปกรณ์ต่อพ่วงและ DMA) หากจำเป็น
    • เขียนกระบวนการฟังก์ชันการเรียกกลับที่สมบูรณ์ หากมีการวางแผนจะใช้การขัดจังหวะอุปกรณ์ต่อพ่วงหรือ DMA
    • ในผู้ใช้ main.c fileเริ่มต้นโครงสร้างการจัดการอุปกรณ์ต่อพ่วง จากนั้นเรียกใช้ฟังก์ชัน HAL_PPP_Init() เพื่อเริ่มต้นอุปกรณ์ต่อพ่วง
  7. พัฒนาแอพพลิเคชั่น
    • ณ เวลานี้tage ระบบพร้อมและสามารถเริ่มต้นการพัฒนาโค้ดแอปพลิเคชันของผู้ใช้ได้
    • HAL มี API ที่ใช้งานง่ายและพร้อมใช้งานเพื่อกำหนดค่าอุปกรณ์ต่อพ่วง รองรับการโพล การขัดจังหวะ และโมเดลการเขียนโปรแกรม DMA เพื่อรองรับข้อกำหนดการใช้งานใดๆ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้อุปกรณ์ต่อพ่วงแต่ละชิ้น โปรดดูที่ Rich Exampชุดที่ให้มาในแพ็คเกจ STM32CubeWBA MCU
      คำเตือน: ในการใช้งาน HAL เริ่มต้น ตัวจับเวลา SysTick จะถูกใช้เป็นฐานเวลา โดยจะสร้างการขัดจังหวะในช่วงเวลาปกติ ถ้า HAL_Delay() ถูกเรียกจากกระบวนการ ISR อุปกรณ์ต่อพ่วง ตรวจสอบให้แน่ใจว่าการขัดจังหวะ SysTick มีลำดับความสำคัญสูงกว่า (ตัวเลขต่ำกว่า) มากกว่าการขัดจังหวะอุปกรณ์ต่อพ่วง มิฉะนั้น กระบวนการ ISR ของผู้เรียกจะถูกบล็อก ฟังก์ชันที่ส่งผลต่อการกำหนดค่าฐานเวลาได้รับการประกาศเป็น __weak เพื่อให้สามารถแทนที่ได้ในกรณีที่มีการใช้งานอื่นในผู้ใช้ file (ใช้เครื่องตั้งเวลาทั่วไป เช่นample หรือแหล่งเวลาอื่น) สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ HAL_TimeBase เช่นampเล.

ใบสมัคร LL
ส่วนนี้จะอธิบายขั้นตอนที่จำเป็นในการสร้างแอปพลิเคชัน LL แบบกำหนดเองโดยใช้ STM32CubeWBA

  1. สร้างโครงการ
    • หากต้องการสร้างโปรเจ็กต์ใหม่ ให้เริ่มจากโปรเจ็กต์ Templates_LL ที่จัดเตรียมไว้สำหรับแต่ละบอร์ดภายใต้ \Projects\ \Templates_LL หรือจากโครงการใด ๆ ที่มีอยู่ภายใต้ \Projects\ \อดีตampเลส_LL ( หมายถึงชื่อบอร์ด เช่น NUCLEO-WBA32CG)
    • โปรเจ็กต์เทมเพลตมีฟังก์ชันลูปหลักที่ว่างเปล่า ซึ่งเป็นจุดเริ่มต้นที่ดีในการทำความเข้าใจการตั้งค่าโปรเจ็กต์สำหรับ STM32CubeWBA ลักษณะหลักของเทมเพลตมีดังต่อไปนี้:
      • ประกอบด้วยซอร์สโค้ดของไดรเวอร์ LL และ CMSIS ซึ่งเป็นชุดส่วนประกอบขั้นต่ำที่จำเป็นในการพัฒนาโค้ดบนบอร์ดที่กำหนด
      • ประกอบด้วยเส้นทางที่รวมไว้สำหรับส่วนประกอบเฟิร์มแวร์ที่จำเป็นทั้งหมด
      • โดยจะเลือกอุปกรณ์ซีรีส์ STM32WBA ที่รองรับ และอนุญาตให้กำหนดค่าไดรเวอร์ CMSIS และ LL ได้อย่างถูกต้อง
      • ให้ผู้ใช้พร้อมใช้งาน fileที่ได้รับการกำหนดค่าไว้ล่วงหน้าดังนี้:
        ◦ main.h: LED และ USER_BUTTON เลเยอร์นามธรรมที่มีคำจำกัดความ
        ◦ main.c: การกำหนดค่านาฬิการะบบสำหรับความถี่สูงสุด
  2. ย้ายโปรเจ็กต์ที่มีอยู่ไปยังบอร์ดอื่น
    เพื่อสนับสนุนโปรเจ็กต์ที่มีอยู่ในบอร์ดเป้าหมายอื่น ให้เริ่มจากโปรเจ็กต์ Templates_LL ที่จัดเตรียมไว้สำหรับแต่ละบอร์ดและมีอยู่ภายใต้ \Projects\ \Templates_LL.
    • เลือก LL เช่นample: เพื่อค้นหากระดานที่ LL เช่นampมีการใช้ไฟล์แล้ว โปรดดูรายการ LL เช่นampSTM32CubeProjectsList.html
  3. พอร์ต LL อดีตampเลอ:
    • คัดลอก/วางโฟลเดอร์ Templates_LL – เพื่อคงแหล่งที่มาเริ่มต้น – หรืออัปเดตโปรเจ็กต์ Temp lates_LL ที่มีอยู่โดยตรง
    • จากนั้นการย้ายจะประกอบด้วยการแทนที่ Templates_LL เป็นหลัก files โดยอดีตampโปรเจ็กต์เป้าหมาย les_LL
    • เก็บชิ้นส่วนเฉพาะของบอร์ดทั้งหมดไว้ เพื่อความชัดเจน ส่วนเฉพาะของบอร์ดจะถูกทำเครื่องหมายด้วยส่วนเฉพาะ tags:

      STMicroelectronics-STM32WBA-Series-เริ่มต้นใช้งาน-fig-7

    • ดังนั้นขั้นตอนการพอร์ตหลักๆ จึงมีดังต่อไปนี้:
      • แทนที่ stm32wbaxx_it.h file
      • แทนที่ stm32wbaxx_it.c file
      • เปลี่ยน main.h file และอัปเดต: คงคำจำกัดความ LED และปุ่มผู้ใช้ของเทมเพลต LL ไว้ภายใต้การกำหนดค่าเฉพาะของบอร์ด tags.
      • เปลี่ยน main.c file และอัปเดต:
    • คงการกำหนดค่านาฬิกาของฟังก์ชันเทมเพลต SystemClock_Config() LL ไว้ภายใต้การกำหนดค่าเฉพาะของบอร์ด tags.
    • ขึ้นอยู่กับคำจำกัดความของ LED ให้แทนที่แต่ละ LDx ที่เกิดขึ้นด้วย LDy อื่นที่มีอยู่ใน main.h file.
    • ด้วยการปรับเปลี่ยนเหล่านี้ เช่นampตอนนี้ le ทำงานบนกระดานเป้าหมาย

แอปพลิเคชั่นความปลอดภัย
แพ็คเกจนี้มาพร้อมกับแอปพลิเคชันความปลอดภัย

แอปพลิเคชัน 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 สำหรับรายละเอียดเพิ่มเติม โปรดดูส่วนที่ 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 เช่นample อธิบายวิธีการผสม HAL และ LL
  • API การเริ่มต้น LL เปิดใช้งานอย่างไร
    • คำจำกัดความของ API การเริ่มต้น LL และทรัพยากรที่เกี่ยวข้อง (โครงสร้าง ตัวอักษร และต้นแบบ) ถูกกำหนดเงื่อนไขโดยสวิตช์การคอมไพล์ USE_FULL_LL_DRIVER
    • เพื่อให้สามารถใช้ API การเริ่มต้น LL ได้ ให้เพิ่มสวิตช์นี้ในตัวประมวลผลล่วงหน้าของคอมไพเลอร์ toolchain
  • STM32CubeMX จะสร้างโค้ดจากซอฟต์แวร์ฝังตัวได้อย่างไร
    STM32CubeMX มีความรู้ในตัวเกี่ยวกับไมโครคอนโทรลเลอร์ STM32 รวมถึงอุปกรณ์ต่อพ่วงและซอฟต์แวร์ที่ให้การแสดงภาพกราฟิกแก่ผู้ใช้และสร้าง *.h หรือ *.c fileขึ้นอยู่กับการกำหนดค่าของผู้ใช้

หมายเหตุสำคัญ - โปรดอ่านอย่างละเอียด

  • STMicroelectronics NV และบริษัทในเครือ (“ST”) ขอสงวนสิทธิ์ในการเปลี่ยนแปลง แก้ไข ปรับปรุง ปรับเปลี่ยน และปรับปรุงผลิตภัณฑ์ ST และ/หรือเอกสารนี้ได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ผู้ซื้อควรได้รับข้อมูลล่าสุดที่เกี่ยวข้องกับผลิตภัณฑ์ ST ก่อนทำการสั่งซื้อ ผลิตภัณฑ์ ST จะถูกขายตามข้อกำหนดและเงื่อนไขการขายของ ST ที่ใช้ในขณะที่ยืนยันคำสั่งซื้อ
  • ผู้ซื้อจะต้องรับผิดชอบแต่เพียงผู้เดียวในการเลือก การคัดเลือก และการใช้ผลิตภัณฑ์ ST และ ST จะไม่รับผิดชอบต่อความช่วยเหลือในการใช้งานหรือการออกแบบผลิตภัณฑ์ของผู้ซื้อ
  • ST ไม่อนุญาตให้มีใบอนุญาตใดๆ ไม่ว่าโดยชัดแจ้งหรือโดยนัยในสิทธิในทรัพย์สินทางปัญญาใดๆ
  • การขายต่อผลิตภัณฑ์ ST ที่มีข้อกำหนดแตกต่างจากข้อมูลที่กำหนดไว้ในที่นี้ จะทำให้การรับประกันใดๆ ที่ ST ให้ไว้สำหรับผลิตภัณฑ์ดังกล่าวเป็นโมฆะ
  • ST และโลโก้ ST เป็นเครื่องหมายการค้าของ ST สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องหมายการค้า ST โปรดดูที่ www.st.com/trademarks ชื่อผลิตภัณฑ์หรือบริการอื่นๆ ทั้งหมดเป็นทรัพย์สินของเจ้าของที่เกี่ยวข้อง
  • ข้อมูลในเอกสารฉบับนี้แทนที่และเปลี่ยนแทนข้อมูลที่เคยให้ไว้ก่อนหน้านี้ในเอกสารฉบับก่อนหน้าใดๆ
  • © 2023 STMicroelectronics – สงวนลิขสิทธิ์

เอกสาร / แหล่งข้อมูล

การเริ่มต้นใช้งานซีรีส์ STMicroelectronics STM32WBA [พีดีเอฟ] คู่มือการใช้งาน
ซีรีส์ STM32WBA เริ่มต้นใช้งาน เริ่มต้นใช้งาน

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *