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
如何在設備采購中節省成本
主站蜘蛛池模板: 亚洲天堂久久新| 欧美成人a∨视频免费观看| 欧美日韩国产系列在线观看| 成人免费视频一区| 国内精品小视频福利网址| 亚洲日本在线免费观看| 天堂亚洲网| 成人国产免费| 女人一级毛片| 伊人久久久久久久久久| 精品1区2区3区| 午夜国产不卡在线观看视频| 中文字幕乱码二三区免费| 丝袜美女被出水视频一区| 精品自拍视频在线观看| 中国成人在线视频| www.精品国产| 美女一区二区在线观看| 亚洲成在人线av品善网好看| 国产成人亚洲精品无码电影| 中文字幕有乳无码| 国产成人永久免费视频| 一级一级一片免费| 国产91丝袜| 全部无卡免费的毛片在线看| www.国产福利| 97在线公开视频| 国产老女人精品免费视频| 国产精品久久久久婷婷五月| 国产a v无码专区亚洲av| 国产人前露出系列视频| 久久中文字幕2021精品| 尤物视频一区| 91精品专区国产盗摄| 亚洲国产高清精品线久久| 亚洲色无码专线精品观看| 久久久受www免费人成| 中文字幕不卡免费高清视频| 久久久91人妻无码精品蜜桃HD| 就去色综合| 成人韩免费网站| 国产成人综合久久精品下载| 22sihu国产精品视频影视资讯| 日韩a级毛片| 国产精品99r8在线观看| 国产成人调教在线视频| 国产免费观看av大片的网站| 亚洲欧洲日产无码AV| 成人国产小视频| 中文字幕资源站| 美女国产在线| 亚洲性一区| 国产精品自在拍首页视频8| 国产精品林美惠子在线播放| 国产精品一区在线麻豆| 欧美成人手机在线观看网址| 日日拍夜夜操| 小蝌蚪亚洲精品国产| 99人妻碰碰碰久久久久禁片| 老司机精品一区在线视频 | 丁香五月婷婷激情基地| 99在线小视频| 亚洲精品天堂在线观看| 国产91av在线| 欧美日韩在线成人| 亚洲最黄视频| 国产精品视频猛进猛出| 亚洲av片在线免费观看| 黄色在线网| 精品一区二区三区水蜜桃| 好紧好深好大乳无码中文字幕| 午夜视频在线观看免费网站| 91福利免费| 91久久国产综合精品女同我| 欧美a在线看| 美女无遮挡被啪啪到高潮免费| 就去色综合| 精品综合久久久久久97| …亚洲 欧洲 另类 春色| 亚洲综合二区| 一区二区三区成人| 99伊人精品|