單元一:嵌入式物聯網ARM-Cortex Mx系統韌體開發
Cortex M3/M4 和M0都是屬於MCU的低功耗低成本處理器。但是Cortex M0比Cortex M3/M4更小,所以Cortex M0當然性能低。拿這兩種與經典的ARM7做比較的話,Cortex M0和ARM7是同等性能,但其規模不到ARM7一半;Cortex M3是同ARM7的規模,但是性能和效率卻高出ARM7 30%左右。而ARM-Cortex M3晶片功能強大,軟體複雜度也相對提高很多。應用方面ARM-Cortex M3/M4晶片相當適合於具有大量通信需求的應用:如工業控制、醫療儀器、資料處理和網路通訊產品。
課程特色:
1、瞭解Cortex-M4系列結構及其指令集,及熟悉Cortex-M4系列結構之嵌入式程式設計的方法。
2、瞭解STM32處理器各個介面開發的原理。
序
|
日期
|
課程內容
|
1
|
112/08/25
(五)
09:30-17:30
|
(1)Cortex-M Kernel結構
(2)ARM-Cortex-M指令集
(3)基於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
★【LAB】第一支ARM-Cortex-M 程式
★【LAB】Explicate the Startup Code(俗稱Booting Code) and How to Modify
|
2
|
112/08/30
(三)
09:30-17:30
|
(1)STM32F4處理器簡介:CPU架構、記憶體及啟動模式、周邊模組
(2)STM32F4介面開發:GPIO、中斷/NVIC(巢式中斷)、串列介面、RTC
(3)CM3韌體撰寫方式介紹-1:1. CPU’s Register Access、2. CM3 Standard Peripherals Library
★【基礎LAB】LED實驗、按鍵輸入實驗
|
3
|
112/09/01
(五)
09:30-17:30
|
(1)CM3韌體撰寫方式介紹-2:
★【基礎LAB】中斷(NVIC)實驗、串列介面實驗、RTC/ALARM實驗、PLL Multiplier Control、SysTick and Delay、Watchdog 實驗
(2)STM32F4進階介面開發: SD Interface、USB Device、DMA/ADC、LCD、SPI、FSMC、I2C
★【進階LAB】SD卡實驗、USB Device實驗、DMA/ADC介面講解與實驗、溫濕度模組/G-sensor模組實驗、SPI/Flash實驗、網路介面實驗(TCP/IP + Web Server+控制板上 IO )、LCD TFT+FATS檔案系統實驗
|
※ 因不可預測之突發因素,主辦單位得保留課程之變更權利。
單元二:嵌入式RTEMS RTOS硬即時作業系統移植與開發
RTEMS是種微核心搶占式的硬即時系統,具有下面的優點:優秀的實時性能、支持硬即時和軟即時(可搶占核心)、支持優先權繼承,防止優先權反轉、支持單調周期調度、支持優先權高度協定,RTEMS非常的穩定,運行速度快,支持多種CPU。除了上述優點,RTEMS還有高度可剪裁核心、占用系統資源小等特性,且支持多種處理器移植,其提供POSIX API 可以方便移植 Linux/UNIX 下的程式,另提供完整的 BSD的TCP/IP協議棧以及 FTP、WebServer、NFS 等服務功能。種種優勢讓這原本 RTEMS RTOS軍用即時作業系統可以使用在通信、航空航天、工業控制、軍事等領域。
本課程將著名Open Source之硬即時內核RTEMS RTOS與 ARM Cortex M3/M4 作一完美結合,以發揮ARM-Cortex M3/M4 CPU的特點。
課程特色:
- 特別增加各種RTEMS RTOS實務LAB Demo,包含多任務程式開發/按鍵輸入/GPIO輸出、任務間通信實驗、串列介面實作、SPI介面實作及LCD控制應用,以適用於業界不同之需求。
- 瞭解RTEMS RTOS硬即時的工作原理,與瞭解RTEMS RTOS移植方式。
適合對象:
- 熟悉 C & C++ 語言、數位邏輯。
- 建議需上過【單元一】嵌入式物聯網 ARM-Cortex Mx系統開發韌體實作實戰。
序
|
日期
|
課程內容
|
1
|
112/09/15
(五)
09:30-17:30
|
(1)RTEMS RTOS分析及移植:即時作業系統及RTEMS RTOS 概述、分析及安裝、配置與移植
(2)任務、行程概念
(3)內核資料結構與內核調度演算法、RTEMS RTOS之Scheduling
(4)系統中斷處理、系統移植方法
★【LAB】RTEMS RTOS在STM32開發板上的移植、分析移植的關鍵代碼
(5)RTEMS RTOS應用程式架構
|
2
|
112/09/20
(三)
09:30-17:30
|
(1)多任務(RTEMS Tasks)程式開發
(2)RTEMS RTOS的Interrupt 與 Timers Management
(3)RTEMS RTOS的時間管理
★【RTEMS RTOS基礎LAB】多任務程式控制LED,閃爍時間不同
(4)RTEMS RTOS之Events and Signals
|
3
|
112/09/22
(五)
09:30-17:30
|
(1)RTEMS RTOS之Semaphores、Message Queues, Reentrancy,任務間的通信與同步、任務優先順序控制
★【RTEMS RTOS之按鍵輸入/GPIO輸出實作LAB】任務間通信實驗
a. 各種多任務的方式控制LED。
b. 多任務Task:一Task執行辨識按鍵輸入,藉任務間通信控制另一Task之LED。
(2)RTEMS RTOS之I/O與Memory Management。★【RTEMS RTOS Share Memory LAB】多任務以Share Memory方式控制LED
進階LAB:
★【RTEMS RTOS之串列介面LAB】串列介面控制應用程式。
★【RTEMS RTOS之SPI介面LAB】多任務Task:一Task執行自I2C或SPI介面讀入Flash數值,藉任務間通信控制另一Task之LED。
★【RTEMS RTOS之進階LAB】網路控制應用程式。
|
※ 因不可預測之突發因素,主辦單位得保留課程之變更權利。