OMAPL138多核MCSDK开发

来源:互联网 发布:中原工学院网络教育 编辑:程序博客网 时间:2024/06/12 01:22


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


0 0
原创粉丝点击