看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《QQ29 (我愛阿蓉)》之銘言: : 請教各位我這問題分成兩個平台好了 : PC 和 手機 sorry PC 沒摸過 : 2. 手機 (wince) : 因為有耗電的考量.... : 所以上面的暴力法一定不能用吧? : 且我程式會沉入背景作業 : 或是手機進入suspend.....甚至關機 : 那可能又要分三個情況了 : (1) 背景作業 : 大概是用什麼演算法再計算時間到了沒嗎? : (2) Suspend : 如果suspend, 為了不耗電 我應該沒辦法做啥事情 : 所以應該改用什麼方法去做呢? : (3) 關機 : 如果是關機 又存在鬧鐘功能的話 : 應該不是AP這層有辦法能夠控管的 : 那是哪一端在處理這件事~而我AP是如何跟那層溝通(例如設定時間, 撥哪個音樂) : 以上我想了許久但沒個好想法 : 請有經驗的版友給點指教 : 感謝 不需要想法 做就對了 我家平台可以起timer, 雖然 AP層可以起很多個timer, 實際上 對應到硬體 都只有一個timer, timeout後 再起最近一個會timeout的時間就好了 hardware timer數量 要看你的平台而定 如果你有solution可以挖看看source code, 以前 2G用TI 現在3G 幾乎都是 qualcomm的天下 有spec查spec, 沒有spec看 tm咚咚.c 之類的檔名 background和suspend對於手機來說 應該沒有差... 畫面暗掉 != 硬體(CPU or Timer)休眠... 就算是畫面暗掉 鍵盤鎖住 你的手機還是需要一直和基地台keep alive 關機timer嘛 我相信 有其他版友可以提供更好的方法 不過 最簡單的管理就是 hardcode寫一個白名單 當系統處於關機的狀態 哪個不長眼的AP 要是起一個timer timeout了 卻不在白名單中 直接讓手機當機 抓出來鞭就好了 這樣勉強可以做power consumption管理 你的問題主要是 手機(含嵌入式系統) 的timer 真有興趣 進相關產業就可以看到了... 至於實作... IC設計你又看不到 至於 OS scheduler和timeout interrupt 反正買了 code就到了 看是可以看 改... 那是不可能的 XD 補個 XYZ timer/interrupt, power consumption 真的是 嵌入式的大罩門 像 Intel 技術一定很強 但是搞embedded 感覺就是輸ARM一段距離 這裡面應該沒有任何設計細節吧 HR請不要人肉我... 想要自己來 請看這邊 http://www.csie.ntu.edu.tw/~d4526011/my_book_copy/CHAP1.4.htm 這樣說好了 板子上除了CPU,RAM,ROM之外 還有一個小timer 這個小timer就想成是 石英振盪器好了 只要有電 他就會跳 假設你給他電壓剛好可以做到 每秒跳一下 (一個pulse) 你把這個腳位接到 中斷控制器中 如果該腳位的address是指向你的排程器 那麼 不就每秒 你可以run一次你的排程器 作所有task的管控 詳細的介紹請查 Programmable Interrupt Controller http://en.wikipedia.org/wiki/Programmable_Interrupt_Controller 只要你的手機電池 不拔下 他就需要保持最基本的 功率消耗 其中一個就是那個小timer, 不信 你設定一個10分鐘後的鬧鐘 然後拔電池 如果10分鐘後 手機還是叫了... ... ... 那就趕快逃跑吧... -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.116.31
QQ29:謝謝你= = 我是相關產業了 但沒有任何機會學上述您說的.... 09/15 01:02
QQ29:問同事也不是很清楚 這可能就是寫AP的盲點 找到solution 09/15 01:03
QQ29:能用就好不用特別去管原理... 09/15 01:03
softwind:timers那邊一定會有source code, 去qualcomm src裡面找 09/15 01:05
softwind:應該就有了 不想看code 就看spec吧 不過spec記得需要授權 09/15 01:06
QQ29:請教s大 關機timer那段 不太懂意思 是誰在run timer? 09/15 01:06
softwind:我也看不到實作阿 不過 我之前修過的微處理器應該是 09/15 01:08
softwind:PIC+timer 來實現 09/15 01:09
※ 編輯: softwind 來自: 118.166.116.31 (09/15 01:10)
QQ29:可是後面你說什麼不長眼....拿出來鞭 和power consumption 09/15 01:10
QQ29:是什麼意思...我好像無法體會 涵義 09/15 01:10
softwind:就所有的AP都綁一個ID放在公用header, 要起timer要把ID 09/15 01:11
softwind:帶入, 萬一你這個AP是不可能在關機還需要Timer的 09/15 01:12
softwind:但是系統關機後卻有你這個AP的timer timeout不就是有問題 09/15 01:12
softwind:最簡單就是 計算機ID是 125好了 今天系統關機居然有 09/15 01:13
softwind:計算機的timeout... 很不合理吧 但是 如果是鬧鐘ID是126 09/15 01:14
softwind:那麼關機的時候ID=126的timer timeout了 那就合法的 09/15 01:14
QQ29:S大我不懂得點是..你舉這例子 跟我想關機後 跑timer有什麼關 09/15 01:17
QQ29:連呢? 為啥會提到合法不合法....我真的不太了解 09/15 01:17
※ 編輯: softwind 來自: 118.166.116.31 (09/15 01:29)
tylpk:他是為了舉power consumption就順便題了,你可以忽略XD 09/15 21:10
tylpk:總之就是硬體(IC)去負責計時,上層的人只要對照Spec設暫存器 09/15 21:12
tylpk:時間到了..作業系統自然會被通知 09/15 21:13
king19880326:我真的很建議你去重看組語與作業系統.這些學校都會教 09/16 12:51
king19880326:的,你真的沒學過嗎?? 09/16 12:51
king19880326:我是說QQ29 09/16 12:57
QQ29:學過阿 但是沒有認真的理解過 考試完就忘了 09/16 13:02
nowar100:現在系統方面的知識學校也都教得很少吧 09/16 13:02
QQ29:而且依稀印象中 也沒講這些 搞不好老師也不太懂 不敢教 09/16 13:02
nvidia:那不叫學過 09/16 15:25
nvidia:回去翻書吧 09/16 15:29
nvidia:這很基本 09/16 15:30
king19880326:nowar100應該是交大大學部的吧,謝續平或是黃世崑的os 09/16 23:55
king19880326:應該都有要實做context switching,一定會用到timer吧 09/16 23:56
nowar100:真巧 我正是修昆神的OS 他的作業lab算是比較不簡單的 09/17 00:04
nowar100:我記得應該是有那一份作業 但是不是每次都要做 可以挑 09/17 00:04
nowar100:ssp我就不知道了 但是說真的 就我大學四年修完的感想 09/17 00:05
nowar100:想要期待學生在畢業後就有熟悉系統的能力 太難為所有人了 09/17 00:05
nowar100:而且略懂跟精通又是差很多 很少有同學修完課就都搞清楚了 09/17 00:06
nowar100:如果每個同學修完就都上手 那程式應該也不值錢了吧 XD 09/17 00:08