您好,欢迎来到61ic! | [登录] [注册] 忘记密码 | 设为首页 帮助
 . 网站首页 . 业界新闻 . 设计中心 . 移动技术 . TI专栏 . ADI专栏 . FPGA专栏 . 代码工厂 . 官方商城 . 
 . 活动专区 . 新品快递 . 解决方案 . 前沿科技 . TI资源 . ADI资源 . FPGA资源 . 下载中心 . 产品展示 . 
加入收藏
付款方式
联系我们
您现在的位置: 61IC电子在线 >> TI专栏 >> TI Sitara ARM >> AM1x ARM9 >> 正文
  beagleboard上dvsdk移植----ARM调用DSP过程详解           ★★★ 【字体:
beagleboard上dvsdk移植----ARM调用DSP过程详解
作者:鱼思故渊    文章来源:鱼思故渊    点击数:    更新时间:2013-10-14    

一、准备工作

        1、首先下载正确的dvsdk,在TI官网上寻找后最新的dvsdk,这里有TI的关于omap37x的SDK。最新的sdk为 dvsdk_dm3730-evm_04_03_00_06_setuplinux  还有一个为dvsdk_dm3730-evm_04_02_00_06_setuplinux,这个关于omap37x系列的两个SDK,同时beagleboard也有一个自己的sdk因为使用的beagleboard上的内核,这里编译驱动的时候需要指定内核,beagleboard上使用的内核为ti-sdk-beagleboard-05.04.00.00-Linux-x86-Install。这个为beagleboard上的sdk。首先安装beagleboard上的sdk,安装的默认目录为/usr/local/ti-sdk-beagleboard。其中内核源代码的目录为/usr/local/ti-sdk-beagleboard/board-support,这个目录下有内核和u-boot的源代码。需要移植的sdk为dvsdk_dm3730-evm_04_03_00_06_setuplinux。也需要将这个SDK安装上去。这两个SDK的安装都需要图形界面,同时后者的安装需要交叉编译器的arm-none-linux-gnueabi-

这里安装的默认目录为/usr/local/arm/arm-2009q1/bin可以写一个shell脚本,每次开启一个终端需要source这个脚本。


01.#! /bin/sh 
02.export PATH=$PATH:/usr/local/arm/arm-2009q1/bin 

开启一个终端后source setenv.sh(同时记得修改权限)

在完成以后可以通过在终端输入arm+tab键验证是否有这个编译器出现。

    2、修改makefile文件,因为编译模块需要指定内核目录所在目录,这里需要指定的目录已经在上边介绍。

         同时需要将这个内核编译,或者出现某个问题可以参考这个文章,或者直接编译linux-3.0.8-r110b内核。然后修改makefile,在/usr/local/dvsdk的顶层目录下有makefile文件,但是makefile文件的内容非常少,因为文件的第一条中有include Rules.make。所以很多变量都在这个文件中定义,这里指需要修改内核目录即可


01.# Where the PSP is installed. 
02.PSP_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/psp 
03.# The directory that points to your kernel source directory. 
04.LINUXKERNEL_INSTALL_DIR=/usr/local/ti-sdk-beagleboard/board-support/linux-3.0.8-r110b/ 
05.#LINUXKERNEL_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/psp/linux-2.6.37-psp04.02.00.07.sdk 
06.#KERNEL_INSTALL_DIR=$(LINUXKERNEL_INSTALL_DIR) 
07.# wang 
08.# Where the local power manager is installed. 
09.LPM_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/local-power-manager_1_24_03_10_eng 
10. 
11.# Where the development headers and libs are installed. 
12.LINUXLIBS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/linux-devkit/arm-arago-linux-gnueabi/usr 

修改结束在顶层目录编译

make help 查看make指令都有什么内容

make cmem 编译共享内存模块,这个是ARM调用DSP必须使用的模块

make dsplink  编译ARM调用DSP模块

make lpm 编译电源管理模块

编译的顺序也是有讲究的,不能乱调顺序。三个模块编译成功以后可以加载模块,使用脚本文件


01.CMEM_MODPARAMS="phys_start=0x9E100000 phys_end=0x9E700000 pools=10x614400" 
02. 
03.# insert CMEM driver, using two blocks of memory 
04.# 
05.# To use this command, the kernel must be configured such that it does not 
06.# use the internal memory located at 0x40200000 - 0x4020EFFF. 
07.# 
08.# block 1: 0x40200000 - 0x4020EFFF (60 KB), Internal Memory 
09.# pool: 60 KB, 15 x 4 KB buffers (4 KB minimum size buffer allowed) 
10.# 
11.#CMEM_MODPARAMS="$CMEM_MODPARAMS phys_start_1=0x40200000 phys_end_1=0x4020F000 pools_1=15x4096 allowOverlap=1" 
12.#CMEM_MODPARAMS="$CMEM_MODPARAMS phys_start_1=0x40200000 phys_end_1=0x4020F000 pools_1=15x4096 allowOverlap=1" 
13. 
14.rmmod rfcomm 
15.rmmod ircomm_tty 
16.rmmod ircomm 
17.rmmod irda 
18.rmmod hidp 
19. 
20.if [ -e cmemk.ko ] 
21.    then 
22.        insmod cmemk.ko $CMEM_MODPARAMS 
23.    else 
24.        modprobe cmemk $CMEM_MODPARAMS 
25.fi 
26. 
27.# Allow cmem driver to be used by all users 
28.if [ -e /dev/cmem ] 
29.    then 
30.        chmod 777 /dev/cmem 
31.fi 
32. 
33.sleep 1 
34.rm /dev/cmem -f 
35.mknod -m 0777 /dev/cmem c 246 0 
36. 
37.# insert DSP/BIOS Link driver 
38.if [ -e dsplinkk.ko ] 
39.    then 
40.        insmod dsplinkk.ko 
41.    else 
42.        modprobe dsplinkk 
43.fi 
44. 
45.# Allow dsplink driver to be used by all users 
46.if [ -e /dev/dsplink ] 
47.    then 
48.        chmod 777 /dev/dsplink 
49.fi 
50. 
51.sleep 1 
52.rm /dev/dsplink -f 
53.mknod -m 0777 /dev/dsplink c 230 0 
54. 
55.# insert Local Power Manager driver 
56.if [ -e lpm_omap3530.ko ] 
57.    then 
58.        insmod lpm_omap3530.ko 
59.    else 
60.        modprobe lpm_omap3530 
61.fi 
62. 
63.# Allow lpm driver to be used by all users 
64.if [ -e /dev/lpm0 ] 
65.    then 
66.        chmod 777 /dev/lpm* 
67.fi 
68. 
69.sleep 1 
70.rm /dev/lpm0 -f 
71.mknod -m 0777 /dev/lpm0 c 245 0 

