TI 8127 Appro 框架简析

这也许是我接触的最后一个嵌入式项目了

开发环境Ti8127开发板

Appro框架跨度很广,除了最底层使用的是带有 ti_ 前缀的底层函数外(包括共享内存分配,m3驱动等不开源的代码库),其余的几乎都是Appro框架中完成,并做了对应的再封装,代码量巨大。

我所读过的代码,估计只占1/3,主要是应用层(ipnc_app)和MCFW(Multi-channel framework,ipnc_mcfw),而在ti_tools的代码,几乎未染指,只在必要的地方,做了一些大胆但适用的修改。

Appro框架的核心在于它四个芯片(core)间共享内存的管理,所有消息与数据在core之间的交换都是通过共享内存,而这一段代码是不开源的,只能通过更改宏设置,来决定每一个共享区域(segment)的大小。其次,每一个模块(一个core可以有多个模块)由一个线程负责(引入link的概念),而每个link都由一个SystemServer线程管理(此SystemServer非ipnc_app中的system_server),而这仅是ti_tools的设计,在ipnc_mcfw中,再次以这种设计封装,并应用这一设计(demo/usecase);而在ipnc_app中,又使用了同样的设计(此时已没有使用link的概念,但是线程+server使用消息队列的模式还是同样的),来封装(管理)web,rtsp等上层应用。

在mcfw中,用usecase来体现底层links的设计,将各links(cameraLink,EncLink,DecLink,DisplayLink等)串联起来,就可以实现一个完整的采集,编码,解码,显示的流程,当然,其中还有很多降噪和算法的link。这是一种很有趣的模式,模块间完全没有耦合,但是又因为SystemServer的存在,又高度的聚合,使用者只需要关心单个link的输入是否符合该link的要求,输出是否符合下一个link的输入的要求。这种模式也有局限性,即使其数据流是线性且单一的,输入只能有一个,输出可以多路或者单路或者不输出(有一个特殊的MergeLink,用于同步多通道数据,允许N路输入,N路输出,但是向上追溯的话,还是只有一个数据源),类似流水线的操作,我想这种模式应该可以在很多情况下借鉴使用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着DSP芯片类型的增多和技术的不断提高,DSP向着多功能、高性能、低功耗方向发展,DSP硬件技术的更新速度也不断加快,然而相关软件技术的开发却远远落后于硬件的开发 TMS320 DSP算法参考框架(Reference Framework,RF)的提出就是为了应对这个难题 RF为一种使用DSP/BIOS内核和TMS320 DSP算法标准的通用初始化代码,用户可以通过使用并修改该通用代码使之符合eXpressDSP标准,以实现特定的应用 按复杂程度,从用于产生紧缩用户系统的RFl,到可提供多算法多通道和不同运行级别的RF5等,参考框架分为多个等级,但目前应用最广泛的为RFl、RF3和RF5 所有的参考框架都是应用程序可屏蔽的,每个参考框架可以适用于多种应用程序,包括音频、视频、网络通信等 实际上,参考框架是应用程序的蓝本 目前,存储器管理策略、线程模型和通道封装是开发者用于构建系统的主要通用框架单元 把这些工作移交给参考框架来做,开发者可以专注于自身系统的需求 开发者可以在参考框架的上层来构建自己的应用程序,而不用担心下层模块的稳健性和对目标应用程序特性的适应性 参考框架包含了很多已设计成型并且可重用的C语言源代码 当然,参考框架也提供了一些其他的调整入口点,以供应用程序做调整 参考框架的结构如图1所示 左侧的方框是可提供的框架成员 对于每一个成员,都有入口点,可用于改变相应的应用程序 右侧的方框与左侧的方框相对应,描述了相应框架所能做的改变,包括应用行为改变、算法替代、驱动改变和硬件改变
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值