本發明專利技術提供一種固件的更新方法及裝置,涉及嵌入式Linux領域,以解決現有技術中存在的,固件更新難度較大的問題,該方法,包括:客戶端進行固件下載,客戶端將固件寫入第二內存空間,更新非易失性隨機訪問存儲器中的固件,第二內存空間為通過用戶程序將固件在非易失性隨機訪問存儲器中的地址空間映射到內存中的地址空間,由于通過用戶程序將固件在非易失性隨機訪問存儲器中的地址空間映射到內存空間,然后通過用戶程序更新該內存空間,使得固件更新難度較小。
【技術實現步驟摘要】
本專利技術涉及嵌入式Linux領域,特別涉及一種固件的更新方法及裝置。
技術介紹
嵌入式系統是以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應于系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。可以這樣認為,嵌入式系統是一種專用的計算機系統,作為裝置或設備的一部分。通常,嵌入式系統是一個控制程序存儲在非易失性隨機訪問存儲器NVRAM中的嵌入式處理器控制板,NVRAM可以是閃存flash、EROM或EPR0M,后續文檔以flash為例進行說明。事實上,所有帶有數字接口的設備,如通信系統、手表、微波爐、錄像機、汽車等,都使用嵌入式系統。所有嵌入式系統都面臨更新固件的需求,固件(Firmware)就是寫入flash中的程序,通俗的理解就是“固化的軟件”,客戶端在收到固件更新命令后,對固件對應的flash中的存儲塊(比如mtdblockl)進行讀寫操作實現更新。具體而言,是將固件數據傳入內核空間由內核中的驅動來更新固件數據,這需要依賴于內核對于存儲該固件的設備的驅動支持,開發人員必須熟悉內核中驅動的編寫方法(如注冊設備等)才能夠編寫該設備的驅動程序來支持固件更新。由此可見現有技術中存在如下問題固件的更新難度較大。
技術實現思路
本專利技術的目的是針對現有技術中存在的,固件的更新難度較大的問題,提供一種固件的更新方法及裝置。本專利技術實施例提供一種固件的更新方法,包括客戶端進行固件下載;客戶端將固件寫入第二內存空間,更新非易失性隨機訪問存儲器中的固件,第二內存空間為通過用戶程序將固件在非易失性隨機訪問存儲器中的地址空間映射到內存中的地址空間。進一步,客戶端將下載的固件存入第一內存空間。進一步,客戶端將下載的固件存入第一內存空間具體為客戶端接收服務器下發的固件更新命令后,延時將下載的固件存入第一內存空間。進一步,客戶端將下載的固件存入第一內存空間具體為客戶端接收服務器下發的固件更新命令后將下載的固件存入第一內存空間,并設置更新標志位;還包括非易失性隨機訪問存儲器中的固件更新完成后或固件下載失敗后,取消更新標志位。進一步,還包括客戶端將非易失性隨機訪問存儲器中更新的固件進行加載。進一步,客戶端將非易失性隨機訪問存儲器中更新的固件進行加載具體為客戶端加載前檢查是否在向用戶提供服務,若是則等待預定的時間重復進行加載檢查,若否則將非易失性隨機訪問存儲器中更新的固件進行加載。本專利技術實施例還提供一種固件的更新裝置,包括下載模塊,用于進行固件下載;更新模塊,用于將固件寫入第二內存空間,更新非易失性隨機訪問存儲器中的固件,第二內存空間為通過用戶程序將固件在非易失性隨機訪問存儲器中的地址空間映射到內存中的地址空間。進一步,下載模塊,還用于將下載的固件存入第一內存空間。進一步,下載模塊,還用于接收服務器下發的固件更新命令后,延時將下載的固件存入第一內存空間。進一步,下載模塊,還用于接收服務器下發的固件更新命令后將下載的固件存入第一內存空間,并設置更新標志位;還包括取消模塊,用于非易失性隨機訪問存儲器中的固件更新完成后或固件下載失敗后,取消更新標志位。進一步,還包括加載模塊,用于將非易失性隨機訪問存儲器中更新的固件進行加載。進一步,加載模塊,還用于加載前檢查是否在向用戶提供服務,若是則等待預定的時間重復進行加載檢查,若否則將非易失性隨機訪問存儲器中更新的固件進行加載。由于通過用戶程序將固件在非易失性隨機訪問存儲器中的地址空間映射到內存空間,然后通過用戶程序更新該內存空間,使得固件更新難度較小。附圖說明圖1表示本專利技術實施例提供的方法流程圖;圖2表示本專利技術實施例提供的裝置結構圖。具體實施例方式下面結合實施例和附圖對本專利技術進行說明,為了解決現有技術中的,固件的更新難度較大的問題,本專利技術實施例提供一種固件的更新方法及裝置。本專利技術實施例提供一種固件的更新方法,如圖1所示,包括如下步驟步驟101、客戶端將下載的固件存入第一內存空間。步驟102、客戶端將第一內存空間中的固件寫入第二內存空間,更新閃存中的固件,第二內存空間為通過用戶程序將固件在閃存中的地址空間映射到內存中的地址空間。步驟101具體實施時,服務器與客戶端建立TCP (Transmission Control Protocol傳輸控制協議)連接后服務器可下發固件更新命令,包括對什么固件進行更新以及需要取得的文件名稱等。客戶端接收固件更新命令后,根據固件更新命令設置對應的更新標志位,用于標示需要進行固件更新,并自動設置一個隨機延時時間如15秒,之后使用TCP協議下載完整固件數據到本地內存中的第一內存空間,如1FFF-3FFF。設置隨機延時時間是為了保證,當有多個客戶端需從服務器處下載固件時,在時間上有所不同,減輕服務器的負擔。客戶端將下載的固件存入第一內存空間的同時,設置更新標志位如設置標志位為“1”,以表明客戶端正處在固件下載的階段,flash中的固件更新完成后或固件下載失敗后,則取消更新標志位,如設置標志位為“0”,表明客戶端未處在固件下載的階段。當然將下載的固件存入內存中,只是本實施例中的優選方案,下載的固件還可以存在flash中。存在第一內存空間中,只是為了后續的步驟102中,將固件寫入到第二內存空間中時,由于是在內存的不同地址空間,對固件數據進行讀寫操作,使得讀寫操作更加快捷高效。步驟102具體實施時,通過網絡得到要更新的完整固件數據后,客戶端可以按預先設置好的對不同固件的更新方法來更新,如果內核支持對固件在flash分區的讀寫則直接向該flash分區寫入及固件數據,如果內核不支持對該flash分區的讀寫,則由用戶程序將相應的flash地址空間映射到內存中的第二內存空間,如4FFF-6FFF。同時通過自身提供的讀寫驅動,從第一內存空間中讀取固件寫入第二內存空間,完成對固件的更新,對映射后第二內存空間的操作就是對flash所在存儲空間的操作,操作必須要按照芯片手冊說明的方法進行。具體實施時,要確定固件所在的cpu尋址空間中的地址,即固件應在flash中的地址空間,固件在flash中存放的地址是開發階段就定義完成的,該地址可能是一塊flash或者是flash的一個分區,該地址空間可以根據flash和cpu的片選關系以及cpu手冊對尋址空間分配的描述得到,然后將該flash占用的地址空間映射到內存中。映射方法舉例如下首先執行 fd = open ( /dev/mem , 0_RDWR, O)然后執行 env_base = (env_t*)mmap (O,CFG_ENV_SIZE, PR0T_READ | PR0T_WRITE, MAP_SHARED, fd, env_addr),其中 fd 是第一步打開的文件描述符,env_addr是固件在flash中的地址空間的首地址,CFG_ENV_SIZE是固件在flash中的地址空間所占用的空間大小,env_base則是固件在flash中的地址空間映射到內存中的首地址,如果是對固件在flash中的地址空間操作,則操作以env_base為首地址的第二內存空間即可,對第二內存空間的讀寫操作會最終作用到實際固件所在的flash中的地址空間中,上述的程序即用戶程序,舉例完畢。映射完成后客戶端就可以利用對該flash進行讀寫的驅動模塊,本文檔來自技高網...
【技術保護點】
一種固件的更新方法,其特征在于,包括:客戶端進行固件下載;客戶端將固件寫入第二內存空間,更新非易失性隨機訪問存儲器中的固件,第二內存空間為通過用戶程序將固件在非易失性隨機訪問存儲器中的地址空間映射到內存中的地址空間。
【技術特征摘要】
1.一種固件的更新方法,其特征在于,包括 客戶端進行固件下載; 客戶端將固件寫入第二內存空間,更新非易失性隨機訪問存儲器中的固件,第二內存空間為通過用戶程序將固件在非易失性隨機訪問存儲器中的地址空間映射到內存中的地址空間。2.根據權利要求1所述的方法,其特征在于,客戶端進行固件下載具體為 客戶端將下載的固件存入第一內存空間。3.根據權利要求2所述的方法,其特征在于,客戶端將下載的固件存入第一內存空間具體為 客戶端接收服務器下發的固件更新命令后,延時將下載的固件存入第一內存空間。4.根據權利要求2所述的方法,其特征在于,客戶端將下載的固件存入第一內存空間具體為 客戶端接收服務器下發的固件更新命令后將下載的固件存入第一內存空間,并設置更新標志位; 還包括 非易失性隨機訪問存儲器中的固件更新完成后或固件下載失敗后,取消更新標志位。5.根據權利要求1所述的方法,其特征在于,還包括 客戶端將非易失性隨機訪問存儲器中更新的固件進行加載。6.根據權利要求5所述的方法,其特征在于,客戶端將非易失性隨機訪問存儲器中更新的固件進行加載具體為 客戶端加載前檢查是否在向用戶提供服務,若是則等待預定的時間重復進行加載檢查,若否則將...
【專利技術屬性】
技術研發人員:周斐,張鑫,喬美生,趙巍,王文,魏金光,張強,
申請(專利權)人:北京市三希電子科技開發公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。