<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用SD卡實(shí)現(xiàn)嵌入式Linux系統(tǒng)的自動(dòng)升級(jí)

          利用SD卡實(shí)現(xiàn)嵌入式Linux系統(tǒng)的自動(dòng)升級(jí)

          作者: 時(shí)間:2012-12-06 來(lái)源:網(wǎng)絡(luò) 收藏

          (2)判斷中是否有內(nèi)核映像文件
          如果存在,則將其燒寫(xiě)到Flash相應(yīng)的分區(qū)當(dāng)中。實(shí)現(xiàn)這個(gè)功能需要使用到中的run_command函數(shù),由于kernel的映像文件一般不會(huì)超過(guò)5 MB,所以在燒寫(xiě)kernel的時(shí)候不需要檢查映像文件的大小。檢查內(nèi)核映像文件是否存在也是通過(guò)執(zhí)行命令的方式,如果存在,那么Env環(huán)境變量fileexist的值就是YES,并且此時(shí)的內(nèi)核映像已經(jīng)存在于SDRAM當(dāng)中,可以直接通過(guò)命令燒寫(xiě)到Flash相應(yīng)的分區(qū)當(dāng)中。具體的代碼如下:
          e.JPG
          (3)判斷中是否有文件系統(tǒng)映像文件
          如果存在,則寫(xiě)入到相應(yīng)的Flash分區(qū)當(dāng)中。本實(shí)驗(yàn)設(shè)備上使用的文件系統(tǒng)是Yaffs2,通過(guò)命令燒寫(xiě)Yaffs2文件系統(tǒng)的時(shí)候,必須要知道它的實(shí)際大小。由于升級(jí)很可能導(dǎo)致文件系統(tǒng)大小的變化,所以這里必須將讀取到SDRAM當(dāng)中的文件大小記錄下來(lái),這個(gè)工作在中已經(jīng)完成,我們只需要通過(guò)getenv(filesize)就可以獲得載入SDRAM當(dāng)中的文件大小,其他的步驟和燒寫(xiě)內(nèi)核映像是一樣的。具體代碼如下:
          f.JPG
          經(jīng)過(guò)上面3個(gè)步驟修改的Uboot程序可支持的功能,需要注意這段代碼應(yīng)該放在Uboot自動(dòng)加載系統(tǒng)之前,推薦將這些代碼放在main_loop函數(shù)中。

          結(jié)語(yǔ)
          本文通過(guò)定制擴(kuò)展Uboot實(shí)現(xiàn)了用SD卡方式進(jìn)行嵌入式設(shè)備操作系統(tǒng)的,這種方式不但克服了傳統(tǒng)升級(jí)方式的局限性,而且具有一定商業(yè)價(jià)值。目前,該方法經(jīng)過(guò)調(diào)試,系統(tǒng)運(yùn)行正常。顯然,要通過(guò)SD卡實(shí)現(xiàn)系統(tǒng)升級(jí),需要嵌入式設(shè)備具有SD卡接口,因此,它并不適合所有的嵌入式系統(tǒng),但是這種實(shí)現(xiàn)機(jī)制可供借鑒。

          本文引用地址:http://www.ex-cimer.com/article/148225.htm
          linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關(guān)文章:linux教程



          上一頁(yè) 1 2 3 4 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();