<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁(yè) > RF/微波 > 正文

    技術(shù)分享:引導(dǎo)加載器的設(shè)計(jì)考慮因素

    發(fā)布時(shí)間:2015-06-24 責(zé)任編輯:sherry

    【導(dǎo)讀】引導(dǎo)加載器支持產(chǎn)品固件的現(xiàn)場(chǎng)更新。引導(dǎo)加載器可使用UART、I2C、SPI或USB等常見通信接口更新固件,而引導(dǎo)加載器主機(jī)和目標(biāo)之間通常采用有線連接方式。在藍(lán)牙到串行適配器的幫助下,這個(gè)引導(dǎo)加載操作能通過(guò)無(wú)線方式實(shí)現(xiàn)。如果目標(biāo)所處的位置難以物理地訪問(wèn),或者目標(biāo)位于密封設(shè)備內(nèi),那么這種無(wú)線連接功能就會(huì)特別有用。
     
    使用引導(dǎo)加載器的第一步就是配置產(chǎn)品,讓引導(dǎo)加載器(而不是應(yīng)用)去執(zhí)行。一旦引導(dǎo)加載器運(yùn)行,主機(jī)就會(huì)通過(guò)通信通道發(fā)送“start bootload”命令。如果引導(dǎo)加載器發(fā)出“OK”回應(yīng),那么就會(huì)開始引導(dǎo)加載。在引導(dǎo)加載期間,主機(jī)讀取新應(yīng)用文件,將其解析為閃存寫入命令,并發(fā)送命令到引導(dǎo)加載器。在整個(gè)文件發(fā)送后,引導(dǎo)加載器會(huì)確認(rèn)文件完整性,并發(fā)送控制到新應(yīng)用。
     
    采用藍(lán)牙到串行適配器的無(wú)線引導(dǎo)加載過(guò)程可在任何支持UART引導(dǎo)加載器的目標(biāo)上進(jìn)行,無(wú)需使用藍(lán)牙串行端口配置文件(SPP)對(duì)運(yùn)行在目標(biāo)設(shè)備上的主機(jī)或引導(dǎo)加載器固件進(jìn)行任何修改。藍(lán)牙配置文件是指定藍(lán)牙設(shè)備一般行為的藍(lán)牙核心規(guī)范上額外的協(xié)議,可用于支持藍(lán)牙設(shè)備與其它具有相同配置文件的設(shè)備進(jìn)行通信。
     
    SPP基于仿真RS-232串行端口的射頻通信(RFCOMM)協(xié)議,它定義了如何設(shè)置兩個(gè)設(shè)備之間的虛擬串行端口,如何利用藍(lán)牙互聯(lián)。支持藍(lán)牙功能的PC能連接到目標(biāo)側(cè)的藍(lán)牙串行適配器,并進(jìn)行引導(dǎo)加載操作。引導(dǎo)加載命令可通過(guò)發(fā)送串行命令到當(dāng)前運(yùn)行在目標(biāo)器件上的應(yīng)用而實(shí)現(xiàn)無(wú)線觸發(fā)。
     
    引導(dǎo)加載器
     
    引導(dǎo)加載過(guò)程會(huì)通過(guò)標(biāo)準(zhǔn)通信接口更新嵌入式系統(tǒng)的固件。主機(jī)可以是帶引導(dǎo)加載器主機(jī)應(yīng)用工具的PC,也可以是另一個(gè)微控制器。引導(dǎo)加載器是加電啟動(dòng)或系統(tǒng)重設(shè)后將要執(zhí)行的第一行代碼。引導(dǎo)加載器會(huì)預(yù)編程到微控制器中,與主機(jī)通信,并獲得新的應(yīng)用鏡像,將其寫入微控制器的內(nèi)部閃存。在引導(dǎo)加載操作成功后,微控制器會(huì)開始執(zhí)行新的應(yīng)用固件。如果沒(méi)有從主機(jī)接收到新的應(yīng)用,那么引導(dǎo)加載器會(huì)執(zhí)行微控制器中現(xiàn)有的應(yīng)用。
     
    應(yīng)用固件鏡像的格式取決于使用的微控制器。舉例來(lái)說(shuō),PSoC控制器使用.cyacd(應(yīng)用代碼和數(shù)據(jù))作為引導(dǎo)加載應(yīng)用的格式。如果采用標(biāo)準(zhǔn)的藍(lán)牙到串行適配器,那么我們可在支持UART引導(dǎo)加載器的目標(biāo)器件上無(wú)線執(zhí)行同樣的引導(dǎo)加載操作。
     
    在利用藍(lán)牙到串行適配器進(jìn)行無(wú)線引導(dǎo)加載的情況下,基本的引導(dǎo)加載操作保持不變。不過(guò),我們需要在主機(jī)和目標(biāo)器件之間建立虛擬串行連接,通過(guò)藍(lán)牙無(wú)線發(fā)送應(yīng)用鏡像。SPP定義了如何設(shè)置虛擬串行端口和兩個(gè)藍(lán)牙設(shè)備的互聯(lián),隨后允許設(shè)備進(jìn)行RS232(或類似的)串行線纜仿真。這種配置文件涵蓋的情境能支持傳統(tǒng)應(yīng)用,這里藍(lán)牙作為線纜連接的替代,使用虛擬串行端口抽象。利用SPP,互聯(lián)設(shè)備發(fā)送和接收數(shù)據(jù)就像互聯(lián)的RX和TX線路一樣。
     
    圖1顯示了SPP中使用的協(xié)議和實(shí)體。基帶、LMP和L2CAP是OSI 中的第1層和第2層藍(lán)牙協(xié)議。RFCOMM是藍(lán)牙版GSM TS 07.10標(biāo)準(zhǔn),GSM手機(jī)用它在一個(gè)物理串行線纜上多路復(fù)用多個(gè)流,為串行端口仿真提供通信協(xié)議。SDP是藍(lán)牙服務(wù)發(fā)現(xiàn)協(xié)議,支持藍(lán)牙設(shè)備發(fā)現(xiàn)其它藍(lán)牙設(shè)備提供的服務(wù)和相關(guān)參數(shù)。
    配置文件協(xié)議棧包括SPP使用的不同協(xié)議和實(shí)體
    圖1:配置文件協(xié)議棧包括SPP使用的不同協(xié)議和實(shí)體。
     
    就使用SPP的無(wú)線引導(dǎo)加載而言,兩側(cè)運(yùn)行的應(yīng)用為PC上的引導(dǎo)加載器主機(jī)應(yīng)用或主機(jī)微控制器上的UART接口以及目標(biāo)系統(tǒng)上的UART引導(dǎo)加載器。
     
    Bluefruit EZ-Link模塊或JY-MCU模塊等標(biāo)準(zhǔn)藍(lán)牙到串行適配器能配對(duì)具備藍(lán)牙功能的計(jì)算機(jī),并顯示為串行COM端口。將藍(lán)牙模塊和PC配對(duì)后,設(shè)備管理器中會(huì)列出兩個(gè)串行COM端口。之所以會(huì)出現(xiàn)這種情況,是因?yàn)樗{(lán)牙串行端口是基于RFCOMM,與物理串行端口不同,它在建立藍(lán)牙虛擬連接時(shí)同時(shí)需要服務(wù)器和客戶端。
     
    設(shè)備管理器中列出的一個(gè)端口是入站端口(服務(wù)器),另一個(gè)則是出站端口(客戶端)。然而,用其中一個(gè)串行端口建立連接后,它就是雙向的。如果PC發(fā)起與藍(lán)牙模塊的連接,則使用出站端口。如果藍(lán)牙模塊發(fā)起連接,則使用入站端口。對(duì)于目標(biāo)系統(tǒng)的無(wú)線引導(dǎo)加載而言,必須使用出站端口,因?yàn)镻C是主機(jī),它必須發(fā)起與藍(lán)牙模塊的連接。
     
    藍(lán)牙模塊必須連接到運(yùn)行UART引導(dǎo)加載器的目標(biāo)系統(tǒng)上的UART接口。舉例來(lái)說(shuō),在關(guān)閉電路板的USB到串行部分以無(wú)線引導(dǎo)加載PSoC 4的情況下,藍(lán)牙模塊可連接到CY8CKIT-049 PSoC 4原型設(shè)計(jì)套件。PSoC 4原型設(shè)計(jì)板易于使用,成本較低,能在主板兼容報(bào)頭上提供PSoC 4微控制器的所有I/O引腳,從而支持快速原型設(shè)計(jì),而且配套提供預(yù)編程的UART引導(dǎo)加載器。
     
    藍(lán)牙模塊的波特率應(yīng)匹配目標(biāo)系統(tǒng)上引導(dǎo)加載器配置的波特率。大多數(shù)藍(lán)牙模塊支持AT命令來(lái)配置模塊的波特率,這需要用到USB-UART橋接器或配備UART接口的微控制器。PSoC 4原型設(shè)計(jì)板的USB-串行器件部分也可利用AT命令配置藍(lán)牙模塊的波特率。引導(dǎo)加載器主機(jī)應(yīng)用工具則用藍(lán)牙虛擬串行端口來(lái)無(wú)線執(zhí)行引導(dǎo)加載操作。圖2給出了主機(jī)和目標(biāo)系統(tǒng)的系統(tǒng)級(jí)方框圖。
    系統(tǒng)級(jí)方框圖顯示主機(jī)和目標(biāo)系統(tǒng)的不同組件
    圖2:系統(tǒng)級(jí)方框圖顯示主機(jī)和目標(biāo)系統(tǒng)的不同組件。
     
    如果引導(dǎo)加載器主機(jī)是另一個(gè)微控制器,那么無(wú)線引導(dǎo)加載程序仍會(huì)在其它藍(lán)牙到串行適配器(連接到主機(jī)微控制器UART接口)的幫助下進(jìn)行。對(duì)于不支持藍(lán)牙的PC而言,標(biāo)準(zhǔn)的USB藍(lán)牙收發(fā)器可用來(lái)建立藍(lán)牙模塊連接。
     
    成功引導(dǎo)加載后,目標(biāo)系統(tǒng)會(huì)開始執(zhí)行新的應(yīng)用。如果需要引導(dǎo)加載另一個(gè)新應(yīng)用,那么目標(biāo)系統(tǒng)必須重啟,以再次啟動(dòng)引導(dǎo)加載器。如果應(yīng)用調(diào)用引導(dǎo)加載器,就能避免這一過(guò)程。引導(dǎo)加載的應(yīng)用響應(yīng)于某種外部事件,如按下按鍵或主機(jī)發(fā)出的具體數(shù)據(jù)命令,從而再次啟動(dòng)引導(dǎo)加載操作,在目標(biāo)系統(tǒng)上載入新的應(yīng)用。
     
    此外,低功耗藍(lán)牙(BLE)模塊也可用于無(wú)線引導(dǎo)加載。與傳統(tǒng)藍(lán)牙不同的是,低功耗藍(lán)牙不使用SPP。不過(guò),對(duì)于低功耗藍(lán)牙而言,所有配置文件和服務(wù)支持全部位于應(yīng)用空間內(nèi)。產(chǎn)品開發(fā)人員能在通用屬性配置文件(GATT)基礎(chǔ)上開發(fā)自己的串行端口服務(wù),滿足BLE模塊需求,并將其用于無(wú)線引導(dǎo)加載。
    [page]
    引導(dǎo)加載器的設(shè)計(jì)考慮因素:
     
    穩(wěn)健可靠的引導(dǎo)加載器應(yīng)當(dāng)能夠檢測(cè)、報(bào)告并有效處理無(wú)線引導(dǎo)加載過(guò)程中出現(xiàn)的錯(cuò)誤,如傳輸過(guò)程中的數(shù)據(jù)包丟失、數(shù)據(jù)損壞和閃存寫入錯(cuò)誤等。通過(guò)存儲(chǔ)應(yīng)用的校驗(yàn)和或循環(huán)冗余碼(CRC),可以執(zhí)行閃存錯(cuò)誤校驗(yàn)。在引導(dǎo)加載操作開始后,位會(huì)被清空。如果應(yīng)用成功下載并安裝,就會(huì)更新。舉例來(lái)說(shuō),如果在引導(dǎo)加載時(shí)斷電,那么在重啟時(shí)引導(dǎo)加載器應(yīng)檢測(cè)無(wú)效的校驗(yàn)位,而且不會(huì)讓部分加載的應(yīng)用獲得控制權(quán),而是等待主機(jī)啟動(dòng)新的引導(dǎo)加載操作。
     
    一旦新應(yīng)用實(shí)現(xiàn)引導(dǎo)加載,那么引導(dǎo)加載器必須確認(rèn)引導(dǎo)加載鏡像是否有效,并讓新應(yīng)用獲得控制權(quán)。引導(dǎo)加載器還應(yīng)當(dāng)能檢查閃存中的自身鏡像,判斷其是否有效。另一個(gè)重要考慮因素是避免應(yīng)用覆蓋引導(dǎo)加載器本身。如果引導(dǎo)加載器損壞或被應(yīng)用覆蓋,那么系統(tǒng)就無(wú)法工作,需要對(duì)系統(tǒng)的引導(dǎo)加載器進(jìn)行重新編程。為了避免這種情況,閃存的引導(dǎo)加載器區(qū)域必須進(jìn)行保護(hù),避免引導(dǎo)加載器代碼被意外覆蓋。
     
    引導(dǎo)加載器設(shè)計(jì)的另一個(gè)重要考慮因素就是何時(shí)開始與主機(jī)通信。在確認(rèn)應(yīng)用有效后,引導(dǎo)加載器可等待一定時(shí)間讓主機(jī)開始新的引導(dǎo)加載操作。如果等待時(shí)間過(guò)短,主機(jī)可能還無(wú)法可靠啟動(dòng)通信。如果等待時(shí)間過(guò)長(zhǎng),產(chǎn)品的整體啟動(dòng)時(shí)間就會(huì)太長(zhǎng)。與引導(dǎo)加載新應(yīng)用時(shí)避免設(shè)備重啟的解決方案類似,這個(gè)時(shí)序問(wèn)題可通過(guò)讓應(yīng)用調(diào)用引導(dǎo)加載器進(jìn)行解決。
     
    為了確保目標(biāo)系統(tǒng)無(wú)錯(cuò)誤,我們可用多應(yīng)用引導(dǎo)加載器在閃存中存儲(chǔ)多個(gè)應(yīng)用鏡像。如果引導(dǎo)加載器檢測(cè)到某個(gè)應(yīng)用鏡像被損壞,那么引導(dǎo)加載器能跳到另一個(gè)應(yīng)用鏡像。能夠保存的應(yīng)用數(shù)量取決于目標(biāo)系統(tǒng)的閃存大小。
     
    此外,引導(dǎo)加載器中還可包含簡(jiǎn)單的調(diào)試功能,可用UART接口和Tera Term等終端仿真程序?qū)崿F(xiàn),從而在PC上顯示調(diào)試信息。調(diào)試信息還能用相同的藍(lán)牙到串行調(diào)試器無(wú)線發(fā)送。
     
    定制引導(dǎo)加載器主機(jī)工具:
     
    不同微控制器可直接使用標(biāo)準(zhǔn)的引導(dǎo)加載器主機(jī)工具應(yīng)用,無(wú)需對(duì)SPP的無(wú)線引導(dǎo)加載進(jìn)行任何修改。然而,引導(dǎo)加載器主機(jī)工具可以進(jìn)行定制,從而更好地滿足無(wú)線引導(dǎo)加載需求,并嵌入終端仿真器窗口,以查看調(diào)試信息,甚至能通過(guò)SPP無(wú)線發(fā)送具體數(shù)據(jù)來(lái)從應(yīng)用中調(diào)用引導(dǎo)加載器。圖3顯示了具有嵌入式終端仿真器窗口的定制引導(dǎo)加載器主機(jī)工具應(yīng)用實(shí)例。為充分利用終端仿真器,引導(dǎo)加載到目標(biāo)系統(tǒng)的任何新應(yīng)用都必須包含UART接口,并能在主機(jī)向目標(biāo)系統(tǒng)發(fā)送具體數(shù)據(jù)時(shí)調(diào)用引導(dǎo)加載器。UART接口可在引導(dǎo)加載器和應(yīng)用之間共享。
    具有嵌入式終端仿真器窗口的定制引導(dǎo)加載器主機(jī)工具應(yīng)用實(shí)例。
    圖3:具有嵌入式終端仿真器窗口的定制引導(dǎo)加載器主機(jī)工具應(yīng)用實(shí)例。
     
    如果采用稍微復(fù)雜的多應(yīng)用引導(dǎo)加載器設(shè)計(jì),我們也能利用SPP從主機(jī)向目標(biāo)系統(tǒng)無(wú)線發(fā)送不同消息,從而在閃存中切換存儲(chǔ)的多個(gè)應(yīng)用,這就能節(jié)約新應(yīng)用引導(dǎo)加載所需的時(shí)間。
    要采購(gòu)微控制器么,點(diǎn)這里了解一下價(jià)格!
    特別推薦
    技術(shù)文章更多>>
    技術(shù)白皮書下載更多>>
    熱門搜索
    ?

    關(guān)閉

    ?

    關(guān)閉

    日本无码色情三级播放| 久久亚洲av无码精品浪潮| 亚洲日韩中文无码久久| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 免费看又黄又无码的网站| 暖暖免费在线中文日本| 夜夜添无码试看一区二区三区| 亚洲中文字幕无码久久2017 | AV无码久久久久不卡网站下载| 亚洲成?v人片天堂网无码| 人妻少妇精品视中文字幕国语| 久久久久久无码Av成人影院| 久久亚洲精品成人av无码网站| 中文字幕精品视频| 精品久久久无码人妻中文字幕| 亚洲中文字幕无码一久久区| 无码人妻丰满熟妇啪啪网站| 亚洲乱码中文字幕手机在线| 婷婷色中文字幕综合在线| 久久国产三级无码一区二区| 国产AV无码专区亚洲AV男同| 亚洲成A∨人片天堂网无码| 久久亚洲日韩看片无码| 最近中文字幕完整版免费高清| 无码专区久久综合久中文字幕| 亚洲国产精品无码av| 中文字幕无码久久精品青草| 无码中文字幕乱在线观看| 亚洲一区二区无码偷拍| 国产精品亚洲w码日韩中文| 日本免费在线中文字幕| 一区二区三区人妻无码| 中文字幕无码久久精品青草| 无码人妻一区二区三区精品视频 | 2021无码最新国产在线观看| 中文字幕免费不卡二区| 精品无码久久久久国产| 亚洲中文字幕在线观看| 日韩中文字幕精品免费一区| 无码精品一区二区三区在线| 久久精品国产亚洲AV无码偷窥|