本節提供有關如何在 Arm 啟動器件上啟動 DSP 可執行文件的信息。用戶引導加載程序 (UBL) 將首先運行,并用來喚醒 DSP,從而開始執行 DSP 應用。Arm 和 DSP 程序組合成一個可被直接刷新和啟動的 AIS 映像。
使用一個簡單的測試程序,其中 DSP 在啟動后使 OMAP-L138 EVM 上的 LED 反復閃爍。
這是一個非常簡單的過程,需要記住一些關鍵事項:
- Arm 必須設置 HOST1CFG 寄存器以更改 DSP 復位向量。這應該指向 DSP 可執行文件的入口點,但它只能被設置為 1KB 邊界(保留底部 10 位,讀作 0)。因此,DSP 應用的鏈接器命令文件應專門迫使入口點也對齊到1KB 邊界上。在本示例中,地址 0x80010000 處創建了一個名為“entry_point”的內存區域,并將“.text:_c_int00”段分配給該內存區域。
- 和 DSP .map 文件不能重疊。如果兩個程序使用相同的內存地址,它們將相互覆蓋并很可能崩潰。應編寫鏈接器命令文件以防止這種情況發生。
- 對于芯片版本 1.0 和 1.1,在寫入 HOST1CFG 寄存器之前必須解鎖 KICK 寄存器。此外,對于所有的修訂版本,Arm 必須處于管理員模式。SOC 設計要求 Arm 內核處于管理員模式,以配置引腳多路復用 (PINMUX) 寄存器。TI Arm 工具鏈在初始化期間以用戶模式配置內核,因此 Arm 應用需要包含 boot.asm 源文件,以將 Arm 執行狀態更改為管理員模式。該文件應包含在需要訪問某些 SYSCFG 寄存器并需要管理員模式的所有項目中。
- 如果 DSP 存儲器映射的任何段在 DSP L2 RAM (0x11800000) 中,請注意兩點:
- 請確保 DSP 鏈接器命令文件中的所有 L2 RAM 地址都是在 0x118xxxxx 范圍內而不是 0x008xxxxx 范圍內引用的,因為這些地址無法寫入 0x008xxxxx 地址范圍
- 使用 AISGen 的“配置 PSC”功能啟用 DSP LPSC (PSC0,#15)。如果 DSP巨型模塊處于復位狀態,則L2 RAM將無法訪問,并且段加載將失敗。該項目中包含的 AISGen CFG 文件默認啟用 PSC0,#15。