付雪飛 張?zhí)? 路婷婷
【摘 要】論文介紹NorFlash啟動(dòng)雙核系統(tǒng)的辦法,詳細(xì)介紹啟動(dòng)過(guò)程中需要的工作流程,包括程序的存放、燒寫(xiě)、載入、跳轉(zhuǎn)、執(zhí)行等。
【Abstract】The paper introduces the methods of NorFlash to start dinuclear system, and introduce the working process needed during startupm, including the programme storage, programming, loading, jumping and executing and so on.
【關(guān)鍵詞】雙核;啟動(dòng);NorFlash
【Keywords】dual core; startup; NorFlash
【中圖分類(lèi)號(hào)】TP333;TP274.2 【文獻(xiàn)標(biāo)志碼】A 【文章編號(hào)】1673-1069(2018)06-0185-02
1 雙核啟動(dòng)介紹
1.1 OMAP-L138介紹
德州儀器推出具有無(wú)與倫比連接選項(xiàng)與定點(diǎn)和浮點(diǎn)功能的全新處理器 OMAP-L138,同時(shí)這款產(chǎn)品也是業(yè)界功耗最低的浮點(diǎn)數(shù)字信號(hào)處理器,可充分滿足高能效、連通性設(shè)計(jì)對(duì)高集成度外設(shè)、更低熱量耗散以及更長(zhǎng)電池使用壽命的需求。
該器件結(jié)合了一系列獨(dú)特的應(yīng)用優(yōu)化特性和外設(shè),能顯著降低工業(yè)、通信、醫(yī)療診斷和音頻等多種產(chǎn)品的總體系統(tǒng)成本。
此芯片,可通過(guò)動(dòng)態(tài)電壓與頻率縮放及多種省電模式管理片上電源。若配合電源管理軟件和配套模擬解決方案,開(kāi)發(fā)人員無(wú)需成為節(jié)能技術(shù)專(zhuān)家即可優(yōu)化系統(tǒng),提高性能,降低功耗。
OMAPL138雙CPU內(nèi)核高性能處理器是由德州儀器公司生產(chǎn)的雙CPU處理器,內(nèi)部包含DSP和ARM兩個(gè)CPU內(nèi)核。本文介紹了一種基于Flash實(shí)現(xiàn)雙核啟動(dòng),并分別加載ARM和DSP程序的方法,介紹了OMAPL138雙CPU核的自啟動(dòng)和開(kāi)發(fā)方法,對(duì)于OMAPL138的應(yīng)用有非常強(qiáng)的參考價(jià)值。
1.2 OMAP-L138程序映射介紹
本文介紹ARM啟動(dòng)后,喚醒DSP自啟動(dòng)系統(tǒng),這種自啟動(dòng)系統(tǒng)需編寫(xiě)bootloader程序、應(yīng)用程序段,其中ARM包含bootloader、應(yīng)用程序,DSP包含應(yīng)用程序。
所有程序的代碼放置在外部NOR Flash內(nèi),外部Flash與雙核CPU通過(guò)EMIF總線連接。程序放置位置的中的地址映射如圖1所示,其中,bootloader.bin通過(guò)雙核CPU出廠自帶的搬運(yùn)程序到共享shareRAM中,shareRAM起始地址為0x80000000,出廠自帶的搬運(yùn)程序不能搬運(yùn)超過(guò)16 KB的二進(jìn)制文件;ARM應(yīng)用程序arm.bin放在DDR2,起始地址為0xC0000000和DSP應(yīng)用程序代碼段放在L2,起始地址為0x11800000,最后,ARM中斷向量表存放在ARM_LOCAL_RAM地址空間,位于0xFFFF0000處。
1.3 OMAP-L138程序啟動(dòng)流程介紹
首先是所有目標(biāo)碼(*.bin)寫(xiě)入外部NORFlash的程序?qū)崿F(xiàn)。寫(xiě)入外部NORFlash程序是由用戶獨(dú)立編寫(xiě),運(yùn)行在ccs5.4中的一個(gè)額外的仿真程序,用于將應(yīng)用程序?qū)懭氲酵獠縉ORFlash中,當(dāng)然寫(xiě)入地址除bootloader.bin必須在NOR Flash頂端外[1],其他*bin程序都可以由用戶自由定義。
其次bootloader只完成一項(xiàng)工作,就是將ARM程序、DSP程序、中斷向量表搬移到分別對(duì)應(yīng)的空間中去。
之后ARM程序按順序完成的以下事件:
①將ARM設(shè)置為super mode,且初始化對(duì)應(yīng)的寄存器和堆棧;
②雙核CPU內(nèi)部寄存器的初始化;
③由ARM通過(guò)控制字Wake Up DSP;
④在ARM程序中調(diào)用跳轉(zhuǎn)到相應(yīng)需執(zhí)行的程序地址。
最后DPS程序被喚醒,則執(zhí)行應(yīng)用程序。
2 雙核程序啟動(dòng)詳細(xì)介紹
2.1 bootloader介紹
Bootloader為自編寫(xiě)的一段代碼,主要是用來(lái)搬運(yùn)較大的文件,因?yàn)镺MAP-L138芯片內(nèi)部自帶的load程序只能搬運(yùn)不能超過(guò)16K大小的BIN文件,如果用戶想使用大于這個(gè)文件大小的應(yīng)用程序,則需要自己編寫(xiě)搬運(yùn)程序,也就是此處介紹的bootloader程序[2]。
Bootloader編寫(xiě)原則上是簡(jiǎn)單,精煉,只需完成一個(gè)搬運(yùn)功能即可,其他復(fù)雜功能都不必實(shí)現(xiàn),像芯片初始化等可由后續(xù)應(yīng)用程序去完成。
2.2 將bootloader代碼、ARM和DSP應(yīng)用程序?qū)懭隢or Flash中
首先必須編寫(xiě)一個(gè)NorFlashWrite的程序,此程序應(yīng)能初始化OMAP-L138芯片,并能獨(dú)立運(yùn)行,并能操作外部NorFlash。
將bootloader代碼、ARM和DSP對(duì)應(yīng)的*.bin二進(jìn)制文件讀取到電腦內(nèi)存空間且檢驗(yàn)文件正確,使用NorFlashWrite(用戶自己編寫(xiě)的寫(xiě)入NOR Flash的小程序,根據(jù)用戶硬件連接不同,寫(xiě)入地址和方式也相應(yīng)會(huì)改變)將*.bin寫(xiě)入到NOR Flash對(duì)應(yīng)地址內(nèi)[3]。
Bootloader.bin根據(jù)手冊(cè)要求需放置在NorFlash頂端位置處,具體的寫(xiě)入由NorFlashWrite程序完成。
2.3 執(zhí)行流程
2.3.1 Bootloader載入、執(zhí)行
首先,OMAP-L138芯片被上電,芯片自動(dòng)執(zhí)行內(nèi)部的loader程序,根據(jù)芯片外部跳線,芯片會(huì)自動(dòng)選擇外部程序載入方式,本文為NorFlash方式。芯片出廠自帶的自啟動(dòng)程序會(huì)搬運(yùn)NOR Flash頂端地址(0x60000000)的16KB大小的二進(jìn)制代碼到雙核CPU的共享內(nèi)存的頂端地址處(0x80000000),雙核CPU搬運(yùn)完成后,雙核系統(tǒng)強(qiáng)制將程序運(yùn)行PC指針指向0x80000004處運(yùn)行此處地址的指令。
2.3.2 ARM應(yīng)用程序執(zhí)行
首先,ARM的初始化函數(shù)會(huì)更改寄存器CPSR的模式、中斷控制位,使ARM核處于super mode下,如果ARM不處于super mode下,很多ARM硬件資源都不能使用,而且不處于super mode下很多寄存器也不能訪問(wèn);之后,關(guān)閉所有中斷允許寄存器,將super mode的堆棧初始化[4];在super mode堆棧的所有初始化結(jié)束后,雙核內(nèi)部的寄存器也需初始化,最后通過(guò)wake up命令來(lái)喚醒DSP即可,至此ARM基本工作已經(jīng)完成。
2.3.3 DSP應(yīng)用程序執(zhí)行
DSP應(yīng)用程序在ARM對(duì)其喚醒時(shí)已經(jīng)開(kāi)始執(zhí)行了,ARM需將wake up DSP的地址寫(xiě)入到寄存器HOST1CFG中,此地址為DSP即將運(yùn)行程序的頂端地址。
2.4 執(zhí)行結(jié)束
當(dāng)DSP應(yīng)用程序被執(zhí)行時(shí),OMAP-L138雙核的啟動(dòng)已經(jīng)完成,ARM和DSP核可以分別運(yùn)行,它們之間可通過(guò)配置系統(tǒng)寄存器CHIPSIG中的SYSCFG_CHIPINTx向DSP發(fā)送系統(tǒng)中斷實(shí)現(xiàn)雙核通信,或通過(guò)ShareRAM等方式交換數(shù)據(jù)。
3 結(jié)語(yǔ)
本文講解了一種基于NorFlash自啟動(dòng)開(kāi)發(fā),實(shí)現(xiàn)OMAPL138中ARM和DSP的啟動(dòng)方案,方案簡(jiǎn)易,代碼量少,易于實(shí)際應(yīng)用,并詳細(xì)分析了OMAPL138雙核CPU系統(tǒng)的自啟動(dòng)方式和實(shí)現(xiàn)方案,對(duì)于OMAPL138雙核CPU系統(tǒng)實(shí)際運(yùn)用有很強(qiáng)的參考價(jià)值。
【參考文獻(xiàn)】
【1】劉遠(yuǎn)峰,陳志華.一種新的基于TMS320C6000 DSP的Flash引導(dǎo)自啟動(dòng)方法[J].電視技術(shù),2011,21(35):54-57.
【2】王潔,蘇東林,姜鐵華.基于TMS320C6000系列DSP的二次Bootl oader研究[J].電子工程師,2005,8(31):53-55.
【3】劉濤,倪江生,王丹丹.基于DSP的Flash自啟動(dòng)設(shè)計(jì)[J].儀表技術(shù),2009(9):44-45.
【4】王鵬,簡(jiǎn)秦勤,范俊鋒.基于TMS320C6000 DSP及DSP/BIOS系統(tǒng)的Flash引導(dǎo)自啟動(dòng)設(shè)計(jì)[J].電子元器件應(yīng)用,2012,12(14):35-39.