• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 用雙MicroBlaze監控汽車應用

    用雙MicroBlaze監控汽車應用

    作者: 時間:2012-02-10 來源:網絡 收藏

    考慮到實時操作系統(RTOS)具有眾多庫函數,.text和.data段對BRAM顯得過大,因此,我們將這些函數存放在外部存儲器中。在多處理器系統中,如果多個處理器需要對相同存儲區域尋址,這樣做會導致問題復雜化。因此,開發人員必須手動調整存儲分段。如前文所述,兩個處理器只緩存自己專用的存儲區,并共享對代碼段和數據段之外定義區域的訪問。通過PLB請求XPS Mutex,可對該共享存儲區域進行同步訪問,從而實現在兩個MicroBlaze之間交換數據。為了在主/從或者流水線處理器系統中實現直接通信和同步,我們采用了FSL。這樣可以避免在訪問共享存儲器時,因多次存儲器總線分配而導致更高的訪問延遲。

    我們首先使用SDK鏈接腳本生成程序創建鏈接腳本。該腳本為文本文件,由三段組成,定義了堆和棧的大小、存儲區以及每個段的地址。下段代碼描述了 系統Microblaze_0的鏈接腳本。我們調整了代碼段和數據段存儲區的大小,并增加了一個用于共享存儲區的新段。我們也相應調整了microblaze_1的鏈接腳本,將代碼段和數據段的起始存儲區地址設定為0x8A000000,并為共享存儲器分配了一個相等的段。


    /*定義microblaze_0的堆和棧大小*/

    _STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE :

    0x1000;

    _HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE :

    0x1000;

    /*定義系統中用于microblaze_0的存儲器*/

    MEMORY

    {

    ilmb_cntlr_dlmb_cntlr :

    ORIGIN = 0x00000050, LENGTH = 0x00003FB0

    /*重新設定用于代碼段和數據段的存儲器大小*/

    DDR2_SDRAM_MPMC_BASEADDR :

    ORIGIN = 0x88000000, LENGTH = 0x02000000

    /*為共享存儲器新增一個分段*/

    DDR2_SDRAM_SHARED_BASEADDR :

    ORIGIN = 0x8C000000, LENGTH = 0x04000000

    }

    [...]

    /*定義各段和它們在存儲器中映射的位置*/

    SECTIONS

    {

    [...]

    sharedmem : {

    __sharedmem_start = .;

    *(sharedmem)

    __sharedmem_end = .;

    } > DDR2_SDRAM_SHARED_BASEADDR

    [...]

    }

    MPSOC的下載和調試選項

    SDK環境為下載、運行和調試多處理器系統的軟件提供了兩種方法。一方面,基于Eclipse的工具能夠為軟件工程提供下載和ST.DIO狀態的配置;另一方面,可以使用Xilinx微處理器調試(XMD)控制臺來處理這些任務。

    另外,SDK還可以使用位流和.bmm文件重配置FPGA。根據鏈接腳本中定義的段,FPGA編程對話框(Program FPGA Dialog)可以隨意將整個軟件段直接傳輸到與特定處理器相關聯的BRAM中。如上所述,由于.elf文件會因使用庫函數的應用而增大,因此,在多處理器系統中,我們一般會將這些段存放在外部存儲器中。在這種情況下,可以選擇FPGA編程對話框軟件配置設置中的bootloop,來提供后續的軟件下載。

    SDK環境

    SDK在工程瀏覽器(Project Explorer)窗口中,提供了包括軟件工程選擇的運行與調試(Run Debug)配置,以及在Run菜單中打開“Run configurations…”。系統中每個處理器都有相關聯的“Run Debug”配置。在第一個例子中,選擇配置對話框主標簽中的工程.elf文件。在“Device Initialization”標簽中將“Reset Processor Only”選為復位方式,以避免在復位時將整個系統重置。

    另外,通過配置ST.DIO Connection標簽,可以讓ST.DIO直接打印到SDK控制臺。將單處理器的“Run Debug”配置捆.綁在一起,它們就可以同時運行各自的軟件。最后,SDK基于Eclipse的調試窗口可以讓開發人員插入斷點,并提供變量賦值和存儲分配方面的信息。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 万宁市| 栾城县| 图们市| 神木县| 重庆市| 顺义区| 凌海市| 阿合奇县| 镇平县| 大安市| 轮台县| 铜梁县| 冀州市| 库伦旗| 河西区| 平凉市| 乐都县| 咸阳市| 汝州市| 闽侯县| 木兰县| 夏河县| 巨鹿县| 宜春市| 荥经县| 朔州市| 阿合奇县| 金沙县| 孟连| 西乌珠穆沁旗| 海城市| 南安市| 彰化县| 华阴市| 南通市| 清徐县| 兴山县| 甘肃省| 陇西县| 抚远县| 托克托县|