<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Bootloader技術(shù)在數字信號控制器中的應用

Bootloader技術(shù)在數字信號控制器中的應用

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

摘 要: 介紹了Boot loader(引導加載)的原理, 著(zhù)重討論了M icroch ip公司的DSPIC30F系列( DSC)的Boo tloader程序的編寫(xiě)及F lash存儲器運行時(shí)自編程( RTSP)的原理, 并實(shí)現了電子皮帶秤控制儀表程序的在線(xiàn)自編程升級。

本文引用地址:http://dyxdggzs.com/article/170924.htm

1 引 言

當前, 隨著(zhù)MCU、DSP等高性能集成電路的廣泛, 大部分電子設備需要對用戶(hù)程序進(jìn)行升級以達到完善、豐富系統功能的目的。但目前對這類(lèi)設備的程序升級大多采用開(kāi)發(fā)人員攜帶編程工具到現場(chǎng)進(jìn)行操作的方式, 這樣做給系統的統一管理和維護造成很大困難。針對這一問(wèn)題提出一種基于dsPIC30系列芯片實(shí)現用戶(hù)程序在線(xiàn)自編程升級的方法, 從而達到了用戶(hù)程序升級時(shí)無(wú)須下載器, 操作簡(jiǎn)單、快捷的目的。

2 Boo tloader的原理

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

在嵌入式領(lǐng)域中, Bootloader是嚴重地依賴(lài)于硬件的, 因此想要建立一個(gè)通用的Bootloader 幾乎是不可能的。以dsPIC30F系列為例,深入討論在該系列芯片中編寫(xiě)Boot loader程序的方法, 這種方法同樣適用于一些其它類(lèi)型的微。

3 Bootloader的操作模式

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

啟動(dòng)加載( Boot Load ing)模式: 這種模式也稱(chēng)為 自主 ( AutONomous)模式。也即Bootloader從目標機上的某個(gè)固態(tài)存儲設備上將用戶(hù)程序加載到RAM 中運行, 整個(gè)過(guò)程并沒(méi)有用戶(hù)的介入。這種模式是Boo tloader的正常工作模式。

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

4 dsPIC30F系列芯片簡(jiǎn)介

M icroch ip公司推出的dsPIC30F 系列控制器( DSC)可以靈活地運行一個(gè)常駐FLASH 的引導加載程序( Bootloader Prog ram )實(shí)現對用戶(hù)程序的在線(xiàn)自編程升級??梢允褂萌魏慰捎玫臄祿涌诤拖嚓P(guān)協(xié)議讀取代碼, 然后將代碼寫(xiě)入(編程)到FLASH 存儲器中, 從而實(shí)現電子設備在線(xiàn)自編程升級程序代碼的目的。dsPIC30F系列數字信號控制器的Boo tloader程序需要自行編寫(xiě), 并且可以通過(guò)SPI、UART等各種數據接口來(lái)接收PC 機發(fā)送的數據。顯然, 采用了串口( RS232 方式) 與PC 機進(jìn)行通信最為方便。

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

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

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

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

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

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

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


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

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>