色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Bootloader技術的原理及在dsPIC30F系列數字信號控制器的應用

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2018-12-24 09:26 ? 次閱讀

1 引 言

當前, 隨著MCUDSP等高性能集成電路的廣泛應用, 大部分電子設備需要對用戶程序進行升級以達到完善、豐富系統功能的目的。但目前對這類設備的程序升級大多采用開發人員攜帶編程工具到現場進行操作的方式, 這樣做給系統的統一管理和維護造成很大困難。針對這一問題提出一種基于dsPIC30系列芯片應用Bootloader技術實現用戶程序在線自編程升級的方法, 從而達到了用戶程序升級時無須下載器, 操作簡單、快捷的目的。

2 Boo tloader的原理

Bootloader相當于PC主板上的B IOS, 是最底層的引導軟件。Boo tloader是一段固化在嵌入式系統目標系統ROM或者是諸如FLASH 等非易失存儲器中的一段程序, 它的主要作用就是引導操作系統或用戶程序的運行。系統上電后Boo tloader將首先接管系統, 在進行一些最基本的上電自檢后, Bootloader將對系統的硬件進行初始化, 為引導操作系統作好準備, 接下來, Bootloader需要將操作系統的代碼拷貝到主存儲器的特定地址, 最后Boot loader將控制權交給操作系統, 由操作系統完成接下來的工作;在不含操作系統的系統中, Bootloader可以完成這樣一些操作: 分配程序存儲空間; 重新映射復位和中斷向量; 將程序代碼從片外加載到程序區, 執行時再將代碼加載到RAM 中以便快速執行; 檢測是否需要下載新的用戶代碼, 若需要則通過某種通信方式接收新代碼并將其寫入指定程序存儲空間中, 若不需要, 則執行原有用戶代碼。

嵌入式領域中, Bootloader是嚴重地依賴于硬件的, 因此想要建立一個通用的Bootloader 幾乎是不可能的。以dsPIC30F系列數字信號控制器為例,深入討論在該系列芯片中編寫Boot loader程序的方法, 這種方法同樣適用于一些其它類型的微控制器

3 Bootloader的操作模式

大多數Bootloader 都包含兩種不同的操作模式: “啟動加載 ”模式和“下載”模式, 這兩種模式的定義如下:

啟動加載( Boot Load ing)模式: 這種模式也稱為 自主 ( Autonomous)模式。也即Bootloader從目標機上的某個固態存儲設備上將用戶程序加載到RAM 中運行, 整個過程并沒有用戶的介入。這種模式是Boo tloader的正常工作模式。

下載( Dow nloading) 模式: 在這種模式下, 目標機上的Bootloader將通過串口等通信手段從PC 機下載文件, 比如: 下載內核映像和根文件系統映像等。從PC機下載的文件通常首先被Bootloader保存到目標機的RAM中, 然后再被Bootloader寫到目標機上的FLASH類固態存儲設備中。Boo tloader的這種模式通常在系統程序更新時使用。工作于這種模式下的Boot loader通常都會向它的終端用戶提供一個簡單的接口

4 dsPIC30F系列芯片簡介

M icroch ip公司推出的dsPIC30F 系列數字信號控制器( DSC)可以靈活地運行一個常駐FLASH 的引導加載程序( Bootloader Prog ram )實現對用戶程序的在線自編程升級。可以使用任何可用的數據接口和相關協議讀取代碼, 然后將代碼寫入(編程)到FLASH 存儲器中, 從而實現電子設備在線自編程升級程序代碼的目的。dsPIC30F系列數字信號控制器的Boo tloader程序需要自行編寫, 并且可以通過SPI、UART等各種數據接口來接收PC 機發送的數據。顯然, 采用了串口( RS232 方式) 與PC 機進行通信最為方便。

5 dsPIC30F系列芯片FLASH 存儲器的運行時自編程( RTSP)

