CMSIS-DAP - 3 - timer
收錄於 : 關於Ameba的一百篇
前篇 : CMSIS-DAP -2 -RTOS
程式 : github cmsis-dap exam3
說明 :
我們把主架構都起來. 其實他是用一個主線程, 透過 IPC event trigger 的架構方式來做.
1. main.c : main_task
(1) os_tsk_create_user : 建立另一個 timer thread
(2) os_evt_wait_for : 等待 signal
(3) os_evt_get : 看收到的 signal 是什麼, 坐相對應的事.
2. timer_task
其實他並不是真的用 HW timer, 而是利用 rt_block, os scheduling 去等待一段時間
設 50 其實是 500ms , 這是因為 systick interrupt 用的 time interval (os_trv) 是 10ms
設定在 src/rtos/RTX_Conf_CM.c : ( 這檔名將來還是得修正一下)
PS: 如之前所提, 需計算不要讓 os_trv 設到 systick 時爆掉了 (設太長)
這方式加個 timer, 可以讓整個系統運作的時間刻度再放大
(2) os_itv_wait() : 等待 時間到
(3) os_evt_set() : 按不同時間送 signal 給 main task
PS1: 的確應該改成 CMSIS-RTOS 的 API, 下回來修正一下. 否則 API 不統一, 上層程式 和 文件都需要改
PS2: 這些 os API 都是用 SVC 方式, 詳述在 下一篇 : CMSIS-DAP -4 - SVC
===
結果 :
==
Future:
usb stack :
1. usb -> uart
(1) 先 直接 output message
(2) 將 Ameba 的 log uart 轉向
2. usb disk
(1) 產生一個虛擬 disk
(2) JWD 與 Ameba 溝通
(3) with Ameba flash writing
3. debug
(1) CMSIS-DSP
(2) OpenOCD - gdb
留言
張貼留言