国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于STM8S的Atomthreads低功耗的深度思考

發(fā)布時(shí)間:2016-9-21 13:58    發(fā)布者:designapp
關(guān)鍵詞: STM8S , Atomthreads
  Atomthreads像眾多操作系統(tǒng)一樣,在沒有任務(wù)調(diào)度是會調(diào)用idle。(by cpuwolf)
  static void atomIdleThread (uint32_t param)
  {
  /* Compiler warning */
  param = param;
  /* Loop forever */
  while (1)
  {
  /** \todo Provide user idle hooks*/
  }
  }
  atomthreads中atomIdleThread()是以線程的形式存在,也就是最低優(yōu)先級線程。作者默認(rèn)沒有填寫這個(gè)函數(shù)。
  uint8_t atomOSInit (void *idle_thread_stack_top, uint32_t idle_thread_stack_size)
  {
  uint8_t status;
  /* Initialise data */
  curr_tcb = NULL;
  tcbReadyQ = NULL;
  atomOSStarted = FALSE;
  /* Create the idle thread */
  status = atomThreadCreate(&idle_tcb,
  IDLE_THREAD_PRIORITY,
  atomIdleThread,
  0,
  idle_thread_stack_top,
  idle_thread_stack_size);
  /* Return status */
  return (status);
  }
  針對STM8我們最自然想到的是在其中加一個(gè)wfi,STM8進(jìn)入wfi模式幾乎不會影響任何外設(shè)的運(yùn)行。以STM8S105K4為例,其進(jìn)入該模式的典型電流是1.8mA。這個(gè)電流,用一節(jié)2000mA手機(jī)供電,理論上也最多能堅(jiān)持46天,才一個(gè)月多點(diǎn)。這個(gè)記錄太差了。
  STM8還有一個(gè)HALT模式,這是該芯片的最低功耗模式,電流是uA級別。但是該模式有諸多限制,進(jìn)入該模式系統(tǒng)幾乎所有的clock都停止,你的timer,adc,uart等等全部停止,除了AWU。
  


  atomthreads如果你在idle直接進(jìn)入HALT,因?yàn)榛局挥型獠恐袛嗫梢詥拘淹顺鲞@個(gè)模式,當(dāng)系統(tǒng)醒來了,請你想想,你的系統(tǒng)心跳還準(zhǔn)么?你的應(yīng)用線程如果使用了定時(shí)器,本來希望1秒鐘后調(diào)用某個(gè)CALLBACK,結(jié)果HALT睡了5分鐘,那還是定時(shí)器API本身參數(shù)的意義么?
  對datasheet熟悉的讀者可能,可能立刻想到了AWU,似乎可以解決這個(gè)問題。在idle進(jìn)入HALT前,把還能睡的時(shí)間填入AWU,這樣系統(tǒng)就可以在制定的時(shí)間被喚醒。粗略的一看,還以為問題解決了。
  暫時(shí)不談AWU的時(shí)間不是任意值都可以接受的,是一個(gè)非常不準(zhǔn)確的喚醒時(shí)鐘。
  舉個(gè)其他例子,如果idle進(jìn)入HALT前,系統(tǒng)還可以睡20分鐘,我覺的一個(gè)設(shè)計(jì)優(yōu)良的低功耗系統(tǒng),應(yīng)用層讓系統(tǒng)有睡20分鐘的可能性是很起碼的。不幸的是,在5分鐘的時(shí)候,一個(gè)外部中斷進(jìn)來了,系統(tǒng)很自然退出HALT。我想問你,從系統(tǒng)的角度看,系統(tǒng)之前睡了多久。不要告訴玩我是5分鐘,大哥,那是我假設(shè)的,我問得是,從系統(tǒng)的角度。睡了多久?AWU這個(gè)唯一在運(yùn)行的模塊,上面是沒有時(shí)間讓你讀的,你完全無法得知?jiǎng)偛潘硕嗑谩?br />   其實(shí)上面的這個(gè)理念不是我創(chuàng)造的,在linux中早就有了,它叫variable tick timer,什么意思?通常我們的心跳時(shí)鐘,是有規(guī)律的觸發(fā)中斷,比如10ms一次,這導(dǎo)致系統(tǒng)最多能安靜10ms,想多睡會兒?沒門!10ms后中斷就來了。這種設(shè)計(jì)對低功耗是不利的。后來就有大牛,引入了variable tick timer,這里tick timer就是我們上面一直說的心跳時(shí)鐘。variable就是可變的羅!表面意思就是我們的心臟可以走走停停,這樣想已經(jīng)不符合人類的自然規(guī)律,所以也確實(shí)不能再叫heart beattimer。當(dāng)系統(tǒng)醒的時(shí)候,是有規(guī)律的跳動(dòng),當(dāng)系統(tǒng)睡眠的時(shí)候, timer就停跳。其實(shí)就是上面想實(shí)現(xiàn)的東西。
本文地址:http://m.qingdxww.cn/thread-174318-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 為何選擇集成電平轉(zhuǎn)換?
  • 了解一下Microchip強(qiáng)大的PIC18-Q24 MCU系列
  • PIC18-Q71系列MCU概述
  • 安靜高效的電機(jī)控制——這才是正確的方向!
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91av在线免费观看 | 理论片在线免费观看 | 色噜噜狠狠狠综合曰曰曰 | 成年人网站免费在线观看 | 中文字幕在线国产 | 欧美福利专区 | 亚洲福利一区福利三区 | 久久伊人天堂视频网 | 日韩视频一区二区在线观看 | 四虎影视在线看免费观看 | h视频在线免费看 | 国产99视频在线 | 国产精品秒播无毒不卡 | 热久久视久久精品18国产 | 新四虎 | 国内精品久久久久久久影视麻豆 | 逆天邪神第一季全集免费观看 | 亚洲一区二区三区免费视频 | 偷窥自拍亚洲 | 日本欧美不卡一区二区三区在线 | 久久久久国产亚洲日本 | 国产成人精品福利网站在线 | 91麻豆精品国产91久久久久 | 天天夜碰日日摸日日澡 | 四虎影视永久地址www成人污 | 最新日剧| 女老师韩国 | 欧美日韩一区二区三区色综合 | 欧美性视频在线播放 | 三级在线国产 | 亚洲三级在线 | 国内精品久久影视 | 韩国日本免费高清观看 | 日日摸夜夜摸狠狠摸97 | 99re热这里只有精品视频 | 国产高清一级毛片 | 99这里只有精品 | 亚洲影视在线观看 | 偷拍同志老头小便oldman | 亚洲韩国欧美一区二区三区 | 麻豆国产在线观看一区二区 |