1、首先安裝MCSDK相關軟件linux
此處安裝的是Linux下的CCS,版本號是:CCS5.5.0。CCS5.5.0.00077_linux.tar.gz網絡
下載mcsdk_1_01_00_02_setuplinux.bin安裝文件,而後執行以下命令:ui
Host# ./mcsdk_1_01_00_02_setuplinux.binthis
進入mcsdk_1_01_00_02目錄下,啓動MCSDK設置腳本,根據不一樣主機設置,進行tftp、nfs、U-Boot等配置。在設置以前,務必保證虛擬機網絡暢通。操作系統
Host# sudo ./setup.sh.net
2.1syslink配置、編譯、安裝命令行
安裝MCSDK時,會將自動將syslink安裝在相同的目錄下,下文將介紹Syslink配置、編譯和示例演示。在開始syslink編譯以前,請確保如下幾點:
(1)已安裝arm-none-linux- gnueabi-gcc-4.3.3交叉編譯工具鏈。
(2)內核源碼正確編譯。
(3)文件系統正確解壓在Ubuntu虛擬機。
進入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
編譯成功
在當前目錄,執行如下命令:
Host# make samples
編譯成功,至此,整個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**_##」的示例程序。
能夠經過sd卡或者nfs的方式啓動此文件系統。下面以SD卡啓動方式爲例講解syslink示例程序的運行方法。
將以上文件系統拷貝到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。
進入開發板後,執行如下命令安裝syslink驅動:
Target# insmod/lib/modules/3.3.0/kernel/drivers/dsp/syslink.ko TRACE=1 TRACEFAILURE=1
Target# cd /
Target# ./runall.sh
每一個示例目錄中有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 //可執行文件路徑,當參數2爲startup/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