• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于TMS320F2812的U盤升級方法

      2019-07-12 13:47:25黃瀟劍
      關(guān)鍵詞:仿真器主程序U盤

      黃瀟劍

      重慶邁科唯醫(yī)療科技有限公司 重慶 400714

      一、引言

      當(dāng)設(shè)備需要維護(hù)時(shí),傳統(tǒng)的方法是通過實(shí)地,打開設(shè)備蓋子,然后連接仿真器來更新程序,但是這樣會(huì)給維護(hù)人員或者客戶帶來很多的不方便。此時(shí)通過把待升級的程序放入放在U盤,然后通過USB接口插到設(shè)備上,等待幾分鐘就完成設(shè)備的更新,這樣對產(chǎn)品的維護(hù)就帶來了極大便利。

      二、系統(tǒng)介紹

      本文是通過U盤來實(shí)現(xiàn)在線編程的,基本思路如下:

      1、將主程序文件里的CMD文件中的BEGIN_FLASH的地址改為FLASH A區(qū)以外的地址;

      2、把CCS生成的.out格式的主程序文件先轉(zhuǎn)換成.bin格式的主程序文件;

      3、把需要更新的.bin格式的主程序文件放入U(xiǎn)盤;

      4、升級程序的編寫:①調(diào)用TI公司提供的庫函數(shù)(Flash2812_API_V210.lib)對內(nèi)部FLASH除A區(qū)以外的其他區(qū)進(jìn)行擦除,擦除完畢后,調(diào)用燒寫函數(shù)將接收到的數(shù)據(jù)一段一段地?zé)龑戇M(jìn)FLASH除A區(qū)以外的其他區(qū)段里,最后調(diào)用校驗(yàn)函數(shù)對每一段的數(shù)據(jù)進(jìn)行校驗(yàn);②需要在升級程序的末尾添加一個(gè)匯編語句指向主程序文件里的CMD文件中的BEGIN_FLASH的地址;

      5、通過仿真器把升級程序下載到T MS320F2812的FLASH A區(qū);

      6、將U盤插到設(shè)備USB口,通過SCIA串口通訊方式將.bin格式的主程序文件一段一段地傳輸?shù)絋MS320F2812的接收全局變量數(shù)組里;

      三、整體架構(gòu)

      為了實(shí)現(xiàn)程序升級,應(yīng)合理規(guī)劃編譯所用的CMD文件。在本系統(tǒng)中,將程序劃分為2個(gè)模塊,一個(gè)是主程序,另一個(gè)是升級程序,用于接收U盤的更新程序數(shù)據(jù)流及FLASH燒寫等;

      四、軟件部分的具體實(shí)現(xiàn)

      1、更改主程序文件里的CMD文件中的BEGIN_FLASH的地址

      為了方便記憶,我將0x3F5FFE定義為主程序的起始地址

      2、.bin文件的生成

      1)利用hex2000.exe將?.out和?.map(定位文件)轉(zhuǎn)換成ASCII格式文件,并將flash的空白區(qū)域填充成0x FFFF。也就是說.out文件中的程序只是占據(jù)了flash的幾個(gè)部分區(qū)域,那么利用.map文件將.out的程序分配到整個(gè)flash文件的指定區(qū)域,那么其他沒有程序的地方就是0x FFFF。

      2)利用FileIOShell.exe將HEX2000產(chǎn)出的ASCII格式轉(zhuǎn)換為二進(jìn)制格式,這個(gè)文件的大小剛好是256 K字節(jié),對應(yīng)dsp2812的整個(gè)flash(128K16位)。正如前面所述,只有幾個(gè)區(qū)段有數(shù)據(jù),其他都是0x FFFF。這里要注意的是,我用UltraEdit查看二進(jìn)制文件,比如文件開頭的4個(gè)字節(jié)是這樣的12 34 56 78,那么對應(yīng)的是flash的首個(gè)地址0x3D8000的內(nèi)容是0x1234(不是0x3412),第2地址0x3D8001的內(nèi)容是0x5678(不是0x7856)。

      3、拷貝進(jìn)U盤

      4、升級程序的編寫

      1)在程序中包含F(xiàn)LASH_API庫和相應(yīng)的頭文件;

      2)修改頭文件,選擇適合的目標(biāo)芯片,如CPU時(shí)鐘頻率等;

      3)初始化Flash_CPUScaleFactor;

      4)初始化PLL控制寄存器PLLCR(由于我選用的架構(gòu)是:升級程序,用匯編語言進(jìn)行地址跳轉(zhuǎn)->主程序,故不需要,這里寫下只是為以后查看時(shí)有更多的注意點(diǎn));

      應(yīng)用函數(shù)必須使用軟件延時(shí)或其他延時(shí)來保證PLL有足夠的時(shí)間來鎖定新的頻率;

      5)初始化CALLBACK函數(shù)指針(我沒有用到,因?yàn)榧軜?gòu)決定不需要);

      當(dāng)用戶在API函數(shù)執(zhí)行期間必須要完成一些其他的功能,例如系統(tǒng)有外部看門狗必須要定期清除或者必須發(fā)送信息給通信端口,此時(shí)用戶可以在CALLBACK函數(shù)中插入相應(yīng)的代碼完成。

      6)代碼拷貝;

      ①在CMD文件中添加Flash_API的庫的代碼,將Load放在Flash區(qū)間里,將Run放在RA M里;

      ②memcpy()函數(shù)放在系統(tǒng)初始化函數(shù)后;7)芯片解鎖;

      需要在運(yùn)行API函數(shù)前解鎖CSM單元;

      8)配置CMD文件;

      ①初始化的數(shù)據(jù)、代碼必須要存放到非易失性存儲器

      ②未初始化的數(shù)據(jù)、代碼可以放在RAM里;

      ③將升級程序只能放入FLASH A扇區(qū),因?yàn)樾酒瑔?dòng)默認(rèn)地址是0x3F7FF6,這個(gè)地址在FLASHA扇區(qū);

      9)在升級程序的末尾添加一句匯編語言指向主程序的起始地址,即:asm("LB 0x3F5FFE");

      5、將升級程序下載到TMS320F2812的FLASH A區(qū)

      6、將U盤插到主機(jī)的USB接口,即可自動(dòng)完成升級

      五、結(jié)束語

      本文提供的方案在第一次使用時(shí),需通過仿真器燒入更新所需的升級程序,以后對程序的改動(dòng)均可通過U盤更新來完成。方案的主程序大小均為256KB,需要6分鐘即可完畢。

      該種方案可以滿足所有基于TI公司的TMS320F2812的嵌入式系統(tǒng)的升級開發(fā)需要,并且十分簡單,易操作。

      猜你喜歡
      仿真器主程序U盤
      淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
      采用U盤文件冗余方案實(shí)現(xiàn)TSP系統(tǒng)的可靠裝載
      電控冰箱軟件模塊化設(shè)計(jì)
      日用電器(2019年12期)2019-02-26 01:53:06
      時(shí)光倒流 換回PotPlayer老圖標(biāo)
      基于多線程的慣導(dǎo)邏輯仿真器設(shè)計(jì)
      U盤“鬧肚子”
      天文測量仿真器模擬星圖精度分析
      一招鑒定擴(kuò)容u盤
      并行片上網(wǎng)絡(luò)仿真器ParaNSim的設(shè)計(jì)及性能分析
      未經(jīng)授權(quán)的第三方軟件侵權(quán)問題研究
      ——以“騰訊與360之爭”為視角*
      中超| 长垣县| 新巴尔虎左旗| 晋江市| 塘沽区| 山东省| 黑龙江省| 剑川县| 庆阳市| 翁源县| 万宁市| 高雄市| 明溪县| 东莞市| 依安县| 双流县| 德兴市| 龙游县| 灵山县| 贵定县| 巴楚县| 南川市| 砀山县| 青河县| 承德市| 山阴县| 上犹县| 林甸县| 怀安县| 徐州市| 祁东县| 永登县| 伊金霍洛旗| 丹阳市| 都江堰市| 鄯善县| 高邮市| 田东县| 大宁县| 山东省| 当阳市|