OMAPL138多核MCSDK開發


1、首先安裝MCSDK相關軟件

1.1在Ubuntu虛擬機中安裝CCS

       此處安裝的是Linux下的CCS,版本號是:CCS5.5.0。CCS5.5.0.00077_linux.tar.gz

1.2安裝MCSDK

下載mcsdk_1_01_00_02_setuplinux.bin安裝文件,然後執行如下命令:

Host#    ./mcsdk_1_01_00_02_setuplinux.bin

2、設置MCSDK開發環境參數

       進入mcsdk_1_01_00_02目錄下,啓動MCSDK設置腳本,根據不同主機設置,進行tftp、nfs、U-Boot等配置。在設置之前,務必保證虛擬機網絡暢通。

Host#    sudo ./setup.sh

2.1syslink配置、編譯、安裝

       安裝MCSDK時,會將自動將syslink安裝在相同的目錄下,下文將介紹Syslink配置、編譯和示例演示。在開始syslink編譯之前,請確保以下幾點:

(1)已安裝arm-none-linux- gnueabi-gcc-4.3.3交叉編譯工具鏈。

(2)內核源碼正確編譯。

(3)文件系統正確解壓在Ubuntu虛擬機。

2.2配置syslink

       進入syslink_2_21_01_05目錄,打開配置文件products.mak。

       修改如下地方:

備註:由於配置容易出錯,建議新建一個文件做備份,然後再根據個人的實際情況小修改即可。

(1)       DEVICE =_your_device_     

改爲      DEVICE = OMAPL1XX             //表示編譯OMAPL138

 

(2)       SDK = _your_sdk_

改爲      SDK = NONE                        //SDK類型爲NONE

 

(3)       EXEC_DIR =_your_filesys_

改爲      EXEC_DIR =/home/tl/omapl138/demo-rootfs        //syslink驅動和演示程序安裝路勁,一般設置爲nfs或者SD卡的文件系統

 

(4)       DEPOT =_your_depot_folder_

改爲      DEPOT = /home/tl/ti        //MCSDK的安裝路徑

 

(5)        

######## For OMAPL1XX device ########

else ifeq("$(DEVICE)","OMAPL1XX")

LINUXKERNEL             =$(DEPOT)/_your_linux_kernel_install_

CGT_ARM_INSTALL_DIR     = $(DEPOT)/_your_arm_code_gen_install_

