www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]著重描述了引導(dǎo)引腳以及相關(guān)寄存器的設(shè)置,分析了采用EDMA傳輸方式將代碼從Flash復(fù)制到DSP的過(guò)程,并對(duì)引導(dǎo)程序給出基于匯編語(yǔ)言的代碼實(shí)現(xiàn)。

摘要:在基于DSP的系統(tǒng)設(shè)計(jì)中,為了保證掉電時(shí)程序不丟失,總是將程序保存在非易失性存儲(chǔ)器中,以便系統(tǒng)在上電復(fù)位時(shí)可將其引導(dǎo)到DSP內(nèi)部的RAM中執(zhí)行。以TI公司的TMS320C6713浮點(diǎn)DSP和AMD公司的AM29LV040Flash存儲(chǔ)器為例,通過(guò)JTAG加載來(lái)設(shè)計(jì)一個(gè)完整的自舉引導(dǎo)方案。著重描述了引導(dǎo)引腳以及相關(guān)寄存器的設(shè)置,分析了采用EDMA傳輸方式將代碼從Flash復(fù)制到DSP的過(guò)程,并對(duì)引導(dǎo)程序給出基于匯編語(yǔ)言的代碼實(shí)現(xiàn)。工程實(shí)踐證明,該設(shè)計(jì)方案是可行、有效的。
關(guān)鍵詞:TMS320C6713;自舉引導(dǎo);Flash

    引言

    在許多基于DSP的系統(tǒng)設(shè)計(jì)中,程序代碼總是保存在ROM、Flash或其他非易失存儲(chǔ)器中,以保證掉電時(shí)代碼仍存在,因此必須要解決引導(dǎo)裝載的問(wèn)題。自舉引導(dǎo)(Bootload)是指系統(tǒng)上電時(shí),DSP將一段存儲(chǔ)在外部非易失性存儲(chǔ)器的代碼搬移到內(nèi)部的高速存儲(chǔ)器單元中執(zhí)行(如片內(nèi)RAM)。本文以TI 公司的TMS320C6713(以下簡(jiǎn)稱為C6713)浮點(diǎn)DSP和AMD公司的AM29LV040Flash存儲(chǔ)器為例,通過(guò)JTAG口加載來(lái)設(shè)計(jì)一個(gè)完整的引導(dǎo)裝載方案。

     TMS320C6713的引導(dǎo)配置

    外部信號(hào)BOOTMODE[4:3]決定了C6713的引導(dǎo)配置,在RESET信號(hào)的上升沿BOOTMODE[4:3]信號(hào)被獲取。C6713DSP只有2種引導(dǎo)方式:

     (1)ROM/Flash引導(dǎo)。外部存儲(chǔ)器的一部分通過(guò)EDMA控制器拷貝到DSP內(nèi)部地址0處。盡管引導(dǎo)程序在器件從外部復(fù)位釋放后才開(kāi)始執(zhí)行,但在 CPU被保持在內(nèi)部復(fù)位時(shí),這個(gè)拷貝就進(jìn)行了。Flash寬度也通過(guò)BOOTMODE[4:3]選擇。在Flash寬度小于32bit的情況下,DSP通過(guò)EMIF讀取時(shí),可以自動(dòng)將相鄰的8bit字節(jié)或16bit半字打包形成32bit的指令字,并且這些數(shù)值在外部存儲(chǔ)器中可以通過(guò)設(shè)定HD8來(lái)確定 endian存儲(chǔ)模式。

     (2)主機(jī)引導(dǎo)。核心CPU停留在復(fù)位狀態(tài),器件其余部分保持正常狀態(tài)。外部主機(jī)通過(guò)HPI或擴(kuò)展總線初始化CPU的存儲(chǔ)空間。在必要的初始化完成之后,主機(jī)在HPI控制寄存器的DSPINT位寫(xiě)1,這個(gè)寫(xiě)操作引起DSPINT信號(hào)的跳變,從而導(dǎo)致引導(dǎo)配置邏輯使CPU脫離復(fù)位狀態(tài),然后CPU從地址0處開(kāi)始運(yùn)行。

     Flash引導(dǎo)模式的實(shí)現(xiàn)

    硬件設(shè)計(jì)
     C6713引導(dǎo)引腳說(shuō)明如表1所列。

    

    設(shè)計(jì)時(shí)將DSP主機(jī)口引腳HD[4:3]中的HD4通過(guò)下拉電阻接地,HD3通過(guò)上拉電阻接3.3V電源,即HD[4:3]=01B。C6713的 EMIF含有4個(gè)CE空間寄存器,由于Flash加載程序是從CE1空間搬入的,因此DSP的CE1與Flash(AM29LV040)的片選相連,這種連接將Flash的內(nèi)部地址映射到DSP的0x90000000處,從而完成了基本的硬件設(shè)計(jì)。DSP與Flash接口的硬件連接如圖1所示。

   
    圖1  DSP與Flash的引腳連接

    引導(dǎo)程序的設(shè)計(jì)

     Flash存儲(chǔ)器的擦除
    在對(duì)AM29LV040Flash進(jìn)行讀寫(xiě)操作之前,應(yīng)對(duì)其進(jìn)行擦除,擦除操作需要6個(gè)總線周期:

     (1)向555H地址的存儲(chǔ)單元寫(xiě)入數(shù)據(jù)AAH;
     (2)向2AAH地址的存儲(chǔ)單元寫(xiě)入數(shù)據(jù)55H;
     (3)向555H地址的存儲(chǔ)單元寫(xiě)入數(shù)據(jù)80H;
     (4)向555H地址的存儲(chǔ)單元寫(xiě)入數(shù)據(jù)AAH;
     (5)向2AAH地址的存儲(chǔ)單元寫(xiě)入數(shù)據(jù)55H;
     (6)向555H地址的存儲(chǔ)單元寫(xiě)入數(shù)據(jù)10H;

    完成上述操作后,F(xiàn)lash存儲(chǔ)器完全擦除。

    在CCS環(huán)境下,用C語(yǔ)言編寫(xiě)上述操作如下:

     voidFlash_Erase()
   {
     *(char*)FLASH_ADR1=0xAA;
     *(char*)FLASH_ADR2=0x55;
     *(char*)FLASH_ADR1=0x80;
     *(char*)FLASH_ADR1=0xAA;
     *(char*)FLASH_ADR2=0x55;
     *(char*)FLASH_ADR1=0x10;
   }

    根據(jù)前面的設(shè)計(jì),F(xiàn)lash的內(nèi)部地址已經(jīng)映射到C6713的CE1空間,其開(kāi)始地址為0x90000000。因此FLASH_ADR1,F(xiàn)LASH_ADR2的定義如下:

     #define   FLASH_ADR1   0x90000555
     #define   FLASH_ADR2   0x900002AA

     匯編源代碼文件
    對(duì)于C6713而言,DSP上電復(fù)位后,EDMA自動(dòng)從CE1空間拷貝1KB數(shù)據(jù)(引導(dǎo)代碼應(yīng)定位與此)到地址0處,然后從0地址處開(kāi)始執(zhí)行引導(dǎo)代碼指令。本引導(dǎo)代碼的主要功能是將用戶程序段從Flash復(fù)制到DSP內(nèi)部RAM中,然后再跳轉(zhuǎn)到程序的入口處開(kāi)始執(zhí)行主程序。在引導(dǎo)程序內(nèi)復(fù)制程序段要使用 EDMA,以快速、靈活地實(shí)現(xiàn)DSP存儲(chǔ)空間內(nèi)數(shù)據(jù)的搬移。數(shù)據(jù)搬移的源/目的可以是片內(nèi)存儲(chǔ)器、片內(nèi)外設(shè)或外部器件。而此時(shí)需要對(duì)EDMA的源、目的地址、搬移長(zhǎng)度以及基本的傳輸方式進(jìn)行相關(guān)的設(shè)置,如表2所示,然后運(yùn)用匯編語(yǔ)言編程加入到引導(dǎo)程序即可。

    

    核心引導(dǎo)程序如下:

    .sect“.BootCode”              ;將引導(dǎo)代碼分配到BootCode段中
    .global  myBootCode
    .ref_c_int00                    ;C程序的入口地址
     MVKL   .S1EDMA0_OPT    ,A5
     MVKL   . S10x50010001  ,B4     ;低16bit寫(xiě)入寄存器
     MVKH   .S1EDMA0_OPT    ,A5
     MVKH   .S10x50010001   ,B4     ;高16bit寫(xiě)入寄存器
     STW         .D1B4,*A5          ;裝載EDMA的OPT參數(shù)
     MVKL   .S1EDMA0_SRA    ,A5
     MVKL   .S10x90001000   ,B4     ;低16bit寫(xiě)入寄存器
     MVKH   .S1EDMA0_SRA    ,A5
     MVKH   .S10x90001000   ,B4     ;高16bit寫(xiě)入寄存器
     STW.D1B4,*A5                  ;裝載EDMA的SRC參數(shù)
    ....
    ....
    接下來(lái)啟動(dòng)EDMA復(fù)制主程序段:CPU可以通過(guò)寫(xiě)事件置位寄存器(ESR)啟動(dòng)一個(gè)EDMA通道。     ESR中某一位寫(xiě)1時(shí),將強(qiáng)行觸發(fā)對(duì)應(yīng)的事件。程序如下:

     MVKL   .S10x00000001,   B4
     MVKL   .S1EDMA_ESR,     A5    ;低16bit寫(xiě)入寄存器
     MVKH   .S1EDMA_ESR,     A5
     MVKH   .S10x00000001,   B4    ;高16bit寫(xiě)入寄存器
     STW   .D1  B4, *A5            ;將ESR第一位置1
     NOP5
        傳輸結(jié)束后,跳轉(zhuǎn)到C程序的入口地址 _c_int00處,開(kāi)始執(zhí)行主程序:
     MVKL   .S2_c_int00,   B0
     MVKH   .S2_c_int00,   B0
     B.S2B0
     NOP5

     鏈接命令文件
    鏈接命令文件是DSP開(kāi)發(fā)過(guò)程中生成可執(zhí)行文件(.out)必不可少的一個(gè)環(huán)節(jié)。它對(duì)段的功能有2 個(gè),一是將由匯編器產(chǎn)生的COFF格式的OBJ文件作為輸入塊,當(dāng)有多個(gè)文件進(jìn)行鏈接時(shí),將相應(yīng)的段結(jié)合在一起生成可執(zhí)行輸出模塊;二是重新定位,將輸出的段分配到存儲(chǔ)器中的指定地址。

    編寫(xiě)命令文件時(shí),有時(shí)希望將代碼裝入存儲(chǔ)器的一個(gè)地方,而在另一個(gè)地方運(yùn)行。例如:一些關(guān)鍵的執(zhí)行代碼必須裝在系統(tǒng)的ROM中,但希望在較快的RAM中運(yùn)行。鏈接器提供了一個(gè)處理該問(wèn)題的簡(jiǎn)單方法。利用SECTIONS偽指令選項(xiàng)可讓鏈接器定位2次。第一次使用裝載關(guān)鍵字load設(shè)置裝入地址,再使用運(yùn)行關(guān)鍵字run設(shè)置它的運(yùn)行地址。裝載地址確定段的原始數(shù)據(jù)或代碼裝入的地方,而任何對(duì)段的引用則參考它的運(yùn)行地址。在應(yīng)用中必須將該段從裝載地址復(fù)制到運(yùn)行地址,本引導(dǎo)程序便使用EDMA方式完成這一復(fù)制過(guò)程。鏈接命令文件(boot.cmd)如下:

     MEMORY
     {
     VEC:ORG=0x00000000,LEN=0x00001000
     PMEM:ORG=0x00001000,LEN=0x00004000
     CEVEC:ORG=0x90000000,LEN=0x00001000
     CEPMEM:ORG=0x90001000,LEN=0x00004000
     }

    以上設(shè)置是將整個(gè)存儲(chǔ)器分成具有不同名稱的存儲(chǔ)區(qū)域。VEC,PMEM代表內(nèi)部RAM的兩塊存儲(chǔ)空間,而CEVEC,CEPMEM代表Flash內(nèi)的兩塊存儲(chǔ)空間。對(duì)目標(biāo)文件中各段的加載地址和運(yùn)行地址在SECTIONS段實(shí)現(xiàn)。

     SECTIONS
     {
    .BootCode:load=CEVEC;用戶的引導(dǎo)代碼段定位在Flash的最開(kāi)始。
    .text:load=CEPMEM,run=PMEM;用戶程序段裝載于
     Flash空間,而運(yùn)行在C6713內(nèi)部RAM中。
     }

    通過(guò)JTAG口的Flash在線燒寫(xiě)

    用匯編語(yǔ)言編寫(xiě)一個(gè)搬移程序,內(nèi)容僅是Flash的擦除過(guò)程,以及對(duì)EDMA的多次操作構(gòu)成的由片內(nèi)RAM到片外Flash的寫(xiě)入過(guò)程。把該搬移程序直接嵌入主程序中,這樣程序代碼長(zhǎng)度很短,不會(huì)占用過(guò)多的主程序空間。在主機(jī)引導(dǎo)方式下,通過(guò)JTAG口load后,手工更改PC值使其指向這段代碼,控制其運(yùn)行結(jié)束,完成自舉程序的在線燒寫(xiě)。而在此之后,這段短小的搬移程序不會(huì)被主程序中任何一段代碼所調(diào)用。

    結(jié)束語(yǔ)

    工程實(shí)際應(yīng)用表明該方法是切實(shí)可行的,與以往Flash引導(dǎo)程序編寫(xiě)方法相比避免了目標(biāo)代碼的格式轉(zhuǎn)換,利用EDMA直接搬移,無(wú)需編程器,F(xiàn)lash也不需頻繁拆卸,利于工程上的快速開(kāi)發(fā)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開(kāi)發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績(jī)預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營(yíng)業(yè)收入7.54億元至8.33億元,同比增長(zhǎng)60.24%至77.03%;歸母凈利潤(rùn)預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠(chéng)健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國(guó)軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷(xiāo)售額同比增長(zhǎng)59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國(guó))在華深耕經(jīng)營(yíng)12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國(guó)際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國(guó)進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開(kāi)幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過(guò)140,...

關(guān)鍵字: 中國(guó)智造 BSP 手機(jī) CAN

我們知道 Flash 讀時(shí)序里有五大子序列 CMD + ADDR + MODE + DUMMY + READ,前面的文章中痞子衡講過(guò)《串行NOR Flash的Continuous read模式》,Continuous r...

關(guān)鍵字: CMD ADDR Flash

SWM32S單片機(jī)有1個(gè)SDIO接口,支持多媒體卡(MMC)、SD 存儲(chǔ)卡、SDIO 卡等設(shè)備,可以使用軟件方法或者 DMA 方法(SDIO 模塊內(nèi)部 DMA,與芯片 DMA 模塊無(wú)關(guān))進(jìn)行數(shù)據(jù)傳輸。

關(guān)鍵字: SWM32S單片機(jī) SDIO DMA

單片機(jī)

21600 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