Re: [問題] 請問如何設計一個鬧鐘程式?
※ 引述《QQ29 (我愛阿蓉)》之銘言:
: 2. 手機 (wince)
: 因為有耗電的考量....
: 所以上面的暴力法一定不能用吧?
: 且我程式會沉入背景作業
: 或是手機進入suspend.....甚至關機
: 那可能又要分三個情況了
: (1) 背景作業
: 大概是用什麼演算法再計算時間到了沒嗎?
: (2) Suspend
: 如果suspend, 為了不耗電 我應該沒辦法做啥事情
: 所以應該改用什麼方法去做呢?
: (3) 關機
: 如果是關機 又存在鬧鐘功能的話
: 應該不是AP這層有辦法能夠控管的
: 那是哪一端在處理這件事~而我AP是如何跟那層溝通(例如設定時間, 撥哪個音樂)
我已經一年多沒碰嵌入式了,
就印象中回答一下。
以 Windows Mobile 6.x 來說好了。
正常嵌入式應該都是利用中斷來處理這一類的問題,
利用中斷來通知上層軟體時間到了。
由上到下,約略可分四層(有些層不是那麼明確,會有重疊):
Application Layer
Kernel Layer
OAL + Driver Layer
Hardware Layer
Application 使用 OS 提供的 function(Win32 API),來使用 Timer(WM_TIME),
Kernel 負責處理 Application 的呼叫,並在時間到時通知 Application,
OAL 是微軟定義好的 Layer,會負責中介處理跟硬體有關的部份,比如 RTC,
Hardware 則是實際在控制硬體的部份(讀寫硬體的暫存器)。
Hardware 設定好暫存器後,便能設定 CPU 什麼時候會觸發中斷,等到觸發後,
這時便會一層一層的 response 回去。
至於關機能不能有鬧鐘功能?
要看 CPU 支不支援(可能是硬體或是BSP都要 support),
至少 7201A 是不支援的。
大概是這樣吧,只是很簡單的說明。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.241.56
推
09/14 22:03, , 1F
09/14 22:03, 1F
→
09/14 22:03, , 2F
09/14 22:03, 2F
→
09/15 21:04, , 3F
09/15 21:04, 3F
→
09/15 21:05, , 4F
09/15 21:05, 4F
推
09/15 21:50, , 5F
09/15 21:50, 5F
→
09/15 22:02, , 6F
09/15 22:02, 6F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章