【RTX作業系統教程】第3章 初學RTX作業系統準備工作
第3章 初學RTX作業系統準備工作
俗話說萬事開頭難,學習一門新的知識,往往難的不是知識本身,而是如何快速上手,需要什麼資料和開發環境,一旦上手後,深入的學習相對就要容易些了。 本章節就起到這樣的作用,主要說明下初學RTX作業系統需要做的準備工作。 3.1 開發環境 3.2 重要說明 3.3 RTX系統參考資料 3.4 RTX的除錯方法 3.6 RTX除錯元件功能介紹 3.5 總結3.1 開發環境 u IDE:MDK4.74,建議使用者使用此版本操作教程配套的例子。 u 偵錯程式使用JLINK,ULINK或者STLink均可。 u 配套開發板是安富萊STM32-V4開發板,MCU是STM32F103ZET6和STM32-V5開發板,MCU是STM32F407IGT6。3.2 重要說明
圖3.1 RTX手冊
圖3.2 RTX手冊線上檢視
等RTX作業系統入門後,主要看這兩個手冊即可,基本可以解決大部分問題。3.4 RTX的除錯方法 MDK(以MDK4.74為例)中自帶RTX的除錯元件,本小節就給大家介紹下如何使用RTX的除錯元件。首先將基於RTX的MDK工程進行全編譯,然後進行軟體模擬或者硬體模擬,因為只有在模擬狀態下才可以使用RTX的除錯元件。下面是詳細的設定步驟: u 第1步:進行MDK工程全編譯 u 第2步:點選MDK的這個圖示
圖3.3MDK設定
圖3.4JTAG和SW介面在MDK中的切換位置
另外配置SWV模式需要使用到STM32的SWO引腳,本教程配套的STM32F103和STM32F407開發板的除錯介面沒有使用SWO引腳,所以關於Event Viewer功能就不做過多介紹了。。 l JTAG介面和SWD介面區別
下圖分別是20pin的標準JTAG引腳和SWD( SerialWire Debug)引腳,一般SWD介面僅需要Vref,SWDIO,SWCLK,RESET和GND五個引腳即可,SWO(Serial Wire Output)引腳是可選的。有了SWO引腳才可以實現資料從晶片到電腦端的資料傳送。
l 詞條 SWV(Serial Wire Viewer)
SWV是由儀器化跟蹤巨集單元ITM(Instrumentation Trace Macrocell)和SWO構成的。SWV實現了一種從MCU內部獲取資訊的低成本方案,SWO介面支援輸出兩種格式的跟蹤資料,但是任意時刻只能使用一種。兩種格式的資料編碼分別是UART(序列)和Manchester(曼徹斯特)。當前JLINK僅支援UART編碼,SWO引腳可以根據不同的資訊傳送不同的資料包。當前M3/M4可以通過SWO引腳輸出以下三種資訊:
1. ITM支援printf函式的debug呼叫(工程需要做一下介面重定向即可)。ITM有32個通道,如果使用MDK的話,通道0用於輸出除錯字元或者實現printf函式,通道31用於Event Viewer,這就是為什麼實現Event Viewer需要配置SWV的原因。
2. 資料觀察點和跟蹤DWT(Data Watchpoint and Trace)可用於變數的實時監測和PC程式計數器取樣。
3. 時間戳,ITM 還附帶了一個時間戳的功能:當一個新的跟蹤資料包進入了 ITM 的 FIFO 時, ITM 就會把一個差分的時間戳資料包插入到跟蹤資料流中。跟蹤捕獲裝置在得到了這些時間戳後,就可以找出各跟蹤資料之間的時間相關資訊。另外,在時間戳計數器溢位時也會發生時間戳資料包。
3.5 RTX除錯元件功能介紹 由於STM32F103開發板和STM32F407開發板沒有引出SWO引腳,除錯元件Event Viewer是無法使用的,這裡僅介紹一下System and Viewer元件。下圖3.5是System and Viewer介面。
圖3.5 Systemand Viewer介面
下面是系統部分功能介紹:
u Timer Number:0表示使用晶片的滴答定時器,1表示使用外設定時器。 u Tick Timer:RTX的時鐘節拍週期。 u Roud Robin Timeout:時間片溢位時間,即時間片排程時任務分配的時間片大小。 u Stack Size:任務棧大小,單位位元組。 u Stack Overflow Check:設定是否支援棧溢位檢測。 u Tack Usage:任務建立情況,Available表示可以建立的最大任務數,Used表示實際建立的。 u User Timers:軟體定時器個數,Available表示可以建立的最大任個數,Used表示實際建立的個數。 下面是任務部分功能介紹: u ID:任務的ID標示。 u Name:任務的函式名。 u Priority:任務優先順序。 u State:任務狀態。 u Delay:任務延遲時間。 u Event Value:任務當前的事件標誌數值。 u Event Mask:任務等待的事件標誌數值。 u Stack Load:任務堆疊利用率。3.6 總結
本章節就為大家講解這麼多,建議初學者花些時間對RTX系統的參考資料章節結構瞭解一下,隨著以後的學習最好可以達到熟練檢視這個手冊的程度。