uCOS:时钟节拍代码追踪
生活随笔
收集整理的這篇文章主要介紹了
uCOS:时钟节拍代码追踪
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
uCos中的時鐘節拍可以基于軟中斷實現或者基于時鐘節拍任務(但是這個任務要給予很高的優先級) 對于STM32(Cortex-M3)來說這個就是SysTick中斷0x0000003C 當中斷發生時調用OS_CPU_SysTickHandler函數, 這樣就提供了系統的時鐘節拍 uCos中擴展的應用都是在HOOK函數中實現的, 程序關于Time的調用, 首先都是基于OSTime的, 其次由于在OSTimeTick函數中預留了OSTimeTickHook()函數 這樣可以方便我們在OSTimeTickHook()函數中添加我們自己的代碼實現在系統中的調用 由于OSTimeTickHook()函數在OSTimeTick函數中, 所以每次Tick時都會調用這個函數,所以也就給了我們可以添加每次時鐘Tick都被系統 調用的機會。 由于OSTimeTickHook()函數中預留了App_TimeTickHook()函數提供給應用層的程序實現相應的擴充, 這樣就可以在應用層APP中,擴展一些我們想要的功能,例如Ctimer函數。 同時函數指針的應用更大程度的擴展了,我們可以擴展函數的功能的范圍。 在系統啟動多任務后 的第一個任務TaskStart中(即調用過OSStart()函數后)調用OS_CPU_SysTickInit()完成對系統Tick的設定。 在設置Tick的時候,是由OS_CPU_SysTickClkFreq函數來獲得硬件的時鐘頻率 通過除以OS_TICKS_PER_SEC得到一個定時中斷時間,以后每隔一定的時間中斷一次。 追蹤的過程 App_TimeTickHook()(app.c)--OSTimeTickHook()(os_cpu_c.c)--OSTimeTick()(cpu_core.c) \ --OS_CPU_SysTickHandler()(os_cpu_c.c)--DCD OS_CPU_SysTickHandler(vectors.s) 在追尋代碼路徑的過程中, 沿著最容易看到的代碼追蹤到它的上一級代碼, 直到它的最底層實現, 這樣就可以把與這個相關的系統上的東西都可以了解了。 參考: 《嵌入式實時操作系統uC/OS-2》
轉載于:https://www.cnblogs.com/skl374199080/archive/2013/05/30/3107716.html
總結
以上是生活随笔為你收集整理的uCOS:时钟节拍代码追踪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python飞机大战+图片
- 下一篇: 哪个linux桌面有电池显示,(求助!!