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

基于串口通信的DSP程序動態加載技術

2011-03-05 08:59:42李聲飛代華山
電訊技術 2011年6期
關鍵詞:程序設備

李聲飛,代華山

(中國西南電子技術研究所,成都 610036)

1 引 言

TMS320F2812是TI公司推出的一款高性能的定點DSP[1],具有32位內核處理器,主頻可達150MHz,片內集成 128 kbyte的 FLASH、16 kbyte的SARAM,以及豐富多樣的外部接口,廣泛應用于工業控制、移動通信、軍事安全等領域。隨著電子技術的發展和用戶需求的提升,對已投入使用嵌入式設備程序的升級也越來越頻繁,而目前傳統的程序升級方法是實地取下設備,通過JTAG仿真器來燒寫程序[2]。這種方法簡單有效,但對于某些特殊場合,如設備在密閉的箱體內以及其它不便觸及的地方,這種方式給升級帶來了極大的不便,因此開發高效、便捷的升級技術成為一種迫切的需求。筆者考慮到多數設備都有遠程通信端口,如串口、SPI等,因此可采用在線升級方式,在不打開設備箱體的情況下,實現軟件更新。

2 系統結構介紹

如圖1所示,系統硬件結構采用DSP+FPGA架構。DSP(TMS320F2812)作為處理中心,通過數據總線和地址總線完成與FPGA的數據交換,實現復雜數據處理算法和外部控制。FPGA利用其大規模硬件資源,實現接口擴展。上電時,FPGA對DSP的模式選擇端進行控制,使DSP選擇從片內FLASH啟動或SCI啟動,并且通過FPGA,將PC機的串口與DSP的串口相連,實現PC機和DSP的數據透明交換。

圖1 嵌入式設備系統框圖Fig.1 Block diagram of embedded equipment system

傳統的編程方式采用JTAG口加載程序,利用TI公司編譯軟件CCS中的On-chip Flash Programmer插件,將編譯生成的.out文件直接燒寫到片內FLASH區[3]。該方法簡單高效,能夠實現對模塊軟件的升級。但對于特殊場合,如模塊在密閉箱體內,該升級方式無法快速有效的實現軟件升級,所以本文采用基于串口的動態加載的方式,實現設備軟件更新。

3 動態加載的工作機理

TMS320F2812的啟動方式可以分為內部Flash引導啟動、SPI引導啟動、SCI-A引導啟動、H0-SARAM引導啟動、OTP引導啟動、GPIO端口B引導啟動等幾種模式,由其模式選擇端實現不同的啟動方式。其中,TMS320F2812脫機運行默認為內部Flash啟動,本文通過串口實現軟件升級,將模式選擇端置為SCI啟動模式。

本文描述的程序加載采用兩級引導方式[4],分為引導程序加載和應用程序FLASH編程。程序動態加載原理如下:首先DSP上電并掃描模式選擇口,選擇SCI-A啟動模式,然后等待接收來自SCI口數據;PC機通過串口將引導程序發送給DSP的SCI通信口,將引導程序緩存至RAM區;然后再發送應用程序的燒寫文件,DSP在引導程序的控制下,將應用程序燒寫到DSP的FLASH區。由于TMS320F2812有128 kbyte的FLASH空間,能夠滿足一般的應用需求。

3.1 引導程序加載

DSP的RAM空間分為安全區和非安全區,為了代碼的安全性,一般將代碼放在安全區域內運行。所以要把加載引導程序加載至RAM的安全區內。

如圖2所示,DSP在SCI_BOOT模式下,接收來自串口的數據,先將引導程序存儲到非安全RAM區(安全RAM處于鎖定狀態),該區域在DSP存儲器的低地址位。然后加載引導程序接管DSP的控制權,對DSP進行解鎖操作,并將自身拷貝到RAM的安全區。

圖2 引導程序加載Fig.2 Download boot program

3.2 應用程序燒寫

在引導程序的控制下,將應用程序燒寫到DSP的FLASH區,如圖3所示。

圖3 應用程序燒寫Fig.3 Programming APP code

首先PC機通過串口將編譯好的應用程序發到DSP,DSP接收并緩存程序到RAM區。鑒于應用程序占用空間較大,一般將其存儲在較大的RAM空間中。筆者根據需求,將其定位到L0L1區域(地址空間0x008000~0x00A000)。預定義兩個數組Uint16BlockBuffer1[4096]、Uint16BlockBuffer2[4096]用于存儲應用程序,在引導程序中采用存儲器定位語句,將以上兩個緩沖數組定位到相應存儲空間:

在CMD文件中,采用定位語句,將Buffer1/2定位到DSP較大的RAM空間:

通過以上引導程序的設置,可將應用程序緩存至RAM區中。

