新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 多核DSP的BootLoader程序的實現

        多核DSP的BootLoader程序的實現

        作者: 時間:2008-11-27 來源:網絡 收藏

          ·粗略估計B核的程序執行時間,在A核的有效程序代碼前加一個延遲程序。

          ·在A核的有效程序代碼前加入一個死循環程序,當B核程序執行完后,B核通知A核,A核就跳出這個死循環程序,開始執行自己的有效代碼。

          2.4 TMS320VC5421的16位并行EPROM工作方式的程序的編程實現

          首先設計一個簡單的電路圖,如圖3所示。在的A_XF和B_XF兩個管腳分別連接一個發光二極管,A核以2Hz的頻率點亮發光二極管,B核以10Hz的頻率點亮發光二極管。將128K的FLASH(SST39VF400A)分成兩頁,每頁為64K。FLASH的頁的選擇由TMS320VC5421的A_BDXO管腳控制。當A_BDX0為低電平,即FLASH的A16地址線為低電平時,選中FLASH的第一頁,由FLASH的A0~A15地址線選擇頁內地址,用于存放A核的16位并行EPROM工作方式的Boot表。當A_BDX0為高電平,即FLASH的A16地址線為高電平時,選中FLASH的第二頁,由FLASH的A0~A15地址線選擇頁內地址,用于存放B核的16位并行EPROM工作方式的Boot表。

          CPU_A和CPU_B的程序流程圖分別如圖4和圖5所示。

        多核DSP的BootLoader程序的實現

        多核DSP的BootLoader程序的實現

          (1)片外總線沖突的解決

          估算B核執行BootLoader程序所需的時間后,在A核的用戶有效程序之前,加一段延遲程序。

          延遲的時間計算如下:

          TMS320VC5421的DMA通道從片外數據空間讀取一個字到片內數據空間,需要7個指令周期時間。

          統計用戶程序大小,將對應Boot表中的所有段的大小相加:N1+N2+...=N。

          延遲的時間為N×7=7N個指令周期。

          由上面所述的方法可知,只需在開始執行A核的有效程序之前加一段延遲7N個指令周期的代碼即可。

          (2)生成Boot表

          對CPU_A來說,以A核程序流程圖建立一個項目Ati.msk。產生Ati.out文件后,進入該目錄的DOS環境,鍵入:

          hex500 Ati.out-a-e 0x4000h-boot-bootorg PARALLEL-memwidth 16-romwidth 16-o Ati.hex

          生成A核的16位并行EPROM工作方式的Boot表。

          對CPU_B來說,同樣以B核程序流程圖建立一個項目Bti.msk。產生Bti.out文件后,進入該目錄的DOS環境,鍵入:

          hex500 Bti.out-a -e 0x4000h-boot-bootorg PARALLEL-memwidth 16-romwidth 16-o Bti.hex

          生成B核的16位并行EPROM工作方式的Boot表。

          在實現雙核自舉后,A核和B核的用戶程序將會被存放在核內程序空間的不同頁面上。如從DMA的角度觀看:A核的用戶程序將被存放在A核的程序空間的第0頁上;B核的用戶程序將被存放在B核的程序空間的第2頁上。因此A核的Boot表不需要修改,而B核的Boot表中的所有存放頁地址的表項中的內容要更改為2。

          (3)FLASH編程實現

          根據FLASH芯片的控制時序,編寫一個簡單的DSP程序,用于將A核的Boot表寫入FLASH的低64K,將B核的Boot表寫入FLASH的高64K。

          3 試驗結果

          將電路后,A核控制的發光二極管開始閃爍,B核控制的發光二極管也開始閃爍,且A核發光二極管閃爍頻率要低于B核發光二極管閃爍頻率。由此現象可得出:A核與B核的BootLoader實現成功,未產生片外總線沖突;A核以2Hz的頻率點亮發光二極管,B核以10Hz的頻率點亮發光二極管。


        上一頁 1 2 3 4 5 下一頁

        關鍵詞: DSP 多核 BootLoader 上電

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 海兴县| 乌兰察布市| 湟源县| 广水市| 板桥市| 甘德县| 瑞安市| 东安县| 绩溪县| 吉林省| 德令哈市| 枝江市| 延津县| 高密市| 托克逊县| 攀枝花市| 开封县| 华池县| 延津县| 灵寿县| 万安县| 永川市| 阜平县| 汤阴县| 伊宁县| 长垣县| 武隆县| 麟游县| 左权县| 进贤县| 贵港市| 竹北市| 新闻| 阿克陶县| 阳春市| 怀化市| 昌乐县| 泰兴市| 喀喇沁旗| 四平市| 太白县|