DSP

DM8168-DVRRDK的系统开发

2019-07-13 19:29发布

DVRRDK的系统开发   一、系统环境的搭建 1、修改官方的shell文件mksdboot.sh,文件系统816x-dvr-rdk-rootfs-1.0.tar.gz在官网下载,制作SD启动卡。 2、安装DVRRDK开发库DVRRDK_04.01.00.02,如下图所示。   3、在路径/home/***/dvrrdk/DVRRDK_04.01.00.02/dvr_rdk下,执行指令 make -s sys_all 以完成整个开发库的全编译。 4、这里重点要修改几个地方, 1)由于我们使用的是DM8168的TI_EVM 板,因此我们必须在路径/home/***/dvrrdk/DVRRDK_04.01.00.02/dvr_rdk下,修改Rules.make文件,       2)在路径 /home/***/dvrrdk/DVRRDK_04.01.00.02/dvr_rdk/mcfw/src_bios6/cfg/ti816x下面修改config_1G_256MLinux.bld文件,(1G代表系统的DDR为1G,256M代表mem为256M),具体修改如下图所示,DSP的代码段与数据段都多添加2MB,那么SR1必须缩小4MB,才可使得整体大小为256MB。     5、完成上述修改后,同样在路径/home/***/dvrrdk/DVRRDK_04.01.00.02/dvr_rdk下,执行命令: make -s sys_all ,至此,系统才算搭建完毕。 二、    系统软件开发流程(基于MCFW软件架构) 1、参考路径/home/***/dvrrdk/DVRRDK_04.01.00.02/dvr_rdk/docs/Trainings下文件DVR_RDK_McFW_Link_API_Training.pdf,熟悉MCFW的link配置。下图是多核的软件框图。   采集、编解码、显示的软件流程图     Link机制       Link类型       2、开发方法 1)在DVRRDK的官方demo里面修改代码后, Linux 端(A8)编译命令:
make -s dvr_rdk_linux
在文件夹
DVRRDK_04.01.00.02/dvr_rdk/bin/ti816x/bin/
生成
dvr_rdk_demo_mcfw_api.out
Bios6 端(DSP)编译命令:
make -s dvr_rdk_bios6
在文件夹
DVRRDK_04.01.00.02/dvr_rdk/bin/ti816x/firmware/
生成
dvr_rdk_fw_c6xdsp_1024M_256M.xe674
dvr_rdk_fw_m3video_1024M_256M.xem3
dvr_rdk_fw_m3vpss_1024M_256M.xem3   2)将所有代码写到同一个文件下面,编写makefile以及Rules.make(规则文件),   3)具体代码分析 cap_enc_save_dsp_dis 该代码实现了在MCFW框架下采集、编码、 DSP 灰度处理、显示及文件保存的功能。主要使用到了ARM( Cortex-A8)、M3 VPSS、M3 VIDEO以及DSP四个核。除了生成运行于 ARM( Cortex-A8)Linux 的可执行程序外,还要编译出新的DSP固件,用来加载运行。该代码的MCFW架构如下图所示。       编译 将源码例程拷贝到 Ubuntu下,进入src目录。修改 makefile 中的 DVR_RDK_ROOT_PATH 和 NFS_PATH。其中
DVR_RDK_ROOT_PATH 为DVRRDK_04.01.00.02安装路径,
NFS_PATH 为编译产生的目标文件的路径。   编译完成后,在DSP和Host目录下会生成build目录,包含编译过程的中间文件,以及目标可执行文件。修改完成后执行make即可:
Host#  make clean //注意要清除一下
Host#  make   生成如下文件       生成的dvr_rdk_fw_c6xdsp_1024M_256M.xe674覆盖 /opt/dvr_rdk/ti816x/firmware中dvr_rdk_fw_c6xdsp_1024M_256M.xe674文件, 在开发板系统上初始化:
Target#  cd  /opt/dvr_rdk/ti816x    
Target#  ./init.sh
Target#  ./load.sh Target#  ./bin/cap_enc_save_dsp_dis.out   即可运行系统。效果图如下。