當緩沖區Buffer1存滿后,引導程序調用FLASH編程API函數,將Buffer1中應用程序燒寫到FLASH中。在燒寫前要對FLASH進行擦除,采用TI公司提供的API函數對FLASH區域擦除:

其中,第一個參數SECTOR-F2812表示要擦除的扇區,第二個參數返回狀態值;通過Erase Status來判斷擦寫是否成功,若成功,則調用FLASH編程API函數如下:

其中,參數Flash-ptr表示編程首地址,BlockBuffer1為應用程序暫存RAM的首地址,Length為燒寫字節數,ProgStatus表示返回狀態。通過調用該API函數,將暫存在RAM區的應用程序燒寫至指定的FLASH區域,并可以通過指定燒寫首地址方式來自行分配FLASH空間。

在BlockBuffer1程序FLASH燒寫同時,引導程序繼續接收剩下的應用程序代碼至BlockBuffer2空間,然后重復以上步驟,將BlockBuffer2中代碼燒寫至FLASH指定位置,如此反復,待FLASH全部燒寫完畢,即完成了程序的升級。

4 動態加載的實現

4.1 硬件環境搭建

首先要搭建設備升級的硬件環境,將設備串口與PC機串口相連,保證數據傳輸的硬件通路正常;然后通過FPGA控制DSP的啟動模式[5],配置DSP上電SCI-A啟動。如表1所示,FPGA控制4條模式選擇線GPIOF4、GPIOF12、GPIOF3、GPIOF2 輸出為 0011。

表1 DSP啟動模式控制Table 1 DSP boot mode control

4.2 DSP資源分配

TMS320F2812片內[6]有兩塊 1 k×16 bit的SARAM MO/M1,兩塊 4 k ×16 bit的 SARAM L0/L1,1塊8 k×16 bit的 SARAM H0、128 k ×16 bit的FLASH 。由于SARAM具有讀寫速度快的優點,所以優先考慮程序在SARAM中運行,同時大容量的SARAM可以作為數據暫存。FLASH具有掉電數據不丟失的特性,用來保存代碼和重要數據信息。基于以上考慮,引導程序代碼量較小,筆者選擇將其代碼段存放到MO/M1空間中,運行程序放在較大的L0/L1段,CMD映射關系如下所示:

應用程序的CMD文件控制其取址和運行的空間,如下所示:

econst段為存放外部數據和常量的空間,分配一個較大的8 k FLASH的區域來保存外部數據;text段為代碼段,將程序映射到 FLASHD(地址空間:0x3EC000~0x3F0000)中;cinit用于保存已初始化全局數據,存放到FLASHD區域。Ramfuncs控制程序的執行方式,上電后程序從FLASHD中拷貝代碼到RAML0(地址空間:0x008000~0x009000)中運行,實現了程序從FLASH區到RAM區的映射。

4.3 轉換待傳輸的文件

由于CCS編譯生成的目標文件(.out)是模塊化格式,即程序中代碼和數據分別存放在不同段中,該文件不能直接用來燒寫FLASH,需將其轉換為FLASH能識別的數據格式——二進制文件(.bin)。筆者采用HEX2000和Fileoshell.exe工具來實現文件轉換。編寫AppCode-hex-2812.cmd文件,將CCS編譯后生成文件AppCode.out轉換成HEX文件App-Code.hex,并填充未用的FLASH區域為全1。

利用AppCode-COFF2BIN-2812.bat批處理文件,控制FillOShell工具生成bin文件,可以直接傳輸該文件來實現在線升級。

4.4 燒寫步驟

首先配置串口調試工具,配置參數為:波特率9600bit/s,8 bit數據位,1 bit截止位。然后,選擇發送文本文件方式,發送引導程序的bin文件到DSP,如圖4所示。

圖4 傳輸引導程序Fig.4 Transmission boot program

傳完后再次鎖定波特率,并選擇擦除FLASH,將未編程的FLASH區域全部擦除,再傳輸應用程序的bin文件,如圖5所示。FLASH燒寫完成,并校驗應用程序大小,若校驗通過則FLASH燒寫成功。

圖5 燒寫成功Fig.5 Programming success

5 結束語

本文提出了一種DSP軟件動態加載方法,可以在不打開機箱條件下實現模塊軟件升級。通過實際測試,應用程序代碼在10kbyte左右時,升級耗時2 min左右,與傳統的JTAG升級方式相比,雖然時間有所增加,但解決了高空、密閉等特殊情況下程序升級的困難,可滿足基于TMS320F2812 DSP開發的嵌入式系統升級要求。文中采用二級引導方式,通過串口傳輸數據并調用API編程函數實現程序動態加載。由于片內FLASH容量有限(128 kbyte),擴充片外FLASH資源以滿足大型應用需求,將成為下一階段工作的重點,若配合以太網絡或總線技術,還可實現軟件的遠程升級。總之,該方法具有操作簡單、燒寫穩定等優點,可廣泛應用于嵌入式設備軟件的更新升級中,是智能化設備的必然要求和趨勢。

