單元一:嵌入式物聯網ARM Cortex-Mx系統韌體開發
現今產業越來越多的AIoT應用需要高效能、功能豐富且高度整合的微控制器。早期的Cotex M3/M4等級的MCU已經逐漸無法勝任,CM3/4在高效能、功能豐富且高度整合的應用上也不適用。ST公司在2020年發布的STM32H7xx系列的高效能MCU、並推出STM32Cube生態系統和硬體工具可以開發高效能、功能豐富且高度整合的應用程式。
STM32H7的自帶週邊比較之前的任何STM3型號功能都要強勁,更換了ADC、DMA、USART ...等重要週邊設備。如ADC換成了3.6Msps 16位元分辨率、USART支援Baud-Rate自適應…等等。與之前STM32F1、F4系列晶片在週邊的設定技術就有一定程度的不同,因此初學Cortex Mx或有經驗的工程師,希望快速進入AIoT高效能、功能豐富且高度整合的應用設計工程師,首選使用與學習STM32H7系列的MPU微控制器。
STM32H7/CM7晶片功能強大,軟體複雜度也相對提高許多,適合用於高效能Edge AIoT應用或具有大量通信需求的應用:如工業控制、醫療儀器、資料處理和網路通訊產品。
v 課程目標:
1. 瞭解Cortex-M7系列結構及其指令集,及熟悉Cortex-M7系列結構之嵌入式程式設計的方法。
2. 瞭解STM32處理器各個介面開發的原理。
v 適合對象:熟悉 C & C++ 語言、數位邏輯
序
|
日期
|
課程內容
|
1
|
114/01/10
(五)
09:30-17:30
|
(1) 軟體開發工具( STM32CubeMx / STM32CubeIDE )介紹、安裝與使用
(2) Cortex-M Kernel結構
(3) ARM-Cortex-M指令集
(4) 基於Cortex-M的嵌入式軟體設計:Programmer's Model、System Control、Memory Map、Exceptions、Clocking and Resets、Power Management、Nested Vectored Interrupt Controller(NVIC)、Memory Protection Unit(MPU)、Debug
★【LAB1】第一支ARM-Cortex-M 程式:Coding完成Cortex Mx Vector table( Stack、Reset_Handler…) 及各種ARM ASM範例
★【LAB2】實作完成「Startup Code to C」實驗
★【LAB3】Explicate the Startup Code(俗稱Booting Code) and How to Modify
(5) STM32H7處理器簡介:CPU架構、記憶體及啟動模式、周邊模組
(6) STM32H7介面開發-1:GPIO基本輸入與輸出
★【LAB4】 GPIO按鍵及LED閃爍實驗(包含講解開發板電路圖及MCU、IC之Datasheet查閱)
|
2
|
114/01/15
(三)
09:30-17:30
|
(1) CM7韌體撰寫方式介紹:1. CM7 MCU’s Register Access、2. CM7 Standard Peripherals Library
(2) STM32H7介面開發-2:中斷/NVIC(巢式中斷)、串列介面、RTC/ALARM實驗、PLL
★【基礎LAB1】:LED實驗、按鍵輸入實驗、EXTI中斷(NVIC)實驗、串列介面實驗、RTC/ALARM實驗、PLL Control實驗
|
3
|
114/01/17
(五)
09:30-17:30
|
(1) STM32H7介面開發-3: SysTick and Delay、Watchdog
★【基礎LAB2】: SysTick/Delay實驗、Watchdog實驗
(2) STM32H7進階介面開發-1: DMA/ADC、SD Interface、USB Device
★【進階LAB1】: DMA/ADC介面講解與實驗、SD卡實驗、USB Device實驗
|
4
|
114/01/22
(三)
09:30-17:30
|
(1) STM32H7進階介面開發-2: I2C、SPI、TFT/LTDC、DMA2D
★【進階LAB2】:溫濕度I2C模組實驗、G-sensor SPI模組實驗、網路介面實驗(TCP/IP + Web Server+控制板上 IO )、LCD TFT+FATS檔案系統實驗
|
※ 因不可預測之突發因素,主辦單位得保留課程之變更權利。
單元二:嵌入式Azure RTOS ThreadX即時作業系統移植與開發
嵌入式Azure RTOS是一款適用於深度內嵌應用程式設計的進階即時作業系統,它是一個開源RTOS,核心為ThreadX即時內核。其優點有提供進階排程、通訊、同步處理、定時器、記憶體管理和中斷管理功能。經過嚴格的測試,通過了工業認證IEC-61508 SIL 4、醫療認證IEC-62304 Class C、汽車認證IEC-61508 ASIL D和運輸/鐵路認證EN50128,因此本課程中主要使用之Azure RTOS ThreadX 與GUIX皆可用於安全關鍵型系統。
此外,Azure RTOS ThreadX有許多進階功能:包括其picokernel™架構、先佔臨界值™排程、事件鏈結、執行分析、™效能計量,以及系統事件追蹤。同時結合其較佳的易於使用性,是內嵌應用程式的理想選擇,種種優勢讓Azure RTOS ThreadX 即時作業系統可以使用在通信、工業、醫療、汽車電子、運輸/鐵路等等領域。
本課程將Open Source之即時內核Azure RTOS ThreadX與ARM Cortex M3 / M4 / M7 作一完美結合,以發揮ARM-Cortex M3 / M4 / M7 CPU的特點。
v 課程目標:
1. 特別增加各種Azure RTOS ThreadX實務LAB Demo,包含多任務程式開發/按鍵輸入/GPIO輸出、任務間通信實驗、串列介面實作、SPI介面實作及LCD控制應用,以適用於業界不同之需求。
2. 瞭解 Azure RTOS ThreadX 即時作業系統的工作原理與移植方式。
v 適合對象:
1. 熟悉 C & C++ 語言、數位邏輯。
2. 建議需上過【單元一】嵌入式物聯網ARM Cortex-Mx系統韌體開發。
序
|
時間
|
課程內容
|
1
|
114/03/05
(三)
09:30-17:30
|
(1) Azure RTOS ThreadX分析及移植:即時作業系統及Azure RTOS ThreadX 概述、分析及安裝、配置與移植
(2) Threads and stacks、priorities、preemption、Context switches概念
(3) 內核資料結構與內核調度演算法、Azure RTOS ThreadX之Scheduling
(4) 系統中斷處理、系統移植方法
★【LAB】Azure RTOS ThreadX 在STM32開發板上的移植、分析移植的關鍵代碼
(5) Azure RTOS ThreadX應用程式架構
|
2
|
114/03/12
(三)
09:30-17:30
|
(1) 記憶體管理、多任務(ThreadX Tasks)程式開發
(2) ThreadX RTOS的Interrupt 與 Application timer
(3) Wait Abort 來中斷執行緒掛起
★【基礎LAB】多任務程式控制LED,閃爍時間不同
(4) 使用counting semaphore進行event notification
|
3
|
114/03/19
(三)
09:30-17:30
|
(1) 使用event flags group同步 ThreadX 的threads
(2) 使用message queues進行IPC(inter-thread communication)通訊
(3) 使用event-chaining掛起 ThreadX 中的multiple objects
(4) ThreadX priority inversion solutions
★【串列介面LAB】串列介面控制應用程式。
★【SPI介面LAB】多任務Task:一Task執行自周邊(例如I2C或SPI)介面讀入數值,藉任務間通信控制另一Task之LED。
★【進階LAB】網路控制應用程式。
|
※ 因不可預測之突發因素,主辦單位得保留課程之變更權利。