999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

內部FLASH刷新的TMS32F2812離線升級方法

2018-03-01 00:36:54,,
單片機與嵌入式系統應用 2018年2期
關鍵詞:程序

,,

(1.解放軍96610部隊,北京 100010;2.陸軍裝甲兵學院)

引 言

圖1 TMS320F2812內存映射圖

TMS320F2812作為TI公司推出的C2000系列DSP中性能最高的一款,工作時鐘頻率最高可達150 MHz,具有強大的數字信號處理和事件管理能力,其內部存儲包括SRAM和自帶的128 KB的FLASH,可以直接將程序寫入其中運行,因此開發和使用非常方便[1]。

芯片在使用時,經常會遇到程序升級的情況,TMS320F2812通常需要專用的燒寫器和軟件才能寫入,在程序調試過程可以使用該方法,但是當產品投入使用后,或者不具備使用燒寫器的條件,就需要一種離線的方法進行程序升級。

本文就TMS320F2812離線升級技術進行了探討,并提出了一種完備的設計方案,可作為該類型芯片的參考設計方案。

1 TMS320F2812存儲劃分及啟動過程

1.1 內部存儲單元劃分

TMS320F2812的內存映射如圖1所示,由26 KB的片上SRAM、256 KB的片上FLASH、片上OTP和片上BootRom組成。程序的代碼和數據可以在片上SRAM和片上FLASH中運行。

1.2 啟動模式簡介

TMS320F2812支持多種啟動模式,如FLASH引導裝載、SCI引導裝載、并行GPIO引導裝載、SPI引導裝載等,本文介紹的方法是在FLASH引導裝載下進行的,其啟動過程如下:

① 當XMP/MC為低電平時,TMS320F2812處于微計算機模式,此時向量表指向BootRoom;

② 到BootRoom的0x3F FC00處取出復位向量,跳轉到Boot函數,執行完后跳轉至0x3F 7FF6處,這個時候指令占據兩個字節,剛好在代碼模塊之前;

③ 取出跳轉指令,跳轉到自己的指定地址或者C初始化的入口_C_INT00(0x3F 6000)處;

④ 在C初始化的入口_C_INT00對一些變量、堆棧和寄存器進行必要的設置,該函數在C的庫函數內(RTS Library);

⑤ 進入main函數。

從其啟動過程來看,要能順利進入主程序,必須要保證第③步的正確跳轉,由于InitBoot函數執行完后跳轉到0x3F 7FF6處(codestart處),此位置剛好在128位(CSM)密碼位置之前兩個字節,因此必須在此處放置跳轉指令,TI給出的參考代碼“DSP281x_CodeStartBranch.asm”用于放置跳轉指令,該文件可在TI官網上下載。

1.3 TMS320F2812的內存及數據段的劃分

與其他DSP一樣,TMS320F2812也是依靠Memory和Section兩個偽指令來進行內存的劃分和段分配。MEMORY偽指令用來表示實際存在目標系統中的可以使用的存儲器范圍,在這里每個存儲器都有自己的名字、起始地址和長度。

SECTIONS偽指令是用來描述輸入端是如何組合到輸出端內的。這兩個偽指令都在每個工程的.cmd文件中應用,其中,.cmd文件一般包括兩個基本的段,初始化段和非初始化段。初始化段包括代碼和常數等必須在DSP上電之后有效的數。故初始化段必須保存在如片內FLASH等非遺失性存儲器中,非初始化段在程序運行過程中才向變量內寫數據,可以映射到易失性存儲器如RAM中。其中,與離線升級關系密切的是初始化段的數據,它包括的類型如表1所列。

表1 .cmd文件中主要的初始化段

續表1

實現DSP的離線升級,本質上可以通過更新FLASH中的初始化段數據進行。

2 TMS320F2812基于FLASH刷新進行離線升級的基本原理

2.1 TMS320F2812的FLASH操作