[1]王虹,楊更生.基于 TMS320F2812的步進電機 SVPWM 細分驅動[J].電訊技術,2008,48(8):189-193.WANG Hong,YANG Su.Subdivision Driving with SVPWM of Stepping Motor Based onTMS320F2812[J].Telecommunication Engineering,2008,48(8):189-193.(in Chinese)

[2]李靜,張樹團.TMS320F2812片內Flash在線燒寫技術研究[J].計算機應用,2008(10):37-40.LI Jing,ZHANG Shu-tuan.Research on on-line programming techniques for Flash in TMS320F2812[J].Journal of Computer Applications,2008(10):37-40.(in Chinese)

[3]陳代媛.C6000外部FLASH在線編程引導技術[J].電訊技術,2009,49(5):86-88.CHEN Dai-yuan.External FLASH Memory′s Bootloader System for C6000[J].Telecommunication Engineering,2009,49(5):86-88.(in Chinese)

[4]朱望純,胡漢武,李智.DSP+FLASH的二次程序加載實現方法[J].理論與方法,2008,27(4):14-16.ZHU Wang-chun,HU Han-wu,LI Zhi.Secondary boot loader method for DSP and FLASH[J].Journal of Theory and Methods,2008,27(4):14-16.(in Chinese)

[5]黃玉梅.一種基于DSP+FPGA的控制系統方案設計[J].電訊技術,2004,44(3):136-138.HUANG Yu-mei.A DSP and FPGA Based Scheme for Control System[J].Telecommunication Engineering,2004,44(3):136-138.(in Chinese)

[6]李晶,鐘瑜,鄭百衡.基于DSP的FPGA動態配置技術[J].電訊技術,2005,45(1):156-159.LI Jing,ZHONG Yu,ZHENG Bai-heng.FPGA Dynamic Reconfiguration Based on DSP[J].Telecommunication Engineering,2005,45(1):156-159.(in Chinese)

猜你喜歡
程序設備
諧響應分析在設備減振中的應用
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
如何在設備采購中節省成本
主站蜘蛛池模板: 日韩国产欧美精品在线| 国产欧美视频在线| 亚洲第一视频网| 热99精品视频| 国产自在线拍| 最新亚洲av女人的天堂| 色成人综合| 久久中文电影| 美女内射视频WWW网站午夜| 亚洲第一天堂无码专区| 91无码人妻精品一区二区蜜桃| 中文字幕日韩视频欧美一区| 成人va亚洲va欧美天堂| 欧美亚洲国产精品久久蜜芽| 18禁影院亚洲专区| 国产精品亚洲精品爽爽| 浮力影院国产第一页| 中文字幕无码中文字幕有码在线| 天天躁夜夜躁狠狠躁躁88| 亚洲天堂成人在线观看| 国内精自线i品一区202| www.国产福利| 114级毛片免费观看| 日本人妻一区二区三区不卡影院| 久久人人97超碰人人澡爱香蕉| 亚洲女人在线| www亚洲天堂| 青青极品在线| 成人永久免费A∨一级在线播放| 免费一级毛片| 亚洲无码视频图片| 99er精品视频| 99久久免费精品特色大片| 国产精品手机在线播放| 激情综合婷婷丁香五月尤物| 欧美一区二区三区不卡免费| 久久久久夜色精品波多野结衣| 幺女国产一级毛片| 欧美日韩第二页| 日韩欧美国产另类| 亚洲综合网在线观看| 国产不卡在线看| 国产色偷丝袜婷婷无码麻豆制服| 久热中文字幕在线| 久青草免费视频| 欧美专区日韩专区| 久久久久亚洲av成人网人人软件| 国产精品免费p区| 国产午夜无码专区喷水| 强乱中文字幕在线播放不卡| 国产午夜无码专区喷水| 欧美三級片黃色三級片黃色1| 毛片免费在线| 综合网久久| 男女猛烈无遮挡午夜视频| 国产视频久久久久| 国产成人精品视频一区二区电影| av无码久久精品| 日韩无码视频专区| 亚洲中文精品人人永久免费| 波多野结衣的av一区二区三区| 久久性妇女精品免费| 久久黄色小视频| 国产av一码二码三码无码 | 爱做久久久久久| 最近最新中文字幕在线第一页| 日本欧美午夜| 伊人精品成人久久综合| 国产精品观看视频免费完整版| 欧美日本中文| 成人精品免费视频| jizz国产在线| 秋霞一区二区三区| 欧美午夜视频| 色噜噜狠狠色综合网图区| 在线无码九区| 欧美一级片在线| 最新国产麻豆aⅴ精品无| 亚洲国产理论片在线播放| 怡春院欧美一区二区三区免费| 国产va免费精品观看| 波多野结衣AV无码久久一区|