2056|0

6587

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

TI8168 DSP算法开发流程 [复制链接]

一、DM8168及本文简介

    2010年,TI推出的最新媒体处理器TMS320DM8168作为一款多通道高清SOC系统芯片,集成了1GHz主频Cortex-A8 ARM核与lGHz主频C674x的DSP核,并且集成了3个新版本的HDVICP子系统,还有新一代的VPSS。可同时提供3路1080P分辨率,每秒60帧的高清视频的H.264编码。新版本的HDVICP可支持高清分辨率的H.264、MPEG-4、VC1编码以及AVS和SVC编码,为高清视频的发展提供了更强大的软硬件支持【引用】。

    前面一篇文章介绍了DM8168的异构多核架构,本文旨在介绍如何在其DSP中添加自定义的算法。本文建立在已经熟悉CodecEngine的达芬奇架构以及DSP复合XDM标准算法开发流程的基础上。(至于达芬奇架构和DSP算法标准将在下篇文章中补充)。也就是说本文只介绍DSP算法的集成,即如何将DSP算法添加到DM8168的MCFW软件框架中。

二、系统环境

开发板为ETV-HDV8168-HDMI(避免广告,不上图),PC为虚拟机centos6.3

三、介绍
HELLOWORLD Algorithm文件介绍如下:

helloWorldAlg_TI_ialg.c – 提供创建算法实例的顶层调用接口,以及处理输入输出帧时的process 调用接口,运行时的参数设置调用接口。
helloWorldAlg_TI_priv.h –算法的私有 Data structures, macros and function call declaration.
helloWorldAlg.h - 对‘Hello World’ Link可见的算法实例创建和process call(处理调用)的Data structures, macros and function call declaration
SRC_FILES.MK – Makefile to build the ‘Hello World’ algorithm.

‘helloWorld’ Link文件介绍

helloWorldLink_tsk.c –此文件含有‘helloWorld’ link: task创建、‘Hello World’ link的从其他links接收命令、从其他links接收和释放buffers的回调函数的定义。(This file has function definition for creation of ‘helloWorld’ link task, receiving commands from other links and callbacks that other links call for receiving and freeing buffers of ‘Hello World’ link.)

helloWorldLink_priv.c –This file has all private functions for creation of the link and algorithm instance and processing upon frames.

helloWorldLink_priv.h – This file has macros, data structure and function call declaration private to the ‘helloWorld’ Link.

helloWorldLink.h –This file has macros, data structure and function call declaration of ‘helloWorld’ Link seen by other links. This file has to be placed under mcfw\interfaces\link_api folder.其他Links的调用接口。
步骤:

1.将interface/link_api/helloWorldLink.h以及src_bios6/alg下的文件和links_c6xdsp/下的文件放到mcfw对应的文件夹下;

2.在mcfw\src_bios6\Makefile

将helloWorld添加到 INCLUDE_EXERNAL_INTERFACES的列表

INCLUDE_EXERNAL_INTERFACES= bios xdc ipc syslink iss hdvpss ipnc_rdk fc xdais h264enc h264dec swosdhelloWorldedma3lld mpeg4enc
添加‘Makefile’ 文件和include directory:
INCDIR += $(MODULE_SRC_BASE_PATH)/alg/helloWorldAlg
include $(MODULE_SRC_BASE_PATH)/alg/helloWorldAlg/SRC_FILES.MK

3.在\mcfw\src_bios6\links_c6xdsp\system\system_c6xdsp.c

添加helloWorldLink头文件包含

#include

在System_initLinks() 函数中添加HelloWorldLink_init(),System_deInitLinks() 添加HelloWorldLink_deInit()

4.在

ipnc_rdk\ipnc_mcfw\mcfw\interfaces\link_api\system_linkId.h

为helloWorld link在DSPcore一端定义link ids

#defineSYSTEM_LINK_ID_HELLOWORLD_0 DSP_LINK(SYSTEM_LINK_COMMON_LINKS_MAX_ID+4) (由于提示procId < SYSTEM_PROC_MAX : failed !!!)

#defineSYSTEM_LINK_ID_HELLOWORLD_START (SYSTEM_LINK_ID_HELLOWORLD_0)

#defineSYSTEM_LINK_ID_HELLOWORLD_END (SYSTEM_LINK_ID_HELLOWORLD_0)

#defineSYSTEM_LINK_ID_HELLOWORLD_COUNT (SYSTEM_LINK_ID_ALG_END - \

SYSTEM_LINK_ID_ALG_START)+ 1

5在ipnc_rdk\ipnc_mcfw\mcfw\src_bios6\links_common\system\system_priv_common.h

定义任务优先级和栈的大小

#defineHELLOWORLD_LINK_TSK_PRI (2)

#defineHELLOWORLD_LINK_TSK_STACK_SIZE (SYSTEM_DEFAULT_TSK_STACK_SIZE)

6在ipnc_rdk\ipnc_mcfw\mcfw\src_linux\mcfw_api\ti_vsys_priv.h

包含头文件

All header filesunder interface folder needs to be included in this file. Include thehelloWorldLink header file here

#include

7在ipnc_rdk\ipnc_mcfw\mcfw\src_bios6\links_c6xdsp\SRC_FILES.MK

Add the helloWorlddirectory to the list of SRCDIR



SRCDIR +=links_c6xdsp/system links_c6xdsp/utils/src \

links_c6xdsp/alg_linklinks_c6xdsp/alg_link/swosd links_c6xdsp/alg_link/scd \

links_c6xdsp/valinks_c6xdsp/helloWorld

SRCS_HELLOWORLD =helloWorldLink_tsk.c helloWorldLink_priv.c

SRCS_c6xdsp +=$(SRCS_SYSTEMDSP) $(SRCS_UTILS) $(SRCS_ALGLINK) $(SRCS_OSDLINK) $(SRCS_SCDLINK)$(SRCS_VALINK)$(SRCS_HELLOWORLD)

8.修改内存:

mcfw\src_bios6\cfg\ti81xx\config_2G.bld.(文件名对应内存大小)

找到下面代码段,将LINUX_SIZE的大小调小一点分出来给DSP_CODE_SIZE、DSP_DATA_SIZE

/* first 512MB */
LINUX_SIZE                 = 128*MB;
SR1_SIZE                   = 336.5*MB;
SR3_INTRADUCATI_IPC_SIZE   = 124*KB;
VIDEO_M3_CODE_SIZE         = 2.5*MB;
VIDEO_M3_DATA_SIZE         = 12*MB;
DSS_M3_CODE_SIZE           = 1.5*MB;
DSS_M3_DATA_SIZE           = 17*MB;
DSP_CODE_SIZE              = 900*KB;
DSP_DATA_SIZE              = 13.5*MB;



 
点赞 关注

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表