您的位置:首页 > 其它

OMAPL138多核MCSDK开发

2014-07-14 20:31 127 查看

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
//可执行文件路径,当参数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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: