www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]利用SD卡實(shí)現(xiàn)嵌入式Linux系統(tǒng)的自動升級

摘要:提出了一種擴(kuò)展Uboot實(shí)現(xiàn)嵌入式設(shè)備操作系統(tǒng)維護(hù)與升級的方法。該方法將待升級的內(nèi)核和文件系統(tǒng)映像放入SD卡中,當(dāng)系統(tǒng)重啟時,擴(kuò)展后的Uboot會自動檢測并讀取SD卡中的映像文件,再燒寫到嵌入式設(shè)備實(shí)現(xiàn)自動升級。該方法較傳統(tǒng)的通過JTAG口、串口或者網(wǎng)口連接到主機(jī),在主機(jī)上通過手動輸入控制命令完成內(nèi)核或者文件系統(tǒng)的升級方式更為便捷高效。
關(guān)鍵詞:SD卡;Uboot;Linux;自動升級

引言
    隨著現(xiàn)代工業(yè)社會逐步向智能化社會的過度,嵌入式在現(xiàn)代經(jīng)濟(jì)生活中扮演著至關(guān)重要的角色。32位的高性能、低成本、低功耗的嵌入式RISC(Reduced InstructionSet Computer)微處理器——ARM(Advanced RISC Machines)已經(jīng)成為應(yīng)用最廣泛的嵌入式微處理器。
    目前,基于ARM的嵌入式系統(tǒng)在各個領(lǐng)域都有著廣泛的應(yīng)用,嵌入式系統(tǒng)的維護(hù)與升級也變的日益重要。由于新技術(shù)的不斷涌現(xiàn)和對系統(tǒng)功能、性能等要求的不斷提高,開發(fā)者必須能夠針對系統(tǒng)進(jìn)行升級和維護(hù),以延長系統(tǒng)的使用周期,改善系統(tǒng)性能,增強(qiáng)系統(tǒng)適應(yīng)性。
    傳統(tǒng)的嵌入式系統(tǒng)升級,首先通過JTAG接口將Bootloader燒寫到目標(biāo)板的Flash中,然后在Bootloader中,將內(nèi)核映像文件和文件系統(tǒng)映像文件通過串口或者網(wǎng)絡(luò)下載并燒寫到Flash。若需對內(nèi)核或文件系統(tǒng)升級,則要按照上述方法重新燒寫新的映像文件,直接覆蓋原來的映像文件。這類方法,一方面必須將嵌入式設(shè)備和主機(jī)通過串口線或者網(wǎng)線相連接;另一方面需要人工手動輸入控制命令,而且通過串口或網(wǎng)絡(luò)下載映像文件速度非常慢。
    本文針對嵌入式Linux操作系統(tǒng)提出了一種新的升級機(jī)制,即通過將映像文件拷貝到SD卡中,由擴(kuò)展后的Uboot實(shí)現(xiàn)系統(tǒng)自動升級,這個方法可以有效克服傳統(tǒng)升級方法的局限,簡化系統(tǒng)升級步驟,提高升級速度。

1 工作原理
   
一個嵌入式Linux系統(tǒng)從軟件的角度看通??梢苑譃?個層次:Bootloader、Linux內(nèi)核、文件系統(tǒng)和用戶應(yīng)用程序。這4個層次中,Boot loader一般是按照嵌入式系統(tǒng)的硬件配置定制的,是嵌入式系統(tǒng)加電以后運(yùn)行的第一段軟件代碼。要對Bootloader升級只能通過人工手動完成,不過一般嵌入式系統(tǒng)在硬件平臺沒有變化的情況下是不需要對Bootloader進(jìn)行升級的。用戶應(yīng)用程序只是運(yùn)行在Linux操作系統(tǒng)上的一個程序,其升級方法簡單,一般可以通過網(wǎng)絡(luò)直接進(jìn)行升級。Linux內(nèi)核和文件系統(tǒng)的升級不像Bootloader那樣基本不需要升級,也不像應(yīng)用程序那樣很容易完成升級。目前,對于Linux內(nèi)核和文件系統(tǒng)的升級一般都是在Bootloader中實(shí)現(xiàn)的。
    通過對Uboot的功能進(jìn)行擴(kuò)充,加入了系統(tǒng)升級的功能。例如,用戶需要對嵌入式設(shè)備上的Linux內(nèi)核或文件系統(tǒng)進(jìn)行升級,只需要將新的Linux內(nèi)核或文件系統(tǒng)映像,命名為指定的名稱拷貝到SD卡中。如果此時系統(tǒng)處于非運(yùn)行狀態(tài),只需要重新啟動嵌入式設(shè)備即可進(jìn)行升級
過程;如果系統(tǒng)處于運(yùn)行狀態(tài),Linux系統(tǒng)會自動檢測SD卡是否存在相應(yīng)的升級文件,存在則自動reboot,這樣也完成了系統(tǒng)的升級。
    不論系統(tǒng)是否處于運(yùn)行狀態(tài),真正的系統(tǒng)升級過程都是在Uboot中完成的。設(shè)備重啟時,首先運(yùn)行Uboot,在這過程中Uboot完成系統(tǒng)初始化之后,在引導(dǎo)內(nèi)核之前先檢查SD卡中是否有Linux內(nèi)核或文件系統(tǒng)映像文件。若有,則讀取映像文件到SDRAM當(dāng)中,然后通過Uboot中的Flas h命令將內(nèi)核或者文件系統(tǒng)映像燒寫到相應(yīng)的分區(qū)當(dāng)中來完成升級;若無,則直接啟動系統(tǒng),具體流程如圖1所示。


[!--empirenews.page--]
2 關(guān)鍵技術(shù)
2.1 Uboot工作原理
    Uboot是一個由德國DENX發(fā)起的,遵循GPL條款的開源項(xiàng)目,支持ARM、X86、MIPS、PowerPC等處理器,可啟動Linux、VxWorks、TREMS等嵌入式操作系統(tǒng),其提供了豐富的配置、管理以及運(yùn)行命令。
    Uboot與大多數(shù)Bootloader一樣都包含兩種操作模式:
    ①啟動加載(Bootloading)模式:即Uboot從目標(biāo)機(jī)上的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個過程都是自動完成的。
    ②下載(Downloading)模式:在這種模式下,目標(biāo)機(jī)的Uboot將通過串口或網(wǎng)絡(luò)等通信方式將內(nèi)核或文件系統(tǒng)印象下載到RAM當(dāng)中,然后再寫入相應(yīng)的存儲設(shè)備中。這種工作模式通常在系統(tǒng)初次安裝和更新時使用。
    Uboot的實(shí)現(xiàn)依賴于CPU的體系結(jié)構(gòu),它分為stage1和stage2兩大部分。stage1存放用匯編語言實(shí)現(xiàn)的依賴于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等;stage2則通常用具有更好的可讀性和可移植性的C語言來實(shí)現(xiàn)。
    Uboot Stage1的主要功能有:
    ①硬件設(shè)備初始化;
    ②為Uboot重定位至RAM中,準(zhǔn)備RAM空間;
    ③重定位Uboot代碼到RAM中;
    ④設(shè)置堆棧,將BSS段清零;
    ⑤跳轉(zhuǎn)到第二階段的C程序入口點(diǎn)。
    Uboot Stage2的主要功能有:
    ①初始化硬件設(shè)備;
    ②將內(nèi)核和文件系統(tǒng)映像從Flash讀到RAM中;
    ③設(shè)定內(nèi)核啟動參數(shù)和調(diào)用內(nèi)核。
    通過上面這兩個階段,Uboot就完成了引導(dǎo)內(nèi)核啟動的任務(wù)。
2.2 Uboot擴(kuò)展升級功能
    Uboot本身并不帶有系統(tǒng)升級功能,本文在Uboot現(xiàn)有的功能上做擴(kuò)展,使其完成系統(tǒng)升級的功能,將新的內(nèi)核或者文件系統(tǒng)映像燒寫到Flash的相應(yīng)分區(qū)中。本文的實(shí)驗(yàn)對象是Samsung公司的S3C2440微處理器,該設(shè)備上有64 MB的SDARM和256 MB的NAND Flash,NAND Flash的起始地址映射到0x00000000,SDRAM的起始地址映射到0x30000000。設(shè)備上的Uboot將256 MBNAND Flash分為Bootloader、Bootloader參數(shù)、ker nel和rootfs四個區(qū)。其中,Bootloader分區(qū)是用于存放Uboot映像,它的起始地址為NAND Flash的起始地址0x00000000;Bootloader參數(shù)區(qū)是用于存放Uboot的參數(shù);kernel區(qū)用于存放Linux內(nèi)核;rootfs區(qū)用于存放文件系統(tǒng),在我們的設(shè)備上使用的文件系統(tǒng)是Yaffs2。這4個分區(qū)的起始地址和大小如表1所列。

