1765|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

DVSDK3.01.00.10编译笔记 [复制链接]

硬件平台:
       Devkit8000
       256M DDR+256M NAND
       S-video输出

       软件包:
       AM35x-OMAP35x-PSP-SDK-03.00.01.06.tgz
       dvsdk_3_01_00_10_Setup.bin
       cs1omap3530_setupLinux_1_01_00-prebuilt-dvsdk3.01.00.10.bin
       ti_cgt_C6000_6.1.12_setup_linux_x86.bin

       1、将所有包都安装到一个目录之下,最好是放到到/Arago/arago-install/dvsdk_3_01_00_10,因为我是装在 /home/workdir/ti/dvsdk_3_01_00_10下面,在编译的过程中会遇到非要到/Arago/arago-install /dvsdk_3_01_00_10下面去链接文件,原因好像是在里面的配置文件中把路径写死了,无耐之下我也建立了/Arago/arago- install/dvsdk_3_01_00_10这样一个符号链接,指向/home/workdir/ti/dvsdk_3_01_00_10。
       2、安装好上面几个组件之后,在dvsdk_3_01_00_10下就是下面这个结构:
   

       3、进到AM35x-OMAP35x-PSP-SDK-03.00.01.06/src/下面,将u-boot里面的u-boot- 03.00.01.06.tar.gz和boot-strap里面的x-loader-03.00.01.06.tar.gz解压。这里不解压 kernel里面的内核是因为Devkit8000还需要对内核进行修改,感觉挺麻烦,而0xlab为devkit8000移植的内核中也有DSP- bridge驱动,所以我直接用0xkernel来代替这里的linux-03.00.01.06。
       下载方法:git clone git://gitorious.org/0xlab-kernel/kernel.git
       可以直接将0xlab的内核直接放在kernel目录下,也可以创建符号链接
       总之,能够访问:dvsdk_3_01_00_10/AM35x-OMAP35x-PSP-SDK-03.00.01.06/src/kernel/linux-03.00.01.06就行了。
       还有两处源码需要修改:
       (1)文件pm34xx.c中有个bug,需要将下面两个函数用宏括起来,后面调用这俩函数的地方也要改:
  • #ifdef CONFIG_OMAP_WATCHDOG
  • extern int omap_wdt_suspend(void);
  • extern int omap_wdt_resume(void);
  • #endif

[color=rgb(51, 102, 153) !important]复制代码


       (2)include/linux/omap_resizer.h和drivers/media/video/isp /omap_resizer.c在编译过程会提示RSZ_S_EXP未定义错误,与AM35x-OMAP35x-PSP-SDK-03.00.01.06 自带的内核对比一下不难解决:
       在map_resizer.c的rsz_unlocked_ioctl函数中加一个case:
  • case RSZ_S_EXP:
  • if (mutex_lock_interruptible(&rsz_conf_chan->
  • chanprotection_mutex))
  • return -EINTR;
  • rsz_conf_chan->register_config.sdr_req_exp =
  • *((unsigned int *)arg);
  • mutex_unlock(&rsz_conf_chan->chanprotection_mutex);
  • break;

[color=rgb(51, 102, 153) !important]复制代码


       在map_resizer.h中添加定义:#define RSZ_S_EXP _IOWR(RSZ_IOC_BASE, 9, __s32)并把 RSZ_IOC_MAXNR的值改为9
       由于在DVSDK中运行make的时候不能进行menuconfig的内核配置,所以需要先在kernel下运行menuconfig将内核配置好,生成.config文件,然后将其复制到arch/arm/config/my_devkit8000_defconfig
       4、修改~/.bashrc,添加几个环境变量:
  • DVSDK_INSTALL_DIR=/home/workdir/ti/dvsdk_3_01_00_10
  • CSTOOL_DIR=/home/workdir/toolchain/arm-2009q1
  • CODEGEN_INSTALL_DIR=$DVSDK_INSTALL_DIR/TI_CGT_C6000_6.1.12
  • CODEC_INSTALL_DIR=$DVSDK_INSTALL_DIR/cs1omap3530_1_01_00
  • export DVSDK_INSTALL_DIR CODEGEN_INSTALL_DIR CSTOOL_DIR

[color=rgb(51, 102, 153) !important]复制代码


       5、检查dvsdk_3_01_00_10/Rules.make文件中定义的各个目录的地址是否正确,根据实际情况进行修改。
       6、修改dvsdk_3_01_00_10/Makefile,指定u-boot和kernel的默认配置文件:
  • LINUXKERNEL_CONFIG=my_devkit8000_defconfig
  • UBOOT_CONFIG=omap3_beagle_config

[color=rgb(51, 102, 153) !important]复制代码


       7、在dvsdk_3_01_00_10目录下运行make help,查看帮助,选择make的目标。
       运行make everything编译所有目标,运行make install就将生成的目标拷贝到Rules.make中设置的EXEC_DIR目录。
       不过这里好像并非所有生成的目标都拷贝过去了,比如运行make dmai_install之后才会把dmai拷过去,慢慢研究自己手动拷吧。
       8、修改文件系统中opt/dvsdk/omap3530/loadmodules.sh脚本中的insmod cmemk.ko的内存地址。
       因为默认之下它的内存是99M+15M+13M=128M,而我这块Devkit8000的内存是256M(0x80000000~0x90000000)所以调整后就是:

  • # 0x80000000     99 MB  Linux         ------------->   0x80000000-------0x8e300000   227M
  • # 0x86300000     15 MB  CMEM          ------------->   0x8e300000-------0x8f200000    15M
  • # 0x87200000     13 MB  CODEC SERVER  ------------->   0x8f200000 -------0x90000000   13M

[color=rgb(51, 102, 153) !important]复制代码


       即:
  • insmod cmemk.ko phys_start=0x8e300000 phys_end=0x8f200000 pools=1x3000000,1x1429440,6x1048576,4x829440,1x327680,1x256000,7x131072,20x4096 allowOverlap=1

[color=rgb(51, 102, 153) !important]复制代码


       9、设置uboot启动参数,重要一点就是需要加上:“mem=227M omapfb.vrfb=y”这三个参数,尤其是“omapfb.vrfb=y”一定要加上,否则“omapdss DISPC error: GFX_FIFO_UNDERFLOW, disabling GFX”这个错误会搞得你十分头大,我的启动参数如下:
  • console=ttyS2,115200n8 vram=12M mem=227M omapdss.def_disp=tv omapfb.mode=576p80  rotation=1 omapfb.vrfb=y root=/dev/mmcblk0p2 init=/init rw rootwait

[color=rgb(51, 102, 153) !important]复制代码


       10、启动到linux之后,可能需要手动创建cmem的结点:
        cat /proc/devices看cmem的主设备号,我的是250
  •     mknod /dev/cmem c 250

[color=rgb(51, 102, 153) !important]复制代码


       然后就可以运行omap-demo(自己从dvsdk_3_01_00_10/examples/omap3530/拷贝过来)进行测试了。
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表