亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        內(nèi)部FLASH刷新的TMS32F2812離線升級(jí)方法

        2018-03-01 00:36:54,,
        關(guān)鍵詞:主程序離線代碼

        ,,

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

        引 言

        圖1 TMS320F2812內(nèi)存映射圖

        TMS320F2812作為TI公司推出的C2000系列DSP中性能最高的一款,工作時(shí)鐘頻率最高可達(dá)150 MHz,具有強(qiáng)大的數(shù)字信號(hào)處理和事件管理能力,其內(nèi)部存儲(chǔ)包括SRAM和自帶的128 KB的FLASH,可以直接將程序?qū)懭肫渲羞\(yùn)行,因此開發(fā)和使用非常方便[1]。

        芯片在使用時(shí),經(jīng)常會(huì)遇到程序升級(jí)的情況,TMS320F2812通常需要專用的燒寫器和軟件才能寫入,在程序調(diào)試過程可以使用該方法,但是當(dāng)產(chǎn)品投入使用后,或者不具備使用燒寫器的條件,就需要一種離線的方法進(jìn)行程序升級(jí)。

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

        1 TMS320F2812存儲(chǔ)劃分及啟動(dòng)過程

        1.1 內(nèi)部存儲(chǔ)單元?jiǎng)澐?/h3>

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

        1.2 啟動(dòng)模式簡(jiǎn)介

        TMS320F2812支持多種啟動(dòng)模式,如FLASH引導(dǎo)裝載、SCI引導(dǎo)裝載、并行GPIO引導(dǎo)裝載、SPI引導(dǎo)裝載等,本文介紹的方法是在FLASH引導(dǎo)裝載下進(jìn)行的,其啟動(dòng)過程如下:

        ① 當(dāng)XMP/MC為低電平時(shí),TMS320F2812處于微計(jì)算機(jī)模式,此時(shí)向量表指向BootRoom;

        ② 到BootRoom的0x3F FC00處取出復(fù)位向量,跳轉(zhuǎn)到Boot函數(shù),執(zhí)行完后跳轉(zhuǎn)至0x3F 7FF6處,這個(gè)時(shí)候指令占據(jù)兩個(gè)字節(jié),剛好在代碼模塊之前;

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

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

        ⑤ 進(jìn)入main函數(shù)。

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

        1.3 TMS320F2812的內(nèi)存及數(shù)據(jù)段的劃分

        與其他DSP一樣,TMS320F2812也是依靠Memory和Section兩個(gè)偽指令來進(jìn)行內(nèi)存的劃分和段分配。MEMORY偽指令用來表示實(shí)際存在目標(biāo)系統(tǒng)中的可以使用的存儲(chǔ)器范圍,在這里每個(gè)存儲(chǔ)器都有自己的名字、起始地址和長(zhǎng)度。

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

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

        續(xù)表1

        實(shí)現(xiàn)DSP的離線升級(jí),本質(zhì)上可以通過更新FLASH中的初始化段數(shù)據(jù)進(jìn)行。

        2 TMS320F2812基于FLASH刷新進(jìn)行離線升級(jí)的基本原理

        2.1 TMS320F2812的FLASH操作

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

        2.2 目標(biāo)文件轉(zhuǎn)換

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

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

        -memwidth 16 %表示數(shù)據(jù)寬度為16,與TMS320F2812內(nèi)部Flash的數(shù)據(jù)寬帶一致%

        -a %表示生成文本格式數(shù)據(jù),生成其他格式請(qǐng)見參考文獻(xiàn)[2]%

        Test.out %此處寫入要轉(zhuǎn)換的對(duì)象%

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

        ROMS{

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

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

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

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

        [filepath]hex2000.exe Trans.cmd

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

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

        圖2 轉(zhuǎn)換文件示意圖

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

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

        3 一種可靠的升級(jí)軟件架構(gòu)設(shè)計(jì)

        圖3 程序結(jié)構(gòu)示意圖

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

        啟動(dòng)時(shí)首先進(jìn)入升級(jí)程序,在升級(jí)程序中等待一段時(shí)間,如果在此時(shí)間內(nèi)沒有接收到升級(jí)命令,再引導(dǎo)主程序運(yùn)行。為安全可靠地應(yīng)用,此處給出啟動(dòng)流程圖如圖4所示。

        圖4 啟動(dòng)流程示意圖

        具體實(shí)現(xiàn)時(shí),將升級(jí)程序和主程序分別編寫,分別配置各自的.cmd文件,使兩個(gè)程序的代碼段和常數(shù)段分布在不同的存儲(chǔ)段內(nèi)。例如在升級(jí)程序的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…

        此時(shí),主程序的代碼段存放于FLASHB中,其地址為0x3F 4000,升級(jí)程序中要引導(dǎo)進(jìn)入這個(gè)地址執(zhí)行,可使用函數(shù)指針來實(shí)現(xiàn),下面給出主要代碼:

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

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

        void main(){

        Pfunc mainfunc; %定義了一個(gè)指向函數(shù)的指針

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

        %將指針指向該地址

        mainfunc(); %引導(dǎo)啟動(dòng)主程序

        }

        為實(shí)現(xiàn)可靠的升級(jí),數(shù)據(jù)傳輸過程中的每一幀要有編號(hào)和校驗(yàn)。將數(shù)據(jù)寫入TMS320F2812的FLASH后,使用Flash_Verify對(duì)每一次寫入的數(shù)據(jù)進(jìn)行校驗(yàn)。還要有主程序功能正常標(biāo)識(shí),表示主程序可用,每次升級(jí)前擦除此標(biāo)識(shí),正常升級(jí)后再置位此標(biāo)識(shí)。每次開機(jī)啟動(dòng)時(shí)引導(dǎo)主程序前,升級(jí)程序可判別此標(biāo)識(shí),確認(rèn)是置位狀態(tài)再引導(dǎo)主程序。

        另外還需要注意的是,如果使用TMS320F2182的CSM_PWL功能,要確保升級(jí)升序和主程序的密碼一致,否則會(huì)引起芯片F(xiàn)LASH閉鎖。

        結(jié) 語

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

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

        楊春曉(博士)、吳陟軒(碩士),主要研究方向?yàn)橥ㄐ排c信息系統(tǒng);陳頌(碩士),主要研究方向?yàn)樾畔⒐こ獭?/p>

        猜你喜歡
        主程序離線代碼
        異步電機(jī)離線參數(shù)辨識(shí)方法
        呼吸閥離線檢驗(yàn)工藝與評(píng)定探討
        淺談ATC離線基礎(chǔ)數(shù)據(jù)的準(zhǔn)備
        淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
        電控冰箱軟件模塊化設(shè)計(jì)
        日用電器(2019年12期)2019-02-26 01:53:06
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        離線富集-HPLC法同時(shí)測(cè)定氨咖黃敏膠囊中5種合成色素
        中成藥(2018年2期)2018-05-09 07:20:09
        国产精品高潮呻吟av久久黄| 精品国产性色av网站| 久久狠狠爱亚洲综合影院| 亚洲国产精品自产拍久久蜜AV | 狠狠色噜噜狠狠狠狠888奇禾| 青青草综合在线观看视频| 麻豆国产精品伦理视频| 亚洲人成网77777色在线播放| 精品av天堂毛片久久久| 欧美a在线播放| 中文字幕精品乱码一区| 美女视频黄a视频全免费网站色| 国产成人av一区二区三区在线观看 | 色欲欲www成人网站| 色婷婷久久一区二区三区麻豆| 亚洲av乱码专区国产乱码| 日本女优免费一区二区三区| 天天摸天天做天天爽水多| 日韩精品无码av中文无码版| 中文字幕无码高清一区二区三区| 国产中文色婷婷久久久精品| 艳z门照片无码av| 亚洲爆乳无码专区| 亚洲 欧美 激情 小说 另类| 伊人亚洲综合影院首页| 国产三级黄色免费网站| 免费国产a国产片高清网站 | 日韩精品久久伊人中文字幕| 后入内射国产一区二区| 依依成人精品视频在线观看 | 中文有码人妻字幕在线| 亚洲人成无码网站在线观看| 五月天激情小说| 视频网站在线观看不卡| 偷拍一区二区三区四区| 国产丝袜在线精品丝袜| 中文字幕无码免费久久99| 国产av一区二区网站| 天天碰免费上传视频| 日韩好片一区二区在线看| 爆乳午夜福利视频精品|