TMS320F2812的FLASH操作是通過調用其提供的庫文件實現的,當前最新的庫文件版本是Flash281x_API_V210.lib,其中定義了對FLASH進行擦除、寫入和驗證的函數:Flash_Erase、Flash_Program和Flash_Verify等函數,這些函數在應用時必須要將代碼搬移至SRAM中運行,具體方法可見官網的使用手冊,需要注意的是在應用時,該庫文件要和一些其他涉及到內存操作的函數(例如memcpy等)隔離在不同的RAM段中運行,否則容易出現操作錯誤。

2.2 目標文件轉換

DSP通過編譯器CCS編譯出后綴名為.out的文件,成為公共對象文件,包含了FLASH各段存放的數據。要實現TMS320F2812的更新,必須要將這些數據提取出來,這要借助TI公司提供的Hex2000.cmd工具,通過命令行調用或者批處理的方法來實現,下面介紹批處理方法。

① 編寫一個命令腳本文件,此處命名為Convert.cmd,在其中寫入如下命令:

-memwidth 16 %表示數據寬度為16,與TMS320F2812內部Flash的數據寬帶一致%

-a %表示生成文本格式數據,生成其他格式請見參考文獻[2]%

Test.out %此處寫入要轉換的對象%

-map Test.map %表示生成映射文件名稱%

ROMS{

DSP_CON: org = 0x3D8000, len = 0x01FFF8, romwidth = 16, files = {DSP_CON.dat}

} %表示從.out的地址0x3D8000開始轉換,長度為0x01FFF8,生成文件名為DSP_CON.txt %

② 編寫一個批處理文件,命名為Build.bat,其中寫入如下的命令:

(1)形態。36例周圍型小肺癌患者,在經過螺旋CT掃描后,其腫塊形態分為圓形(或類圓形)34例,其比例為94.44%,斑片形2例,其比例為5.56%。

[filepath]hex2000.exe Trans.cmd

其中,filepath為hex2000.exe存放的位置,建議該文件要與Convert.cmd、Build.bat,以及要轉換的目標文件Test.out放置在同一個文件夾下。

③ 雙擊運行批處理文件Build.bat,可看到在該文件夾下會生成兩個文件,一個為DSP_CON.dat,一個為Test.map,其中Test.map為映射文件,表明了每個存儲區的使用及分布情況;DSP_CON.dat為生成的轉換文件,表明了在每個地址處存儲的內容、文本格式。其內容如下:

圖2 轉換文件示意圖

其中,STX表示文件的起始,ETX表示文件的結束,$A3ec000及其后面的數據表示在地址0x3ec000之后要寫入的數據。

由于TMS320F2812的數據寬度是16位的,因此在此地址之后的數據依次為:0x0200、0x0100…,直至數據段結束。因此TMS320F2812離線升級的基本原理就是將轉換后的數據存放至指定地址的FLASH中去。

3 一種可靠的升級軟件架構設計

圖3 程序結構示意圖

由于FLASH本身的性質,TMS320F2812實現升級后,如果發生錯誤,仍需要通過升級進行更正,這就為DSP的軟件設計提出了一個要求,即升級后即使出錯,也不能影響器件原有的離線升級功能。因此在軟件設計時,升級功能和主功能要分開設置在不同的FLASH分區中,可采取如下的形式實現,如圖3所示。

啟動時首先進入升級程序,在升級程序中等待一段時間,如果在此時間內沒有接收到升級命令,再引導主程序運行。為安全可靠地應用,此處給出啟動流程圖如圖4所示。

圖4 啟動流程示意圖

具體實現時,將升級程序和主程序分別編寫,分別配置各自的.cmd文件,使兩個程序的代碼段和常數段分布在不同的存儲段內。例如在升級程序的UPDAT.cmd和主程序的MAIN.cmd文件中這三部分的配置如下:

UPDAT.cmd….text:>FLASHEPAGE=0.const:>FLASHFPAGE=0.econst:>FLASHFPAGE=0…MAIN.cmd….text:>FLASHBPAGE=0.const:>FLASHCPAGE=0.econst:>FLASHCPAGE=0…

此時,主程序的代碼段存放于FLASHB中,其地址為0x3F 4000,升級程序中要引導進入這個地址執行,可使用函數指針來實現,下面給出主要代碼:

