1引言
通過串口總線可以對(duì)TMS320LF2407A FLASH進(jìn)行編程。串口編程可以對(duì)DSP系統(tǒng)編程,同時(shí)本文給出了一種可編程的應(yīng)用方法。
該DSP擁有一個(gè)片內(nèi)串口,可以通過一個(gè)外部的電平轉(zhuǎn)換器件與標(biāo)準(zhǔn)RS232器件通訊。該串口不僅僅用于編程,在編程結(jié)束后可以配置成標(biāo)準(zhǔn)的串口使用。
Bootloader是一個(gè)讓用戶方便對(duì)片內(nèi)FLASH或RAM進(jìn)行重新編程升級(jí)的工具。Bootloader本身不包含某些編程算法,嵌入在片內(nèi)的Bootloader只具有一些基本的代碼下載指令,并在片內(nèi)RAM運(yùn)行。Bootloader一般都提供一些編程片內(nèi)程序存儲(chǔ)器的ISP和IAP的接口。
ISP(In-System Programming):使用片內(nèi)的Bootloader軟件和通訊接口,對(duì)片內(nèi)存儲(chǔ)器進(jìn)行編程和重編程。IAP(In Application Programming):IAP對(duì)片內(nèi)存儲(chǔ)器執(zhí)行擦除和寫操作,可以由用戶代碼來執(zhí)行。
2工作過程
2.1DSP初始化
上電以后,程序首先從地址0x0000開始執(zhí)行,然后立即跳轉(zhuǎn)到bootloade程序。
.sect vectors
RESET: B _bootloader ; 地址0x0000
……。。
_bootloader :
Bootloade首先對(duì)串口進(jìn)行配置,8位數(shù)據(jù)位,一位停止位,無校驗(yàn)位,建立與 計(jì)算 機(jī)的通訊。在此過程中,計(jì)算機(jī)始終向DSP發(fā)送檢測(cè)字符,0x0D. Bootloade一直通過串口監(jiān)聽計(jì)算機(jī)通訊,如果連續(xù)接受到三個(gè)字符與0X0D不相符合,則改為下一個(gè)波特率進(jìn)行監(jiān)聽。當(dāng)波特率匹配成功后,Bootloade就準(zhǔn)備接收9個(gè)相同的字符。一旦9個(gè)字符接收成功后,Bootloade將發(fā)送一個(gè)應(yīng)答信號(hào)0XAA,表示通訊建立,從此開始,Bootloade接收到的每一個(gè)字符都將發(fā)送給計(jì)算機(jī),以驗(yàn)證通訊是否正確。
2.2內(nèi)核傳輸
內(nèi)核通過通訊接口,以字節(jié)為單位進(jìn)行傳輸。首先發(fā)送的是低字節(jié),后面是高字節(jié)。數(shù)據(jù)包格式如下:
計(jì)算機(jī)發(fā)送:
①啟動(dòng)地址:一個(gè)字(16 bits),每次傳輸一個(gè)字節(jié),低字節(jié)優(yōu)先。
②數(shù)據(jù)包容量(要傳輸?shù)淖值臄?shù)目):一個(gè)字(16 bits),每次傳輸一個(gè)字節(jié),低字節(jié)優(yōu)先。
③內(nèi)核代碼:每次傳輸一個(gè)字節(jié),低字節(jié)優(yōu)先。一旦內(nèi)核傳輸?shù)絉am,內(nèi)核會(huì)發(fā)送狀態(tài)字節(jié)來表示初始化的狀態(tài)。0X0表示發(fā)送成功,其它 內(nèi)容 表示發(fā)送失敗,計(jì)算機(jī)會(huì)終止傳輸。
2.3內(nèi)核操作
內(nèi)核只要成功傳輸,則內(nèi)核程序?qū)⒔庸芸刂乒δ?。?duì)于TMS320LF2407A,內(nèi)核程序算法必須滿足以下要求:
①內(nèi)核必須小于0X100字,并且必須在程序空間0Xfe00-0Xfeff安裝和執(zhí)行,程序起始點(diǎn)必須是0Xfe00。
②內(nèi)核必須返回程序的狀態(tài)。
③內(nèi)核程序必須能夠?qū)⒖刂乒δ芊祷?,不?huì)破壞程序使用的變量。
④內(nèi)核等待擦除,置1和編程的算法。
⑤內(nèi)核必須裝載到有效的地址內(nèi)存空間內(nèi)。
2.4擦除算法
擦除算法是第一個(gè)被下載到目標(biāo)芯片內(nèi)的算法。它將FLASH第一扇區(qū)和第二扇區(qū)的內(nèi)容清0,為FLASH置位作準(zhǔn)備。成功擦除后,返回0x0,不然就返回一個(gè)非零值。
2.5置位
下載置位算法,它可以置位FLASH。成功置位后,返回0x0,不然就返回一個(gè)非零值。
2.6編程
下載編程算法,但編程算法并不立即執(zhí)行,而是下載第一組編程數(shù)據(jù)。一旦得到編程數(shù)據(jù),將會(huì)調(diào)用編程算法,將下載的編程數(shù)據(jù)燒寫到FLASH里。圖2是編程步驟的流程圖。
對(duì)FLASH第一扇區(qū)的編程操作結(jié)束以后,編程算法將向 計(jì)算 機(jī)返回狀態(tài)。并一直等待下一組編程數(shù)據(jù),一直到接收到最后一組數(shù)據(jù)標(biāo)志為止。將編程數(shù)據(jù)燒寫到FLASH后,編程算法將控制權(quán)交給工作程序。
3使用 方法
為了使用該軟件將程序下載到FLASH里,首先要通過編譯器將程序編譯、調(diào)試通過,一般編譯器生成的文件格式為COFF格式,該文件包含程序二進(jìn)制代碼,但不包含要燒寫到FLASH里的二進(jìn)制文件。需要使用工具將該文件格式轉(zhuǎn)換為可下載的文件格式。
在芯片內(nèi)有四個(gè)字的密碼,在下載程序時(shí)要注意。如果下載程序里的密碼是0X0000 或0X0FFFF,則不用關(guān)心,但如果其它的密碼,則需要記錄下來,以備下次下載時(shí)使用,將密碼設(shè)置到要下載的程序里,解密原來的芯片。
Password1:set 0000h ;在地址0x0040中的密碼
Password2:set 0000h ;在地址0x0041中的密碼
Password3:set 0000h ;在地址0x0042中的密碼
Password4:set 0000h ;在地址0x0043中的密碼
4結(jié)果
使用該方法可以方便的對(duì)芯片進(jìn)行程序下載,成本低、操作方便。本方法已經(jīng)在北京瑞泰公司的DSP開發(fā)板上調(diào)試通過,穩(wěn)定可靠。
參考文獻(xiàn)
[1]劉和平。 TMS320LF240x DSP結(jié)構(gòu)原理及 應(yīng)用 。 北京:北京航空航天大學(xué)出版社,2002.
[2]張雄偉等。 DSP芯片的原理與開發(fā)應(yīng)用(第3版)[M]。 北京:北京 電子 工業(yè) 出版社,2003.
[3]TMS320LF2407A DSP controller. TI 2000.
[4]潭浩強(qiáng)。 C 程序設(shè)計(jì)[M]。 北京:清華大學(xué)出版社,2003.
編輯:jq
-
dsp
+關(guān)注
關(guān)注
554文章
8058瀏覽量
349585 -
FlaSh
+關(guān)注
關(guān)注
10文章
1640瀏覽量
148329 -
串口
+關(guān)注
關(guān)注
14文章
1557瀏覽量
76748
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論