查看加载结果是否成功。

二、ARM调用DSP的例子

留给自己(没有参考价值,因为看不懂)


写在前面:

首先讲述了板子的启动过程,配置好各种东西。

安装各种SDK

   Ti的SDK是在图像化界面安装的,如果自己在putty或者其他ssh工具上安装,可能不会成功。

但是在安装dvsdk的时候需要注意几个地方,首先安装一个交叉编译器,arm-none-linux-gnueabi-gcc 编译器,不过这个编译器在3327的项目中也是用过,只不过那个版本是2007ql,这里是用的是2009ql.

Beagle-xm的启动

      使用的内核是2013年8月份TI培训配置好的内核和文件系统,只不过这个文件系统好像需要很多配置,如果是第一次使用nfs挂在文件系统,内核启动以后需要和文件系统结合,结合以后需要配置很多模块,这是第一次启动的结果。内核的编译和文件系统的配置在培训的文档中都有介绍。

    使用TI培训的内核和文件系统需要很多注意的地方。第一,使用的ubuntu一定为10.04 LTS版本,因为在安装omap 3730的sdk的使用需要这个版本,一方面是为了后边的另一个板子(omap3730 这个也是ARM+DSP 同样需要看懂ARM如何调用DSP的),另一方面是为了让beagle使用这里的工程,因为使用过beagle的人说可以使用omap3730的SDK来完成beagle上的ARM调用DSP。

板子的运行:

最终使用了另一个版本的SDK,再编译cmemk.ko、dsplink.ko、

  Make cmem make cmem_install

Make dsplink make dsplink_install

make lpm  make lpm_install

编译模块的顺序是有讲究的,这三个顺序不能更改,/usr/local/dvsdk/dsplink_1_65_01_05_eng/dsplink/gpp/export/INCLUDE/Linux/OMAP3530/usr这个目录下的头文件都是在编译完dsplink后才产生的。然而lpm目录需要使用这些头文件。

主要的目录介绍:

   目录/home/beagle下的所有目录都是为了在beagleboard上实现ARM调用DSP这个目标而准备的。

  其中rootfs是文件系统,这个文件系统是TI暑期培训的文件系统,SDK、内核也是培训使用的东西(来源未知),其中beagle是从SD卡启动启动的资料为培训资料。

   SDK目录保存了beagleboard和OMAP37X系列的SDK。其中两个位OMAP3730的SDK,这里使用最新的SKD,一个为beagleboard上的SDK。

Tools目录下为交叉编译器。

安装过后目录介绍:

安装的连个SDK目录都在/usr/local目录下,其中一个目录dvsdk是omap3730的目录。Ti-sdk-beagleboard目录为beagleboard的sdk安装过后的目录。

其中omap3730的内核源代码的目录为./psp下,这里有u-boot和内核源代码

/usr/local/dvsdk/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.ko这个目录为生成的ko文件的目录,将来生成的所有ko文件都在这个目录下    /root/install/dm3730/lib/modules/3.0.8/kernel/drivers/dsp将来install的所有目录都在这个目录下。

实现过程的步骤:

     使用arm-none-linxu-gnueabi-交叉编译器,但是使用omap的SDK共同协作完成beagle上的ARM调用DSP任务,但是omap3730上的sdk上也需要制定交叉编译器的位置,这个编译器和beagle上的交叉编译器使用的不同.

其中omap3730需要的交叉编译器安装在/usr/loca/arm目录下,和beagle相关的SDK目录在/usr/local/ti-sdk-beagleboard。和omap3730相关的SDK在/usr/local/dvsdk目录下。

   (注意:记忆中在编译beagleboard内核的时候使用的是另外一个编译器,)

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    在BeagleBoard XM 开发板上运…
    在BeagleBoard上运行QNX系统…
    在BeagleBoard上运行QNX系统…
    在BeagleBoard上运行QNX系统…
    第一个BeagleBoard上的QNX程…
    安装Skyeye学习ARM汇编
    从头开始为BeagleBoard编译A…
    分析linaro-media-create 创…
    在qemu的beagleboard上运行a…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61 湘ICP备13001086号-2