dsPIC30F系列數字信號控制器內部包含了用于執行用戶代碼的FLASH 存儲器。用戶可以使用兩種方法對此存儲器編程:a運行時自編程( Run-T ime Self Programm ing, RTSP ); b 在線串行編程( In- C ircu it Serial Programm ing, ICSP)。其中RTSP方式是由用戶軟件執行的, 允許用戶代碼修改閃存程序存儲器的內容, 是實現用戶程序在線自編程升級的基礎。

dsPIC30F系列芯片對FLASH 存儲器的運行時自編程是通過表指令TBLWT、TBLRD 和NVM 寄存器實現的。FLASH 存儲器是由行和板構成的。每行由32 條指令( 96 字節) 組成。通常, 每個板由128行組成( 4K # 24條指令)。RTSP可以讓用戶每次擦除一行( 32條指令)以及一次編程32條指令。

程序存儲器的每個板包括能夠保存32條編程數據指令的寫鎖存器。這些鎖存器不是存儲器映射的。

用戶訪問寫鎖存器的惟一方法是使用寫表指令。在實際編程操作前, 必須先用寫表指令將待寫數據裝入板寫鎖存器。待編程入板的數據通常是按以下順序裝入寫鎖存器的: 指令0, 指令1, 依此類推。所有的32位寫鎖存器必須在編程操作期間寫入, 以確保覆蓋保存在鎖存器中的舊數據。

RTSP編程的基本步驟是先建立一個表指針, 然后執行一系列TBLWT 指令以裝入寫鎖存器。編程是通過將NVMCON 寄存器的特殊位置1 進行的。

需要將32條TBLWTL和32 條TBLWTH 指令裝入四條指令。如果需要對多個不連續的程序存儲器區進行編程, 應該為每個區域和下一個要寫入的一組寫鎖存器修改表指針。

6 Bootloader程序編寫

6. 1 dsPIC30F系列器件存儲空間的分配

在編寫Bootloader程序之前, 我們必須首先了解芯片的程序存儲空間分配情況。dsPIC30F 系列芯片包含144K字節的FLASH 程序存儲空間, 尋址范圍為0x0000100~ 0x017FFE, 圖1 ( a)為dsPIC30F系列芯片的程序存儲器地址映射情況。

0x00~ 0x03地址單元是復位向量; 0x04~ 0xFE地址單元是中斷向量表和后備中斷向量表( IVT /A IVT) ; 在其后的0x100~ 0x17FFE單元為48K指令字的用戶閃存程序存儲器。原則上, Boot loader程序可以放在整個程序空間中的任何位置, 但是為了簡單方便、具有通用性和盡量減少對用戶程序的影響,本設計使用了0x100 ~ 0x4FE 的一段程序存儲器( Boo tloader程序與用戶程序的代碼總量不能超過144KB)。Bootloader程序后面便可存放用戶程序,但是受到FLASH 存儲器頁的限制, 用戶程序不可緊跟在Boo tloader程序之后, 它必須從下一個FLASH存儲器頁的開始處(如0x500) 存放, 如圖1 ( b) 所示。

Bootloader技術的原理及在dsPIC30F系列數字信號控制器的應用

圖1 程序存儲器地址映射

6. 2 . hex文件的解析

當dsPIC30F系列數字信號控制器的程序編寫完成之后, 利用開發平臺MPLAB IDE編譯后會生成一個. hex 文件, 將這個. hex 文件燒寫到FLASH 存儲器中系統才能運行, 因此要完成的任務就是將這個. hex 文件下載到目標系統中。如果直接從PC 端將. hex 文件中的全部內容發送給下位機, 就需要Boot loader程序來解析提取要寫入存儲器的數據, 這樣做勢必加大Boo tloader程序代碼長度, 也會影響整個Boo tloader過程的時間, 因此本設計采用在PC機端程序解析. hex 文件的方法。為了正確地將這個. hex文件下載到下位機中必須對. hex 文件有一個比較深入的了解。. hex文件的格式如下:

: BBAAAATTHHHH……HHCC

BB: 二位16 進制值, 表示該幀數據的字節長度。

AAAA: 四位16 進制值, 表示隨后數據的起始地址, 該地址為字節地址。

TT: 二位16進制值, 表示數據幀類型( 00 : 數據幀; 01 : 結束幀; 04 : 擴展地址幀)。

HH: 16進制值, 表示具體的數據, 即具體程序代碼。

CC: 二位16進制的校驗碼, 使該幀全部以二位16進制相加后總和為0。

一個. hex 文件可分為5部分代碼: 復位向量代碼、程序代碼、中斷向量代碼、后備中斷向量代碼和結束代碼, 除結束代碼僅含結束幀外, 其余各部分代碼都由擴展地址幀和數據幀組成, 其中僅數據幀存儲了用戶程序信息。因此PC 機端程序僅保留擴展地址幀和數據幀的內容并按順序進行發送即可, 下位機接收數據后根據擴展地址幀可以直接將用戶代碼寫入FLASH 存儲器相應的地址單元中, 從而提高了整個Bootloader的效率。

6. 3 dsPIC30F器件. g ld文件的修改

Bootloader程序運行時, 需要讀出用戶程序中預先設置好的一個延時值(本設計為1s) 作為下位機等待PC 機發送升級命令的周期, 還要指定用戶程序起始地址以便Boot loader程序執行完畢后可以繼續執行用戶程序。為了滿足這兩個要求, 必須修改用戶程序的鏈接文件( . g ld文件), 以指定用戶程序的起始地址和Bootloader 程序的延時周期。對于. g ld文件的具體修改如圖2所示。

Bootloader技術的原理及在dsPIC30F系列數字信號控制器的應用

圖2 . g ld文件的修改。

6. 4 Boot loader程序流程:

系統上電復位后, 在完成各種初始化配置后首先判斷0x500地址單元中值是否為0xFF, 如果是,則說明系統從未下載過用戶程序, 系統會一直運行Boot loader程序等待PC 機發送下載命令; 如果0x500中的值不是0xFF, 則說明系統中已經下載過用戶程序了, 這時候根據0x500中的值來設置定時器T imer2的初值并開始計時, 如果UART2 在指定的自舉周期內未接收到PC 機發來的下載命令(說明系統不需要下載程序), 系統會自動跳出Boo tloader程序而去運行已有的用戶代碼, 如果UART2在自舉周期內接收到了下載命令, Boo tloader程序會進入循環狀態等待PC機發送數據。如圖3所示。

Bootloader技術的原理及在dsPIC30F系列數字信號控制器的應用


圖3 程序流程圖。

如前文所述, PC 機發送的數據是從. hex 文件中提取的, PC機首先發送擴展地址部分, 下位機接收保存后會繼續等待接收32個指令字( 96字節)并保存到RAM 中, 然后根據接收到的地址擦除FLASH 存儲器中的1行, 擦除FLASH 是通過調用匯編函數E raseMem來進行的, 函數原型如下:

mov# 0x4041, NVMCON ; 使NVMCON 寄存器為擦除FLASH模式

mov # 0x55, W 0

movW0, NVMKEY

mov # 0xAA, W0

movW 0, NVMKEY ; 將0x55、0xAA 寫入密鑰寄存器

bsetNVMCON, #WR ; 開始擦除

nop

nop

return

擦除FLASH存儲器的一行后需要把接收到的32個指令字寫入到FLASH 存儲器寫鎖存器中, 這一過程可以通過函數W riteLatch 實現, 函數原型如下:

movW0, TBLPAG ; 寫表寄存器

tb lw tlW3, [W1]

tb lw thW2, [W1] ; 寫入鎖存器

return

這一步完成之后就可以將接收到的32個指令字寫入FLASH 存儲器了, 其方法與擦除FLASH 類似, 寫完一行后向PC 機發送應答。待FLASH 存儲器全部寫完之后, PC 機會發送表示結束下載的命令, 下位機接收后退出Boo tloader程序, 進入新的用戶程序繼續運行, 從而完成整個在線自編程過程。

7 結束語

dsPIC30F 系列數字信號控制器應用Boot loader實現用戶程序在線自編程升級的方法具有很高的應用價值, 尤其是應用于自主開發的工業自動化儀表時給用戶程序的現場升級帶來了極大的方便。該方法已經成功用于電子皮帶秤控制儀表系統中, 達到了提高系統軟件升級的更換效率、降低升級費用、提高產品制造商對用戶的服務質量滿意度的目的。方法雖然僅以dsPIC30F系列芯片為例, 但對于M icrochip公司生產的其它系列芯片只要略加修改同樣適用。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    50967

    瀏覽量

    424907
  • 控制器
    +關注

    關注

    112

    文章

    16404

    瀏覽量

    178625
  • 數字信號
    +關注

    關注

    2

    文章

    973

    瀏覽量

    47596
收藏 人收藏

    評論

    相關推薦

    數字信號和模擬信號的特點及應用

    引言 數字信號和模擬信號是兩種基本的信號類型。數字信號是由離散的數值組成的信號,通常用于數字設備
    的頭像 發表于 08-25 15:53 ?1202次閱讀

    數字信號是離散的還是連續的

    數字信號是一種離散的信號,它具有離散的幅度和時間特性。與模擬信號相比,數字信號時間上是離散的,幅度上也是離散的。 一、
    的頭像 發表于 08-11 10:49 ?1973次閱讀

    數字信號是什么信號的組合

    離散的信號,它由一系列數字值組成,這些數字時間上是離散的。與模擬信號不同,
    的頭像 發表于 08-11 10:47 ?914次閱讀

    數字信號包括哪些 數字信號的特點是什么

    數字信號是一種以數字形式表示的信號,它在現代通信和信息技術中扮演著重要的角色。 數字信號的類型 二進制
    的頭像 發表于 08-11 10:44 ?2334次閱讀

    SM320F28335-HT數字信號控制器(DSC)數據表

    電子發燒友網站提供《SM320F28335-HT數字信號控制器(DSC)數據表.pdf》資料免費下載
    發表于 08-08 11:02 ?0次下載
    SM320<b class='flag-5'>F</b>28335-HT<b class='flag-5'>數字信號</b><b class='flag-5'>控制器</b>(DSC)數據表

    Microchip發布dsPIC33A系列數字信號控制器

    嵌入式系統技術日新月異的今天,對高性能與實時控制精度的追求已成為行業發展的核心驅動力。為此,全球領先的半導體解決方案供應商Microchip Technology(微芯科技公司)隆重推出了其最新力作——
    的頭像 發表于 08-06 18:13 ?1342次閱讀

    TMS320F2833x、TMS320F2823x數字信號控制器(DSC)TMS320C2834x Delfino微控制器數據表

    電子發燒友網站提供《TMS320F2833x、TMS320F2823x數字信號控制器(DSC)TMS320C2834x Delfino微控制器
    發表于 08-03 11:14 ?0次下載
    TMS320<b class='flag-5'>F</b>2833x、TMS320<b class='flag-5'>F</b>2823x<b class='flag-5'>數字信號</b><b class='flag-5'>控制器</b>(DSC)TMS320C2834x Delfino微<b class='flag-5'>控制器</b>數據表

    TMS320F281x數字信號處理數據表

    電子發燒友網站提供《TMS320F281x數字信號處理數據表.pdf》資料免費下載
    發表于 08-03 09:24 ?0次下載
    TMS320<b class='flag-5'>F</b>281x<b class='flag-5'>數字信號</b>處理<b class='flag-5'>器</b>數據表

    SM320F28335-EP數字信號控制器(DSC)數據表

    電子發燒友網站提供《SM320F28335-EP數字信號控制器(DSC)數據表.pdf》資料免費下載
    發表于 08-02 17:22 ?0次下載
    SM320<b class='flag-5'>F</b>28335-EP<b class='flag-5'>數字信號</b><b class='flag-5'>控制器</b>(DSC)數據表

    Microchip推出dsPIC33A系列數字信號控制器(DSC)

    隨著嵌入式系統日益復雜以及對高性能的需求也越來越大,Microchip Technology(微芯科技公司)推出了dsPIC33A系列數字信號控制器(DSC)。工程師能夠創建復雜的計算
    的頭像 發表于 07-31 16:44 ?1033次閱讀

    數字信號采集的作用是什么 數字信號采集的特點

    數字信號采集(Digital Signal Recorder,簡稱DSR)是一種用于采集、記錄和分析模擬信號的電子設備。它廣泛應用于各種領域,如科學研究、工業生產、通信、醫療、交通等。本文將詳細
    的頭像 發表于 05-31 14:25 ?1877次閱讀

    數字信號處理的特點、作用及種類

    隨著信息技術的飛速發展,數字信號處理(Digital Signal Processor,簡稱DSP)作為數字信號處理的核心設備,通信、音
    的頭像 發表于 05-22 18:20 ?2553次閱讀

    Microchip推出基于dsPIC? DSC的新型集成電機驅動控制器、柵極驅動和通信整合到單個器件

    為了空間受限的應用中實現高效、實時的嵌入式電機控制系統,MicrochipTechnologyInc.(微芯科技公司)推出基于dsPIC數字信號
    的頭像 發表于 03-08 08:22 ?472次閱讀
    Microchip推出基于<b class='flag-5'>dsPIC</b>? DSC的新型集成電機驅動<b class='flag-5'>器</b>將<b class='flag-5'>控制器</b>、柵極驅動<b class='flag-5'>器</b>和通信整合到單個器件

    Microchip推出基于dsPIC數字信號控制器的新型集成電機驅動系列

    為了空間受限的應用中實現高效、實時的嵌入式電機控制系統,Microchip Technology Inc.(微芯科技公司)推出基于dsPIC數字信號
    的頭像 發表于 02-27 16:03 ?961次閱讀
    Microchip推出基于<b class='flag-5'>dsPIC</b><b class='flag-5'>數字信號</b><b class='flag-5'>控制器</b>的新型集成電機驅動<b class='flag-5'>器</b><b class='flag-5'>系列</b>

    數字信號電纜測試的重要性 數字信號電纜測試的方法和技術

    數字信號電纜測試的重要性 數字信號電纜測試的方法和技術 數字信號電纜測試的重要性: 隨著現代通信技術的發展,
    的頭像 發表于 02-01 15:48 ?736次閱讀
    主站蜘蛛池模板: 午夜福利不卡片在线播放免费| 色欲AV亚洲永久无码精品麻豆| 日本69xxxx| 亚洲国产成人精品不卡青青草原| 爆操日本美女| 免费播放美女一级毛片| 一区二区不卡在线视频| 黄色毛片a| 亚洲免费va在线观看| 国产午夜高潮熟女精品AV| 无码成A毛片免费| 国产精品久久久久久久久LI无码 | 大地影院免费观看视频| 美妇教师双飞后菊| 中文字幕国产在线观看| 快播萝莉影院| 2020美女视频黄频大全视频| 久久免费看少妇级毛片蜜臀| 最近中文字幕无吗免费高清| 美女18毛片免费视频| 99久久免费视频6| 色久久一个亚洲综合网| 国产婷婷色综合AV蜜臀AV| 伊人大香线蕉精品在线播放| 麻豆久久婷婷五月国产| 97碰成视频免费| 偷拍自偷拍亚洲精品| 久久操韩国自偷拍| 超碰免费碰免费视频| 亚洲精品美女久久久久99| 久久人妻少妇嫩草AV蜜桃35I| 99热精品一区| FREECHINESE东北女人真爽| 乌克兰内射私拍| 麻豆一二三四区乱码| 高h肉肉乳共妻| 一本色道久久88加勒比—综合| 美女全光末满18勿进| 国产精品2020观看久久| 88福利视频| 亚洲无线观看国产|