CGT_ARM_PREFIX          =$(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-

IPC_INSTALL_DIR         = $(DEPOT)/_your_ipc_install_

BIOS_INSTALL_DIR        = $(DEPOT)/_your_bios_install_

XDC_INSTALL_DIR         = $(DEPOT)/_your_xdctools_install_

 

# If LOADER=ELF then below elf tools pathis required else set C674 path

ifeq("$(LOADER)","ELF")

CGT_C674_ELF_INSTALL_DIR=$(DEPOT)/_your_c674elf_code_gen_install_

else

CGT_C674_INSTALL_DIR=$(DEPOT)/_your_c674_code_gen_install_

endif

 

改爲

######## For OMAPL1XX device ########

else ifeq("$(DEVICE)","OMAPL1XX")

LINUXKERNEL             = /home/tl/omapl138/linux-3.3 //內核源碼路徑

CGT_ARM_INSTALL_DIR     = /home/tl/arm-2009q1          //交叉編譯工具鏈安裝路徑

CGT_ARM_PREFIX          =$(CGT_ARM_INSTALL_DIR)/bin/arm-none-linux-gnueabi-

IPC_INSTALL_DIR              =$(DEPOT)/ipc_1_25_03_15              //ipc安裝路徑

BIOS_INSTALL_DIR            =$(DEPOT)/bios_6_35_04_50            //bios安裝路徑

XDC_INSTALL_DIR             =$(DEPOT)/xdctools_3_25_03_72     //xdc安裝路徑

 

# If LOADER=ELF then below elf tools pathis required else set C674 path

ifeq("$(LOADER)","ELF")

CGT_C674_ELF_INSTALL_DIR=$(DEPOT)/ccsv5/tools/compiler/c6000_7.4.4        //dsp編譯器路徑

else

CGT_C674_INSTALL_DIR=$(DEPOT)/_your_c674_code_gen_install_

endif

       配置完成後,保存退出。

2.3編譯syslink源碼

       編譯syslink之前,先將以下兩個宏定義添加到syslink中的Omapl1xxIpcInt.c、omapl1xx_phy_shmem.c、omapl1xxpwr.c文件開頭,否則編譯會出錯。

#undef __ASM_ARCH_HARDWARE_H

#include <mach/hardware.h> 

       以上三個文件的路徑是:    

(1)syslink_2_21_01_05/packages/ti/syslink/ipc/hlos/knl/notifyDrivers/arch/omapl1xx/Omapl1xxIpcInt.c

(2)syslink_2_21_01_05/packages/ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/Linux/omapl1xx_phy_shmem.c

(3)syslink_2_21_01_05/packages/ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c

修改Omapl1xxIpcInt.c

       執行以下命令修改:

Host#    gedit syslink_2_21_01_05/packages/ti/syslink/ipc/hlos/knl/notifyDrivers/arch/omapl1xx/Omapl1xxIpcInt.c

        添加內容後,保存退出。

修改omapl1xx_phy_shmem.c

       在當前路徑下,執行以下命令:

Host#    gedit syslink_2_21_01_05/packages/ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/Linux/omapl1xx_phy_shmem.c

       添加內容後,保存退出。

修改omapl1xxpwr.c

       在當前路徑下,執行以下命令:

Host#    gedit syslink_2_21_01_05/packages/ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c

       添加內容後,保存退出。

 

       接下來開始編譯syslink,執行以下命令:

Host#    make syslink

編譯成功

 

2.4編譯syslink示例程序

       在當前目錄,執行以下命令:

Host#    make samples

       編譯成功,至此,整個syslink已經編譯完成。

3、syslink示例程序演示

3.1安裝syslink驅動和示例程序到文件系統

       在當前目錄,執行以下命令將syslink驅動和示例程序安裝到文件系統:

Host#    sudo make install

 

       編譯完後查看是否已經安裝了syslink驅動和示例程序,在自定義文件系統目錄下:

Host#    lslib/modules/3.3.0/kernel/drivers/dsp/

 

       可以看到在文件系統lib/modules/3.3.0/kernel/drivers/dsp/目錄下有syslink驅動程序syslink.ko文件和文件系統根目錄下有“ex**_##”的示例程序。

 

4、運行syslink示例程序

       可以通過sd卡或者nfs的方式啓動此文件系統。下面以SD卡啓動方式爲例講解syslink示例程序的運行方法。

1)設置U-Boot參數

       將以上文件系統拷貝到SD啓動卡的EXT3格式root分區,然後將SD啓動卡插到開發板上,撥碼開關打到SD卡啓動方式,上電啓動後在U-Boot命令行執行以下命令:

Target#        setenv bootargsconsole=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3mem=32M@0xc0000000 mem=64M@0xc4000000

備註:通過nfs方式只需要修改參數mem=128M爲mem=32M@0xc0000000mem=64M@0xc4000000。

2)安裝syslink驅動

       進入開發板後,執行以下命令安裝syslink驅動:


Target#       insmod/lib/modules/3.3.0/kernel/drivers/dsp/syslink.ko TRACE=1 TRACEFAILURE=1

3)syslink示例程序

Target#        cd /

Target#        ./runall.sh


5、示例程序解析    

       每個示例目錄中有readme.txt和run.sh文件說明如何使用示例,而在開發板中運行/runall.sh是運行了所有的syslink示例程。

備註:以下內容摘錄於http://blog.csdn.net/crushonme/article/details/10287693

Slaveloader

       在OMAPL138的ARM Linux操作系統中,syslink提供了“slaveloader”組件去加載、啓動、停止DSP處理器,實現了對DSP核的管理,同時也是使用“slaveloader”組件去運行syslink示例程序。

       運行“slaveloader”組件有四個參數:

參數1:startup|shutdown|all|powerup|load|start|stop|unload|powerdown|list

參數2:Core name         //遠程處理器名稱,一般是DSP

參數3:File path            //可執行文件路徑,當參數2startup/load/all/時必填

參數4:map-file             //map文件,當遠程處理器MMU功能開啓時必填

      

       可以通過各個syslink示例目錄下的run.sh腳本查看使用slaveloader運行示例程序.

備註:在單獨運行各個示例程序前,務必先安裝syslink驅動,安裝命令:

Target# insmod/lib/modules/3.3.0/kernel/drivers/dsp/syslink.ko TRACE=1 TRACEFAILURE=1

       下面將針對每個示例進行解析。

示例名字:helloworld

功能說明:GPP(ARM)端註冊一個來自DSP端的簡單一次性通知事件。

 

運行命令:

Target#        cd /ex01_helloworld/debug

Target#        ./run.sh

 

詳細資料請查看創龍完整的使用手冊:

http://pan.baidu.com/s/1jGuX6gI


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章