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

        ?

        一種基于串口通信的DSP程序更新方法

        2019-12-17 08:10:45曹丙虎張建新
        科技視界 2019年34期
        關(guān)鍵詞:程序設(shè)備方法

        曹丙虎 張建新

        【摘 要】嵌入式設(shè)備裝入整機(jī)或系統(tǒng)后,拆卸進(jìn)行軟件升級(jí)非常困難。本文以TMS320F2812為例,提出一種通過(guò)串口進(jìn)行軟件更新的方法。借鑒sci-A更新方式,不需要更改相關(guān)硬件端口,通過(guò)默認(rèn)內(nèi)部flash啟動(dòng),借助F2812內(nèi)部存儲(chǔ)及API函數(shù)完成更新操作。實(shí)驗(yàn)證明,該方法燒寫(xiě)效率高,準(zhǔn)確穩(wěn)定,操作簡(jiǎn)單,能夠應(yīng)用于嵌入式軟件的在線升級(jí)。

        【關(guān)鍵字】串口通信;flash;API;在線更新

        中圖分類號(hào): TP332文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2019)34-0111-002

        DOI:10.19694/j.cnki.issn2095-2457.2019.34.049

        0 引言

        TMS320F2812是美國(guó)德州儀器公司推出的一款高性能定點(diǎn)DSP,主頻150MHz,集成了128k的FLASH、18k的SARAM,以及豐富的外部接口,廣泛應(yīng)用于工業(yè)控制等領(lǐng)域。軟件經(jīng)常隨用戶需求更改進(jìn)行更新,傳統(tǒng)更新方式需要拆除外殼連接JTAG仿真器進(jìn)行,這種方法燒寫(xiě)穩(wěn)定,但是操作繁雜。因此迫切需要一種簡(jiǎn)單高效的程序更新方法,設(shè)備一般都會(huì)預(yù)留外部通信接口,因此我們選用常用的串口通過(guò)數(shù)據(jù)線對(duì)程序進(jìn)行更新。

        1 基本原理及操作流程

        一般情況下DSP程序的燒寫(xiě)是在CCS環(huán)境下通過(guò)JTAG仿真器連接設(shè)備和計(jì)算機(jī)實(shí)現(xiàn)的,這種方法雖然操作簡(jiǎn)單穩(wěn)定,但是受限于現(xiàn)場(chǎng)條件以及距離。假如DSP被裝入復(fù)雜的整機(jī)結(jié)構(gòu)內(nèi),現(xiàn)場(chǎng)拆解困難,此時(shí)就無(wú)法通過(guò)傳統(tǒng)JTAG方式進(jìn)行程序更新。DSP本身也提供了一種通過(guò)串口進(jìn)行更新程序的方法,該方法需要配置相關(guān)管腳電平,選擇Boot Mode為SCI模式,然后配合相應(yīng)軟件工具進(jìn)行操作,這種方式對(duì)于硬件上事先未對(duì)端口做處理,無(wú)法配置電平信號(hào)的設(shè)備無(wú)法使用。

        通過(guò)分析DSP的上電啟動(dòng)過(guò)程發(fā)現(xiàn)可以在程序的啟動(dòng)位置加入一段更新程序,用于實(shí)現(xiàn)FLSAH存儲(chǔ)內(nèi)容的燒寫(xiě),來(lái)達(dá)到程序升級(jí)的目的。該方法不需要改變DSP的啟動(dòng)方式,省去了管腳配置的麻煩,也不受復(fù)雜系統(tǒng)及環(huán)境的限制,可以簡(jiǎn)單高效地完成程序的升級(jí)工作。更新程序通過(guò)傳統(tǒng)JTAG方式燒寫(xiě)在指定FLASH空間,其他方式無(wú)法對(duì)其進(jìn)行修改擦除,主要來(lái)時(shí)間與PC機(jī)輔助程序的串口通信握手,更新文件接收保存,調(diào)用Flash2812_API_V210函數(shù)對(duì)FLASH進(jìn)行擦寫(xiě)操作。

        DSP上電啟動(dòng)時(shí),首先運(yùn)行更新程序,程序啟動(dòng)后稍加延時(shí),等待與PC機(jī)通信握手,如果握手失敗程序跳轉(zhuǎn)至應(yīng)用程序執(zhí)行,握手成功則開(kāi)始執(zhí)行更新操作,接收PC機(jī)傳輸?shù)母挛募筇幚肀4妫瓿山邮蘸髮⑼暾募?xiě)入指定FLASH空間,燒寫(xiě)操作完成程序跳轉(zhuǎn)至應(yīng)用程序啟動(dòng)位置。該方法完整流程圖如圖1所示。

        2 方法具體實(shí)現(xiàn)過(guò)程

        該更新方法的實(shí)現(xiàn)需要完成應(yīng)用程序文件準(zhǔn)備,上位機(jī)輔助軟件設(shè)計(jì),DSP更新程序設(shè)計(jì),DSP應(yīng)用程序針對(duì)性修改,接下來(lái)會(huì)針對(duì)每一部分的實(shí)現(xiàn)進(jìn)行詳細(xì)的說(shuō)明。

        2.1 應(yīng)用程序文件的準(zhǔn)備

        應(yīng)用程序通過(guò)CCS編譯生成的目標(biāo)文件(.out)不能直接用于燒寫(xiě)FLASH,使用CCS自帶的工具h(yuǎn)ex2000.exe將.out文件轉(zhuǎn)換為.hex文件,hex文件為bin文件對(duì)應(yīng)的字符文件,直接將hex文件發(fā)送給DSP,由DSP程序進(jìn)行處理轉(zhuǎn)換成對(duì)應(yīng)bin文件并保存到RAM空間。為了提高工作效率,本文將hex2000.exe和out文件放在同一目錄c:\hex下,并編寫(xiě)批處理文件保存在該目錄,運(yùn)行批處理文件生成hex文件。批處理文件內(nèi)容如下:

        2.2 PC輔助軟件設(shè)計(jì)

        PC輔助軟件主要是為了保障更新文件的高效準(zhǔn)確傳輸,主要功能為連接設(shè)備、加載文件、文件傳輸以及過(guò)程監(jiān)控。連接設(shè)備實(shí)現(xiàn)與DSP設(shè)備的通信握手,使更新程序停留在更新功能。加載文件功能讀入hex文件內(nèi)容,字符串形式按行保存在發(fā)送文件緩沖區(qū)。文件傳輸通過(guò)串口通信,將緩沖區(qū)內(nèi)容逐行發(fā)送給DSP更新程序。過(guò)程監(jiān)控實(shí)時(shí)接收DSP設(shè)備反饋內(nèi)容,實(shí)時(shí)顯示當(dāng)前文件傳輸、燒寫(xiě)進(jìn)程。

        2.3 更新程序設(shè)計(jì)

        更新程序可以實(shí)現(xiàn)程序文件的接收、處理及暫存,程序?qū)懭雽?duì)應(yīng)FLASH,跳轉(zhuǎn)執(zhí)行應(yīng)用程序。更新程序經(jīng)過(guò)初始化寫(xiě)入后不可修改和擦除,因此需要分配獨(dú)立的存儲(chǔ)空間,我們選取了FLASHA用于程序文件及變量的存儲(chǔ),F(xiàn)LASHB用于上電復(fù)位加載程序。這兩個(gè)區(qū)域在用于程序的空間分配中被排除,具體的CMD文件相關(guān)內(nèi)容如下:

        SECTIONS

        {

        Flash28_API:

        {

        -lFlash2812_API_V210.lib(.econst)

        -lFlash2812_API_V210.lib(.text)

        } ? ? ? ? ? ? ? ? ? LOAD = FLASHB,

        RUN = RAML0,

        LOAD_START(_Flash28_API_LoadStart),

        LOAD_END(_Flash28_API_LoadEnd),

        RUN_START(_Flash28_API_RunStart),

        PAGE = 0

        .text ? ? ? ? ? ? ? : > FLASHA ? ? ?PAGE = 0

        ramfuncs ? ? ? ? ? ?: LOAD = FLASHB,

        RUN = RAML0,

        LOAD_START(_RamfuncsLoadStart),

        LOAD_END(_RamfuncsLoadEnd),

        RUN_START(_RamfuncsRunStart),

        PAGE = 0

        }

        為了簡(jiǎn)化開(kāi)發(fā)過(guò)程,我們以Flash2812_API_V210的DEMO程序?yàn)榛A(chǔ),進(jìn)行功能完善,主要完成以下工作:

        (1)SCI端口配置為串口,串口參數(shù)初始化配置,串口采用接收中斷接收PC發(fā)送的指令數(shù)據(jù),對(duì)接收的數(shù)據(jù)進(jìn)行校驗(yàn)處理后暫存到RAM空間備用。

        (2)程序上電啟動(dòng)首先判斷PC機(jī)是否發(fā)送了更新指令,根據(jù)指令選擇等待接收文件或者跳轉(zhuǎn)執(zhí)行應(yīng)用程序,采用匯編語(yǔ)言asm("LB 0x3DC000")跳轉(zhuǎn)到指定地址,該地址為應(yīng)用程序存放地址。

        (3)文件接收完畢后調(diào)用Example_CallFlashAPI()函數(shù)將文件寫(xiě)入對(duì)應(yīng)FLASH空間,該空間不能與更新程序定義的兩個(gè)扇區(qū)重疊,防止對(duì)更新程序造成修改。

        (4)操作過(guò)程通過(guò)串口指令發(fā)送給PC程序,PC程序根據(jù)指令顯示當(dāng)前狀態(tài)及進(jìn)度。

        2.4 應(yīng)用程序修改

        應(yīng)用程序本身不需要進(jìn)行修改,只對(duì)CMD文件配置進(jìn)行修改,定義FLASH空間如下:

        Flash_CTOH:origin=0x3DC000,length=0x018000

        該段FLASH覆蓋C至H共6個(gè)扇區(qū),可以滿足程序的存儲(chǔ)及加載需求,同時(shí)與更新程序使用的扇區(qū)不重合,操作不會(huì)影響更新程序,具體涉及的使用分配如下:

        SECTIONS

        {

        .text ? ? ? ? ? ?: > Flash_CTOH, ? ? ?PAGE = 0

        ramfuncs ? ? ? ? : LOAD = Flash_CTOH, PAGE = 0

        RUN = Z2SARAM1, ? PAGE = 0

        LOAD_START(_RamfuncsLoadStart),

        LOAD_END(_RamfuncsLoadEnd),

        RUN_START(_RamfuncsRunStart)

        }

        代碼啟動(dòng)位置存儲(chǔ)在BEGIN_Flash內(nèi),該值為.text分配存儲(chǔ)FLASH區(qū)域的起始地址,BEGIN_Flash內(nèi)容連接JTAG仿真器燒寫(xiě)程序時(shí)被寫(xiě)入,本方法中寫(xiě)入更新程序的代碼啟動(dòng)地址。應(yīng)用程序通過(guò)更新程序?qū)懭雽?duì)應(yīng)區(qū)域,不包括BEGIN_Flash的寫(xiě)入操作,本方法中可以忽略應(yīng)用程序中相關(guān)內(nèi)容,定義與更新程序相同即可。應(yīng)用程序的啟動(dòng)運(yùn)行通過(guò)更新程序尾部的地址跳轉(zhuǎn)完成,不使用CMD文件中定義的代碼啟動(dòng)。

        3 結(jié)論

        本文介紹的這種基于串口通信的DSP程序更新方法,可以在不拆解設(shè)備的情況下實(shí)現(xiàn)軟件的更新升級(jí)。經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn),由于程序文件需要事先通過(guò)串口通信發(fā)送至DSP,更新升級(jí)的時(shí)間要比JTAG口燒寫(xiě)程序耗時(shí)略長(zhǎng)。雖然耗時(shí)增加,但是相對(duì)于設(shè)備的拆解時(shí)間幾乎可以忽略不計(jì),因此該方法可以克服困難環(huán)境,應(yīng)用于嵌入式設(shè)備的軟件程序更新升級(jí)中。

        【參考文獻(xiàn)】

        [1]蘇奎峰,呂強(qiáng),耿慶鋒,等.TMS320F2812原理與開(kāi)發(fā)[M].北京,電子工業(yè)出版社,2005.

        [2]李聲飛,代華山.基于串口通信的DSP程序動(dòng)態(tài)加載技術(shù)[J].電訊技術(shù),2011,5l(6):121-124.

        [3]汪晶晶,蘇建徽,孫佩石.基于串口通信的DSP應(yīng)用程序在線升級(jí)方法[J].微型機(jī)與應(yīng)用,2013,32(14):15-17.

        猜你喜歡
        程序設(shè)備方法
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        試論我國(guó)未決羈押程序的立法完善
        基于MPU6050簡(jiǎn)單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        “程序猿”的生活什么樣
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        可能是方法不對(duì)
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        中文字幕人妻在线少妇完整版| 国产内射性高湖| 无遮挡十八禁在线视频国产制服网站| 国产av91在线播放| 成熟妇女毛茸茸性视频| 欧美性xxxx极品高清| 猫咪www免费人成网最新网站 | 97人妻精品一区二区三区| 宅男噜噜噜| 一区二区视频网站在线观看| 亚洲综合第一页中文字幕| 免费操逼视频| 日本在线视频网站www色下载| 91精品国产色综合久久不 | 亚洲乱色伦图片区小说| 欧美性猛交xxxx乱大交蜜桃| 挑战亚洲美女视频网站| 漂亮人妻被强了中文字幕| 末成年女a∨片一区二区| 欧美日韩中文制服有码| 亚洲高清av一区二区| 日本中文一区二区在线观看| 先锋影音av最新资源| 真人在线射美女视频在线观看| 久久少妇高潮免费观看| 欧美精品国产综合久久| 国产欧美日韩视频一区二区三区| 青青草针对华人超碰在线| 日本伊人精品一区二区三区| 国产顶级熟妇高潮xxxxx| 久久国产精品视频影院| 亚洲一区在线二区三区| 成年站免费网站看v片在线| 亚洲av无码成人精品区天堂| 伊人久久婷婷综合五月97色| 国产亚洲超级97免费视频| 曝光无码有码视频专区| 最新在线观看精品国产福利片| 久久精品国产亚洲综合av| 一本久久a久久精品vr综合| 97国产免费全部免费观看|