การเริ่มต้นใช้งานซีรีส์ STMicroelectronics STM32WBA
ข้อมูลสินค้า
ข้อมูลจำเพาะ:
- ชื่อสินค้า : แพ็คเกจ 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
สถาปัตยกรรม STM32CubeWBA จบลงแล้วview
โซลูชันแพ็กเกจ STM32CubeWBA MCU สร้างขึ้นโดยมีระดับอิสระสามระดับที่สามารถโต้ตอบได้อย่างง่ายดายตามที่อธิบายไว้ในรูปที่ 2 สถาปัตยกรรมแพ็กเกจ STM32CubeWBA MCU
ระดับ 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 แบ่งออกเป็นสองประเภท:- API ทั่วไปซึ่งมีฟังก์ชันทั่วไปและฟังก์ชันทั่วไปให้กับไมโครคอนโทรลเลอร์ซีรีส์ STM32 ทั้งหมด
- 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
- ยูเอสบีเอ็กซ์
- Azure® RTOS ThreadX: ระบบปฏิบัติการแบบเรียลไทม์ (RTOS) ออกแบบมาสำหรับระบบฝังตัวที่มีโหมดการทำงานสองโหมด
- 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 ที่แข็งแกร่ง รองรับเซ็นเซอร์สัมผัสความใกล้เคียง ปุ่มสัมผัส เซ็นเซอร์สัมผัสเชิงเส้นและแบบหมุน มันขึ้นอยู่กับหลักการได้มาซึ่งการถ่ายโอนประจุพื้นผิวที่ได้รับการพิสูจน์แล้ว
- Microsoft® Azure® RTOS
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
- สำหรับแต่ละบอร์ดจะมีชุดเช่นamples มาพร้อมกับโปรเจ็กต์ที่กำหนดค่าล่วงหน้าสำหรับ toolchains EWARM, MDK-ARM และ STM32CubeIDE
- รูปที่ 4 STM32CubeWBA เช่นampจบแล้วview แสดงโครงสร้างโปรเจ็กต์สำหรับบอร์ด NUCLEO‑WBA52CG, NUCLEO-WBA55CG และ STM32WBA55G-DK1
- อดีต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
- แพ็คเกจเฟิร์มแวร์แพ็คเกจ 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:
- ดาวน์โหลดแพ็คเกจ STM32CubeWBA MCU
- แตกไฟล์ลงในไดเร็กทอรีที่คุณเลือก
- ตรวจสอบให้แน่ใจว่าไม่ได้แก้ไขโครงสร้างแพ็คเกจที่แสดงในรูปที่ 1 ขอแนะนำให้คัดลอกแพ็คเกจในตำแหน่งใกล้กับวอลลุมรูทของคุณ (หมายถึง C:\ST หรือ G:\Tests) เนื่องจาก IDE บางตัวประสบปัญหาเมื่อพาธ ความยาวยาวเกินไป
ใช้งาน TrustZone® ตัวแรกที่เปิดใช้งาน เช่นample
- ก่อนที่จะโหลดและเรียกใช้ TrustZone® ที่เปิดใช้งาน เช่นampเลอ, จำเป็นต้องอ่านอดีตampเลอ อ่านฉันหน่อย file สำหรับการกำหนดค่าเฉพาะใดๆ ซึ่งช่วยให้มั่นใจว่ามีการเปิดใช้งานการรักษาความปลอดภัยตามที่อธิบายไว้ในส่วนที่ 4.2.1 โปรเจ็กต์ที่เปิดใช้งาน TrustZone® (TZEN=1 (ไบต์ตัวเลือกผู้ใช้))
- เรียกดู \Projects\NUCLEO-WBA52CG\Exampเลส.
- เปิด \GPIO จากนั้นเปิดโฟลเดอร์ \GPIO_IOToggle_TrustZone
- เปิดโปรเจ็กต์ด้วย toolchain ที่คุณต้องการ จบอย่างรวดเร็วview เกี่ยวกับวิธีการเปิด สร้าง และใช้งานอดีตampไฟล์ที่มี toolchains ที่รองรับแสดงไว้ด้านล่าง
- สร้างใหม่ตามลำดับโครงการที่ปลอดภัยและไม่ปลอดภัยทั้งหมด fileและโหลดอิมเมจที่ปลอดภัยและไม่ปลอดภัยลงในหน่วยความจำเป้าหมาย
- เรียกใช้อดีตample: เป็นประจำ แอปพลิเคชันที่ปลอดภัยจะสลับ LD2 ทุกวินาที และแอปพลิเคชันที่ไม่ปลอดภัยจะสลับ LD3 เร็วขึ้นสองเท่า สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ readme file ของอดีตampเล.
- เพื่อเปิด สร้าง และดำเนินการอดีตampด้วย toolchains ที่รองรับ ให้ทำตามขั้นตอนด้านล่าง:
- อบอุ่น:
- ภายใต้อดีตampโฟลเดอร์ le ให้เปิดโฟลเดอร์ย่อย \EWARM
- เปิดใช้งานพื้นที่ทำงาน Project.eww
- สร้างโปรเจ็กต์ที่ปลอดภัย xxxxx_S ใหม่ files: [โครงการ]>[สร้างใหม่ทั้งหมด]
- ตั้งค่าโครงการที่ไม่ปลอดภัย xxxxx_NS เป็นแอปพลิเคชันที่ใช้งานอยู่ (คลิกขวาที่โครงการ xxxxx_NS [ตั้งเป็นใช้งาน])
- สร้างโครงการที่ไม่ปลอดภัย xxxxx_NS ใหม่ files: [โครงการ]>[สร้างใหม่ทั้งหมด]
- แฟลชไบนารีที่ไม่ปลอดภัยด้วย [Project]>[Download]>[Download active application]
- ตั้งค่า xxxxx_S เป็นแอปพลิเคชันที่ใช้งานอยู่ (คลิกขวาที่โครงการ xxxxx_S [ตั้งค่าเป็นใช้งานอยู่]
- แฟลชไบนารีที่ปลอดภัยด้วย [ดาวน์โหลดและแก้ไขข้อบกพร่อง] (Ctrl+D)
- รันโปรแกรม: [Debug]>[Go(F5)]
- MDK-ARM:
- เปิดเครือเครื่องมือ \MDK-ARM
- เปิดพื้นที่ทำงาน Multiprojects file โครงการ.uvmpw.
- เลือกโครงการ xxxxx_s เป็นแอปพลิเคชันที่ใช้งานอยู่ ([ตั้งเป็นโครงการที่ใช้งานอยู่])
- สร้างโปรเจ็กต์ xxxxx_s
- เลือกโปรเจ็กต์ xxxxx_ns เป็นโปรเจ็กต์ที่ใช้งานอยู่ ([ตั้งเป็นโปรเจ็กต์ที่ใช้งานอยู่])
- สร้างโปรเจ็กต์ xxxxx_ns
- โหลดไบนารีที่ไม่ปลอดภัย ([F8]) ซึ่งจะดาวน์โหลด \MDK-ARM\xxxxx_ns\Exe\xxxxx_ns.axf ไปยังหน่วยความจำแฟลช)
- เลือกโครงการ Project_s เป็นโครงการที่ใช้งานอยู่ ([ตั้งเป็นโครงการที่ใช้งานอยู่])
- โหลดไบนารีที่ปลอดภัย ([F8]) ซึ่งจะดาวน์โหลด \MDK-ARM\xxxxx_s\Exe\xxxxx_s.axf ไปยังหน่วยความจำแฟลช)
- เรียกใช้อดีตampเล.
- STM32CubeIDE:
- เปิดห่วงโซ่เครื่องมือ STM32CubeIDE
- เปิดพื้นที่ทำงาน Multiprojects file .โครงการ.
- สร้างโครงการ xxxxx_Secure ใหม่
- สร้างโครงการ xxxxx_NonSecure ใหม่
- เปิดแอปพลิเคชัน [Debug as STM32 Cortex-M C/C++] สำหรับโปรเจ็กต์ที่ปลอดภัย
- ในหน้าต่าง [แก้ไขการกำหนดค่า] เลือกแผง [เริ่มต้น] และเพิ่มโหลดรูปภาพและสัญลักษณ์ของโครงการที่ไม่ปลอดภัย
สำคัญ: ต้องโหลดโปรเจ็กต์ที่ไม่ปลอดภัยก่อนโปรเจ็กต์ที่ปลอดภัย - คลิก [ตกลง]
- เรียกใช้อดีตampในมุมมองการดีบัก
- อบอุ่น:
การเรียกใช้ TrustZone® ตัวแรกที่ปิดใช้งาน เช่นample
- ก่อนที่จะโหลดและเรียกใช้ TrustZone® ที่ปิดใช้งาน เช่นampเลอ, จำเป็นต้องอ่านอดีตampเลอ อ่านฉันหน่อย file สำหรับการกำหนดค่าเฉพาะใดๆ หากไม่มีการระบุเจาะจง ตรวจสอบให้แน่ใจว่าอุปกรณ์บอร์ดปิดใช้งานระบบรักษาความปลอดภัย (TZEN=0 (ไบต์ตัวเลือกผู้ใช้)) ดูคำถามที่พบบ่อยสำหรับการดำเนินการถดถอยเผื่อเลือกเป็น TZEN = 0
- เรียกดู \Projects\NUCLEO-WBA52CG\Exampเลส.
- เปิด \GPIO จากนั้นเปิดโฟลเดอร์ \GPIO_EXTI
- เปิดโปรเจ็กต์ด้วย toolchain ที่คุณต้องการ จบอย่างรวดเร็วview เกี่ยวกับวิธีการเปิด สร้าง และใช้งานอดีตampไฟล์ที่มี toolchains ที่รองรับแสดงไว้ด้านล่าง
- สร้างใหม่ทั้งหมด fileและโหลดภาพของคุณลงในหน่วยความจำเป้าหมาย
- เรียกใช้อดีตample: ทุกครั้งที่กดปุ่ม [USER] ไฟ LED LD1 จะสลับ สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ readme file ของอดีตampเล.
- เพื่อเปิด สร้าง และดำเนินการอดีตampด้วย toolchains ที่รองรับ ให้ทำตามขั้นตอนด้านล่าง:
- อบอุ่น:
- ภายใต้อดีตampโฟลเดอร์ le ให้เปิดโฟลเดอร์ย่อย \EWARM
- เปิดใช้งานพื้นที่ทำงาน Project.eww (ชื่อพื้นที่ทำงานอาจเปลี่ยนจากชื่อหนึ่งเช่นampไปยังอีกที่หนึ่ง)
- สร้างใหม่ทั้งหมด files: [โครงการ]>[สร้างใหม่ทั้งหมด]
- โหลดอิมเมจโปรเจ็กต์: [โปรเจ็กต์]>[ดีบั๊ก]
- เรียกใช้โปรแกรม: [Debug]>[Go (F5)]
- MDK-ARM:
- ภายใต้อดีตampโฟลเดอร์ le ให้เปิดโฟลเดอร์ย่อย \MDK-ARM
- เปิดใช้งานพื้นที่ทำงาน Project.uvproj (ชื่อพื้นที่ทำงานอาจเปลี่ยนจากชื่อเดิมampไปยังอีกที่หนึ่ง)
- สร้างใหม่ทั้งหมด files:[โครงการ]>[สร้างเป้าหมายทั้งหมดใหม่ fileNS].
- โหลดอิมเมจโปรเจ็กต์: [Debug]>[Start/Stop Debug Session]
- รันโปรแกรม: [Debug]>[Run (F5)]
- STM32CubeIDE:
- เปิดห่วงโซ่เครื่องมือ STM32CubeIDE
- คลิก [File]>[สลับพื้นที่ทำงาน]>[อื่นๆ] และเรียกดูไดเร็กทอรีพื้นที่ทำงาน STM32CubeIDE
- คลิก [File]>[นำเข้า] เลือก [ทั่วไป]>[โครงการที่มีอยู่ในพื้นที่ทำงาน] จากนั้นคลิก [ถัดไป]
- เรียกดูไดเร็กทอรีเวิร์กสเปซ STM32CubeIDE และเลือกโปรเจ็กต์
- สร้างโครงการใหม่ทั้งหมด files: เลือกโปรเจ็กต์ในหน้าต่าง [Project Explorer] จากนั้นคลิกเมนู [Project]>[Build project]
- รันโปรแกรม: [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 ให้ทำตามขั้นตอนทีละขั้นตอน:
- เลือกไมโครคอนโทรลเลอร์ STM32 ที่ตรงกับชุดอุปกรณ์ต่อพ่วงที่ต้องการ
- กำหนดค่าซอฟต์แวร์ฝังตัวที่จำเป็นทั้งหมดโดยใช้ตัวแก้ปัญหาความขัดแย้งของ pinout ตัวช่วยการตั้งค่าแผนผังนาฬิกา เครื่องคำนวณการใช้พลังงาน และยูทิลิตี้ที่ทำการกำหนดค่าอุปกรณ์ต่อพ่วง MCU (เช่น GPIO หรือ USART) และสแต็กมิดเดิลแวร์ (เช่น USB)
- สร้างรหัส C เริ่มต้นตามการกำหนดค่าที่เลือก รหัสนี้พร้อมใช้งานภายในสภาพแวดล้อมการพัฒนาต่างๆ รหัสผู้ใช้จะถูกเก็บไว้ในการสร้างรหัสครั้งถัดไป
- สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ STM32CubeMX โปรดดูคู่มือผู้ใช้ STM32CubeMX สำหรับการกำหนดค่า STM32 และการเริ่มต้นการสร้างโค้ด C (UM1718)
- สำหรับรายการโครงการที่มีอยู่ เช่นampสำหรับ STM32CubeWBA โปรดดูหมายเหตุแอปพลิเคชันเฟิร์มแวร์ STM32Cube เช่นampสำหรับซีรีส์ STM32WBA (AN5929)
แอพพลิเคชั่นไดร์เวอร์
ใบสมัคร HAL
ส่วนนี้จะอธิบายขั้นตอนที่จำเป็นในการสร้างแอปพลิเคชัน HAL แบบกำหนดเองโดยใช้ STM32CubeWBA:
- สร้างโครงการ
- หากต้องการสร้างโปรเจ็กต์ใหม่ ให้เริ่มจากโปรเจ็กต์เทมเพลตที่จัดเตรียมไว้สำหรับแต่ละบอร์ดภายใต้ \Projects\ \Templates หรือจากโครงการใด ๆ ที่มีอยู่ภายใต้ \Projects\ \Exam ples หรือ \Projects\ \แอปพลิเคชัน (โดยที่ หมายถึงชื่อบอร์ด เช่น STM32CubeWBA)
- โปรเจ็กต์เทมเพลตมีฟังก์ชันลูปหลักที่ว่างเปล่า อย่างไรก็ตาม เป็นจุดเริ่มต้นที่ดีที่จะทำความเข้าใจการตั้งค่าโปรเจ็กต์ STM32CubeWBA เทมเพลตมีลักษณะดังต่อไปนี้:
- ประกอบด้วยซอร์สโค้ด HAL, CMSIS และไดรเวอร์ BSP ซึ่งเป็นชุดส่วนประกอบขั้นต่ำที่จำเป็นในการพัฒนาโค้ดบนบอร์ดที่กำหนด
- ประกอบด้วยเส้นทางที่รวมไว้สำหรับส่วนประกอบเฟิร์มแวร์ทั้งหมด
- โดยจะกำหนดอุปกรณ์ซีรีส์ STM32WBA ที่รองรับ ทำให้สามารถกำหนดค่าไดรเวอร์ CMSIS และ HAL ได้อย่างถูกต้อง
- มีผู้ใช้ที่พร้อมใช้งาน fileกำหนดค่าไว้ล่วงหน้าตามที่แสดงด้านล่าง:
HAL เริ่มต้นด้วยฐานเวลาเริ่มต้นด้วย Arm® core SysTick SysTick ISR ถูกนำไปใช้เพื่อจุดประสงค์ HAL_Delay()
บันทึก: เมื่อคัดลอกโปรเจ็กต์ที่มีอยู่ไปยังตำแหน่งอื่น ตรวจสอบให้แน่ใจว่าพาธที่รวมไว้ทั้งหมดได้รับการอัปเดต
- เพิ่มมิดเดิลแวร์ที่จำเป็นให้กับโปรเจ็กต์ผู้ใช้ (ไม่บังคับ)
เพื่อระบุแหล่งที่มา fileที่จะนำมาเพิ่มเข้าในโครงการ file รายการ โปรดดูเอกสารประกอบที่ให้ไว้สำหรับมิดเดิลแวร์แต่ละรายการ อ้างถึงแอปพลิเคชันภายใต้ \Projects\STM32xxx_yyy\Applications\ (ที่ไหน หมายถึงมิดเดิลแวร์สแต็ก เช่น ThreadX) เพื่อทราบว่าแหล่งใด files และต้องเพิ่มเส้นทางรวม - กำหนดค่าส่วนประกอบเฟิร์มแวร์
ส่วนประกอบ HAL และมิดเดิลแวร์นำเสนอชุดตัวเลือกการกำหนดค่าเวลาบิลด์โดยใช้มาโคร #define ที่ประกาศในส่วนหัว file- การกำหนดค่าเทมเพลต file มีไว้ภายในแต่ละองค์ประกอบ ซึ่งจะต้องคัดลอกไปยังโฟลเดอร์โครงการ (โดยปกติจะเป็นการกำหนดค่า file ชื่อ xxx_conf_template.h ต้องลบคำว่า _template ออกเมื่อคัดลอกไปยังโฟลเดอร์โปรเจ็กต์) การกำหนดค่า file ให้ข้อมูลเพียงพอที่จะเข้าใจผลกระทบของตัวเลือกการกำหนดค่าแต่ละรายการ ข้อมูลรายละเอียดเพิ่มเติมมีอยู่ในเอกสารที่ให้ไว้สำหรับแต่ละส่วนประกอบ - เริ่มไลบรารี HAL
หลังจากข้ามไปที่โปรแกรมหลักแล้ว โค้ดแอปพลิเคชันจะต้องเรียก HAL_Init() API เพื่อเริ่มต้นไลบรารี HAL ซึ่งดำเนินงานต่อไปนี้:- การกำหนดค่าการดึงข้อมูลหน่วยความจำแฟลชล่วงหน้าและลำดับความสำคัญการขัดจังหวะ SysTick (ผ่านมาโครที่กำหนดใน st m32wbaxx_hal_conf.h)
- การกำหนดค่า SysTick เพื่อสร้างการขัดจังหวะทุก ๆ มิลลิวินาทีที่ลำดับความสำคัญการขัดจังหวะ SysTick TICK_INT_PRIO ที่กำหนดไว้ใน stm32wbaxx_hal_conf.h
- การตั้งค่าลำดับความสำคัญของกลุ่ม NVIC เป็น 0
- การเรียกฟังก์ชันการโทรกลับ HAL_MspInit() ที่กำหนดไว้ในผู้ใช้ stm32wbaxx_hal_msp.c file เพื่อดำเนินการเริ่มต้นฮาร์ดแวร์ระดับต่ำทั่วโลก
- กำหนดค่านาฬิกาของระบบ
การกำหนดค่านาฬิการะบบทำได้โดยการเรียก API สองตัวที่อธิบายไว้ด้านล่าง:- HAL_RCC_OscConfig(): API นี้จะกำหนดค่าออสซิลเลเตอร์ภายในและภายนอก ผู้ใช้เลือกที่จะกำหนดค่าออสซิลเลเตอร์หนึ่งตัวหรือทั้งหมด
- HAL_RCC_ClockConfig(): API นี้จะกำหนดค่าแหล่งที่มานาฬิกาของระบบ เวลาแฝงของหน่วยความจำแฟลช และพรีสเกลเลอร์ AHB และ APB
- เริ่มต้นอุปกรณ์ต่อพ่วง
- ขั้นแรกให้เขียนฟังก์ชันต่อพ่วง HAL_PPP_MspInit ดำเนินการดังต่อไปนี้:
- เปิดใช้งานนาฬิกาต่อพ่วง
- กำหนดค่า GPIO อุปกรณ์ต่อพ่วง
- กำหนดค่าช่อง DMA และเปิดใช้งานการขัดจังหวะ DMA (หากจำเป็น)
- เปิดใช้งานการขัดจังหวะอุปกรณ์ต่อพ่วง (หากจำเป็น)
- แก้ไข stm32xxx_it.c เพื่อเรียกตัวจัดการการขัดจังหวะที่จำเป็น (อุปกรณ์ต่อพ่วงและ DMA) หากจำเป็น
- เขียนกระบวนการฟังก์ชันการเรียกกลับที่สมบูรณ์ หากมีการวางแผนจะใช้การขัดจังหวะอุปกรณ์ต่อพ่วงหรือ DMA
- ในผู้ใช้ main.c fileเริ่มต้นโครงสร้างการจัดการอุปกรณ์ต่อพ่วง จากนั้นเรียกใช้ฟังก์ชัน HAL_PPP_Init() เพื่อเริ่มต้นอุปกรณ์ต่อพ่วง
- ขั้นแรกให้เขียนฟังก์ชันต่อพ่วง HAL_PPP_MspInit ดำเนินการดังต่อไปนี้:
- พัฒนาแอพพลิเคชั่น
- ณ เวลานี้tage ระบบพร้อมและสามารถเริ่มต้นการพัฒนาโค้ดแอปพลิเคชันของผู้ใช้ได้
- HAL มี API ที่ใช้งานง่ายและพร้อมใช้งานเพื่อกำหนดค่าอุปกรณ์ต่อพ่วง รองรับการโพล การขัดจังหวะ และโมเดลการเขียนโปรแกรม DMA เพื่อรองรับข้อกำหนดการใช้งานใดๆ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้อุปกรณ์ต่อพ่วงแต่ละชิ้น โปรดดูที่ Rich Exampชุดที่ให้มาในแพ็คเกจ STM32CubeWBA MCU
คำเตือน: ในการใช้งาน HAL เริ่มต้น ตัวจับเวลา SysTick จะถูกใช้เป็นฐานเวลา โดยจะสร้างการขัดจังหวะในช่วงเวลาปกติ ถ้า HAL_Delay() ถูกเรียกจากกระบวนการ ISR อุปกรณ์ต่อพ่วง ตรวจสอบให้แน่ใจว่าการขัดจังหวะ SysTick มีลำดับความสำคัญสูงกว่า (ตัวเลขต่ำกว่า) มากกว่าการขัดจังหวะอุปกรณ์ต่อพ่วง มิฉะนั้น กระบวนการ ISR ของผู้เรียกจะถูกบล็อก ฟังก์ชันที่ส่งผลต่อการกำหนดค่าฐานเวลาได้รับการประกาศเป็น __weak เพื่อให้สามารถแทนที่ได้ในกรณีที่มีการใช้งานอื่นในผู้ใช้ file (ใช้เครื่องตั้งเวลาทั่วไป เช่นample หรือแหล่งเวลาอื่น) สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ HAL_TimeBase เช่นampเล.
ใบสมัคร LL
ส่วนนี้จะอธิบายขั้นตอนที่จำเป็นในการสร้างแอปพลิเคชัน LL แบบกำหนดเองโดยใช้ STM32CubeWBA
- สร้างโครงการ
- หากต้องการสร้างโปรเจ็กต์ใหม่ ให้เริ่มจากโปรเจ็กต์ Templates_LL ที่จัดเตรียมไว้สำหรับแต่ละบอร์ดภายใต้ \Projects\ \Templates_LL หรือจากโครงการใด ๆ ที่มีอยู่ภายใต้ \Projects\ \อดีตampเลส_LL ( หมายถึงชื่อบอร์ด เช่น NUCLEO-WBA32CG)
- โปรเจ็กต์เทมเพลตมีฟังก์ชันลูปหลักที่ว่างเปล่า ซึ่งเป็นจุดเริ่มต้นที่ดีในการทำความเข้าใจการตั้งค่าโปรเจ็กต์สำหรับ STM32CubeWBA ลักษณะหลักของเทมเพลตมีดังต่อไปนี้:
- ประกอบด้วยซอร์สโค้ดของไดรเวอร์ LL และ CMSIS ซึ่งเป็นชุดส่วนประกอบขั้นต่ำที่จำเป็นในการพัฒนาโค้ดบนบอร์ดที่กำหนด
- ประกอบด้วยเส้นทางที่รวมไว้สำหรับส่วนประกอบเฟิร์มแวร์ที่จำเป็นทั้งหมด
- โดยจะเลือกอุปกรณ์ซีรีส์ STM32WBA ที่รองรับ และอนุญาตให้กำหนดค่าไดรเวอร์ CMSIS และ LL ได้อย่างถูกต้อง
- ให้ผู้ใช้พร้อมใช้งาน fileที่ได้รับการกำหนดค่าไว้ล่วงหน้าดังนี้:
◦ main.h: LED และ USER_BUTTON เลเยอร์นามธรรมที่มีคำจำกัดความ
◦ main.c: การกำหนดค่านาฬิการะบบสำหรับความถี่สูงสุด
- ย้ายโปรเจ็กต์ที่มีอยู่ไปยังบอร์ดอื่น
เพื่อสนับสนุนโปรเจ็กต์ที่มีอยู่ในบอร์ดเป้าหมายอื่น ให้เริ่มจากโปรเจ็กต์ Templates_LL ที่จัดเตรียมไว้สำหรับแต่ละบอร์ดและมีอยู่ภายใต้ \Projects\ \Templates_LL.- เลือก LL เช่นample: เพื่อค้นหากระดานที่ LL เช่นampมีการใช้ไฟล์แล้ว โปรดดูรายการ LL เช่นampSTM32CubeProjectsList.html
- พอร์ต LL อดีตampเลอ:
- คัดลอก/วางโฟลเดอร์ Templates_LL – เพื่อคงแหล่งที่มาเริ่มต้น – หรืออัปเดตโปรเจ็กต์ Temp lates_LL ที่มีอยู่โดยตรง
- จากนั้นการย้ายจะประกอบด้วยการแทนที่ Templates_LL เป็นหลัก files โดยอดีตampโปรเจ็กต์เป้าหมาย les_LL
- เก็บชิ้นส่วนเฉพาะของบอร์ดทั้งหมดไว้ เพื่อความชัดเจน ส่วนเฉพาะของบอร์ดจะถูกทำเครื่องหมายด้วยส่วนเฉพาะ tags:
- ดังนั้นขั้นตอนการพอร์ตหลักๆ จึงมีดังต่อไปนี้:
- แทนที่ 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 เริ่มต้นใช้งาน เริ่มต้นใช้งาน |