[!--empirenews.page--]
    升級功能的擴(kuò)展主要在Uboot的第二階段完成,在Uboot完成外圍硬件設(shè)備初始化之后,檢測是否有SD卡插入,如果有,再檢測SD卡中是否有相應(yīng)的內(nèi)核或者文件系統(tǒng)映像。如果有相應(yīng)的映像文件,就進(jìn)行升級工作,升級完成后再啟動新的系統(tǒng)。系統(tǒng)升級核心工作可以分為兩步,第一步是將相應(yīng)的映像文件讀取到SDRAM當(dāng)中;第二步則將SDRAM中的映像寫入到相應(yīng)Flash分區(qū)當(dāng)中,詳細(xì)流程如圖2所示。


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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

武漢2025年9月9日 /美通社/ -- 7月24日,2025慧聰跨業(yè)品牌巡展——湖北?武漢站在武漢中南花園酒店隆重舉辦!本次巡展由慧聰安防網(wǎng)、慧聰物聯(lián)網(wǎng)、慧聰音響燈光網(wǎng)、慧聰LED屏網(wǎng)、慧聰教育網(wǎng)聯(lián)合主辦,吸引了安防、...

關(guān)鍵字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移遠(yuǎn)通信宣布,其自研藍(lán)牙協(xié)議棧DynaBlue率先通過藍(lán)牙技術(shù)聯(lián)盟(SIG)BQB 6.1標(biāo)準(zhǔn)認(rèn)證。作為移遠(yuǎn)深耕短距離通信...

關(guān)鍵字: 藍(lán)牙協(xié)議棧 移遠(yuǎn)通信 COM BSP

上海2025年9月9日 /美通社/ -- 為全面落實(shí)黨中央、國務(wù)院和上海市委、市政府關(guān)于加快發(fā)展人力資源服務(wù)業(yè)的決策部署,更好發(fā)揮人力資源服務(wù)業(yè)賦能百業(yè)作用,8月29日,以"AI智領(lǐng) HR智鏈 靜候你來&quo...

關(guān)鍵字: 智能體 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付與一汽出行達(dá)成合作,為其自主研發(fā)的"旗馭車管"車輛運(yùn)營管理平臺提供全流程支付通道及技術(shù)支持。此次合作不僅提升了平臺對百余家企業(yè)客戶的運(yùn)營管理效率...

關(guān)鍵字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制藥(PharmaEngine, Inc.)發(fā)現(xiàn)的新一代PRMT5抑制劑PEP0...

關(guān)鍵字: 泰科 AI MT BSP

上海2025年9月5日 /美通社/ -- 由上海市經(jīng)濟(jì)和信息化委員會、上海市發(fā)展和改革委員會、上海市商務(wù)委員會、上海市教育委員會、上海市科學(xué)技術(shù)委員會指導(dǎo),東浩蘭生(集團(tuán))有限公司主辦,東浩蘭生會展集團(tuán)上海工業(yè)商務(wù)展覽有...

關(guān)鍵字: 電子 BSP 芯片 自動駕駛

推進(jìn)卓越制造,擴(kuò)大產(chǎn)能并優(yōu)化布局 蘇州2025年9月5日 /美通社/ --?耐世特汽車系統(tǒng)與蘇州工業(yè)園區(qū)管委會正式簽署備忘錄,以設(shè)立耐世特亞太總部蘇州智能制造項(xiàng)目。...

關(guān)鍵字: 智能制造 BSP 汽車系統(tǒng) 線控

慕尼黑和北京2025年9月4日 /美通社/ -- 寶馬集團(tuán)宣布,新世代首款量產(chǎn)車型BMW iX3將于9月5日全球首發(fā),9月8日震撼亮相慕尼黑車展。中國專屬版車型也將在年內(nèi)與大家見面,2026年在國內(nèi)投產(chǎn)。 寶馬集團(tuán)董事...

關(guān)鍵字: 寶馬 慕尼黑 BSP 數(shù)字化

北京2025年9月4日 /美通社/ --?在全球新一輪科技革命與產(chǎn)業(yè)變革的澎湃浪潮中,人工智能作為引領(lǐng)創(chuàng)新的核心驅(qū)動力,正以前所未有的深度與廣度重塑各行業(yè)發(fā)展格局。體育領(lǐng)域深度融入科技變革浪潮,駛?cè)霐?shù)字化、智能化轉(zhuǎn)型快車...

關(guān)鍵字: 人工智能 智能體 AI BSP

上海2025年9月2日 /美通社/ -- 近日,由 ABB、Moxa(摩莎科技)等八家企業(yè)在上海聯(lián)合發(fā)起并成功舉辦"2025 Ethernet-APL 技術(shù)應(yīng)用發(fā)展大會"。會議以"破界?融合...

關(guān)鍵字: ETHERNET 智能未來 BSP 工業(yè)通信
關(guān)閉