#define Main_Func_Addr 0x3F4000 %定義了代碼起始地址為FLASHB

typedef void(*Pfunc)(void); %定義了指向函數的指針類型;

void main(){

Pfunc mainfunc; %定義了一個指向函數的指針

FA100_mainfunc = (void(*)(void))Main_Func_Addr;

%將指針指向該地址

mainfunc(); %引導啟動主程序

}

為實現可靠的升級,數據傳輸過程中的每一幀要有編號和校驗。將數據寫入TMS320F2812的FLASH后,使用Flash_Verify對每一次寫入的數據進行校驗。還要有主程序功能正常標識,表示主程序可用,每次升級前擦除此標識,正常升級后再置位此標識。每次開機啟動時引導主程序前,升級程序可判別此標識,確認是置位狀態再引導主程序。

另外還需要注意的是,如果使用TMS320F2182的CSM_PWL功能,要確保升級升序和主程序的密碼一致,否則會引起芯片FLASH閉鎖。

結 語

[1] TI.TMS320C281X DSP Data Manual, 2011.

[2] Texas Instruments Incorporated.TMS320C281X系列DSP指令和編程指南[M].1版.劉和平,等譯.北京:清華大學出版社,2005.

楊春曉(博士)、吳陟軒(碩士),主要研究方向為通信與信息系統;陳頌(碩士),主要研究方向為信息工程。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 波多野结衣二区| 亚洲一区第一页| 精品成人一区二区三区电影 | 992Tv视频国产精品| 国产成人91精品| 国产91麻豆免费观看| 国产精品欧美激情| 亚洲日韩日本中文在线| 在线视频精品一区| 久久久精品无码一区二区三区| 欧美激情综合| 国产精品高清国产三级囯产AV| 凹凸国产分类在线观看| 亚洲成aⅴ人片在线影院八| 亚洲第一视频免费在线| 婷婷五月在线视频| 国产成人精品免费av| jizz国产视频| 国产午夜一级毛片| 青青草原偷拍视频| 国产迷奸在线看| 国产视频一二三区| 亚洲婷婷六月| 色成人综合| 亚洲精品片911| 亚洲精品成人片在线播放| 草草影院国产第一页| 免费人成视频在线观看网站| 人妖无码第一页| 毛片视频网址| 亚洲精品手机在线| 久操线在视频在线观看| 香蕉视频在线观看www| 亚洲国产精品人久久电影| 久久久精品国产SM调教网站| 无码久看视频| 久久婷婷国产综合尤物精品| 国产一级精品毛片基地| 制服丝袜一区二区三区在线| 亚洲欧美在线精品一区二区| 亚洲日韩AV无码精品| 全免费a级毛片免费看不卡| 久久男人资源站| 午夜日韩久久影院| 国产aⅴ无码专区亚洲av综合网| 青草免费在线观看| 色爽网免费视频| 亚洲伦理一区二区| 欧美另类视频一区二区三区| 一本一道波多野结衣一区二区| 日本日韩欧美| 国产爽妇精品| 亚洲人成网站18禁动漫无码 | 亚洲精品动漫| 国产精品久久国产精麻豆99网站| 国产精品无码AV片在线观看播放| 国产成人精品视频一区二区电影| 色久综合在线| 亚洲欧美国产视频| 精品伊人久久大香线蕉网站| 亚洲开心婷婷中文字幕| 深爱婷婷激情网| 55夜色66夜色国产精品视频| 亚洲精品高清视频| 免费三A级毛片视频| 亚洲精品不卡午夜精品| 欧美亚洲国产一区| 伊人天堂网| 中文字幕在线观看日本| 亚洲免费播放| 老司机精品久久| 国产精品刺激对白在线| 黄色在线不卡| 19国产精品麻豆免费观看| 色噜噜狠狠狠综合曰曰曰| 99精品高清在线播放| 真人免费一级毛片一区二区| 91色在线视频| 九九热在线视频| 亚洲成在人线av品善网好看| 国产白浆在线观看| 91蜜芽尤物福利在线观看|