關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > TMS320F2812程序的遠程升級方法

TMS320F2812程序的遠程升級方法

作者: 時間:2009-11-19 來源:網(wǎng)絡 收藏

2.2 Flash在線寫入
F2812的Flash數(shù)據(jù)寫入通常包括擦除、燒寫和校驗3個步驟:
①擦除就是將Flash內(nèi)的數(shù)據(jù)0位都變成1,經(jīng)過正確的擦除步驟后,F(xiàn)lash內(nèi)所有16位數(shù)據(jù)都變?yōu)?xFFFF。
②燒寫數(shù)據(jù)的過程就是將待寫入的數(shù)據(jù)中對應為0位寫入,使得Flash中的相對應位變?yōu)?,1對應的位保持不變。
③校驗過程在燒寫結束后,是將燒寫入的數(shù)據(jù)讀出,并與原來的數(shù)據(jù)進行比較。全部正確,則數(shù)據(jù)寫入Flash完成;若校驗不正確,則必須重新擦除和寫入,5次校驗未能通過,數(shù)據(jù)燒寫失敗。
F2812的Flash燒寫與較早的C2000系列如F2407有所不同,的擦除、燒寫和校驗主要通過調(diào)用Flash_Erase()、Flash_Program()、Flash_Verify()這3個函數(shù)來完成。這3個Flash的操作函數(shù)已封裝在TI公司開發(fā)的庫文件Flash2812_API_V210.lib內(nèi),使用時只需在編譯時將該庫文件加入即可,非常方便使用者調(diào)用,具體的使用可參閱相關的參考資料。
需要注意的是,對Flash的所有操作函數(shù)都必須首先載入到具有0等待周期的RAM內(nèi)才能執(zhí)行,否則Flash的燒寫過程將會出錯。執(zhí)行在線寫入前,需要先調(diào)用函數(shù)Flash_MemCopy(),將Flash_Erase()、Flash_Program()、Flash_Verify()這3個函數(shù)的執(zhí)行代碼調(diào)入F2812的RAM空間內(nèi)。Flash_MemCopy()也是封裝在Flash2812_API_V210.lib庫文件內(nèi)的函數(shù)。

本文引用地址:http://m.butianyuan.cn/article/163475.htm


3
程序的功能就是通過應用程序模塊的數(shù)內(nèi)容來實現(xiàn)的,其主要步驟如下:
首先,程序數(shù)據(jù)的提取。監(jiān)控程序原文件經(jīng)過CCS編譯后,生成*.OUT的公共目標格式COFF文件。通常用仿真器燒寫程序時,公共目標格式文件,即*.out文件,由CCS的Flash燒寫插件對其進行解讀,并將數(shù)據(jù)輸出到F2812內(nèi)進行燒寫。本文用C++Builder開發(fā)了一個專用工具軟件,根據(jù)公共目標格式文件的結構,對*.OUT文件進行解讀,并提取出應用程序模塊段(.MyPrg)內(nèi)的程序數(shù)據(jù),并將數(shù)據(jù)通過GPRS通信模塊進行傳送。其次,程序數(shù)據(jù)的分割。GPRS通信平臺要求每個數(shù)據(jù)包小于或等于256字節(jié),因此,需要將提取到的程序數(shù)據(jù)進行分割,由專用工具軟件將應用程序模塊分割為若干個196字節(jié)大小的數(shù)據(jù)包,根據(jù)通信協(xié)議與F2812監(jiān)控系統(tǒng)進行遠程通信。
最后,程序數(shù)據(jù)的寫入。程序數(shù)據(jù)經(jīng)GPRS遠程通信接收完畢后,可向F2812監(jiān)控裝置發(fā)程序升級指令。根據(jù)預先分段設定,即調(diào)用Flash操作函數(shù)Flash_Erase()、Flash_Program()、Flash_Vetify(),將數(shù)據(jù)寫入用戶自定段.Myprg所在的地址區(qū)域,完成程序的遠程升級。


結 語
本文從工程的實際需要出發(fā),分析和闡述了C2000系列的程序遠程升級的步驟和,有效解決在線遠程運行系統(tǒng)的程序升級的難題,對其他類似系統(tǒng)的程序升級也具有借簽意義。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