大家好!在这个帖子中我会搜集一些常见的大家关心的问题做出回答。
一楼是关于8168的软件开发方面的问题:
- 如果基于8168开发板开发,将内存扩大到2G,是否需要对uboot及linux内核或驱动进行修改。2G的内存地址空间是否已经给其他设备分配使用了?
您可以在RDK 包的目录下搜索bld文件,里面就详细地说明了内存空间的layout的分配情况。此外,DDR改变,同一家的驱动可以不变,但是配置都要重新算的。请对照datasheet确定下bank address, row address, column address, page size等参数 大小变了,这里面肯定有参数发生了变化。然后对于延时,刷新时间这些建议都对照datasheet进行修改。
对于你的第二个问题,芯片手册第二页有明确说明:2 GB Total Address Space,说明给到DDR的内存地址是包含2G的,没有给其他设备分配使用。32bit支持4G寻址,一般0x80000000~0xFFFFFFFF都是预留给DDR的,因此2G寻址完全足够。
2. 如果将flash扩大到1G,是否需要修改相应的驱动程序。
如果你只是单纯替用容量更大的芯片而没有各个分区调整容量的需求(如需要更多的空间存储内核与文件系统),那么是可以完全不做修改的。如果需要调整,请参照TI的wiki链接 http://processors.wiki.ti.com/index.php/TI81XX_PSP_UBOOT_User_Guide 中关于Nand Layout的章节,在源代码中搜索相关代码进行修改。
同一家的Flash芯片替换,只需要更改下flash分区信息就可以,在/arm/mach-davinci/board-ti81xx-evm.c里面查找flash的partitions信息然后进行相应修改。
3. TI Mfcw框架是否支持将网络摄像机发送过来的视频包直接传送到dsp,并由dsp处理后直接通过ip发送到其他设备上,如果支持,那么接口及方法是什么?
如果客户指的是未经编码的视频数据,是可以直接发给DSP做处理的。即使是编码后的数据,通过网络发送过来的码流不仅仅只是视频编码数据,也会携带其他数据,比如VA,MV&SAD,这些数据也可以用来做分析的。例子可以参照Mcfw/Mcfw_api/usecases/multich_tristream_smartAnalytics.c
Eason Wang:
二楼是针对针对AM389x/C6A816x/DM816x Evaluation Module
1.EZSDK能够开发几种不同类型的应用程序如:a.Linux 应用程序b.C6Run 应用程序c.C6Accel应用程序等,C6Accel能够比其他应用程序更能充分利用ARM核和DSP核?
清先参阅TI wiki链接:
processors.wiki.ti.com/…/C6EZAccel
processors.wiki.ti.com/…/C6Run
写的比较清楚,C6Accel主要是用在调已经封装好的DSP库,而C6Run主要是为了降低ARM+DSP的开发难度,把一些运算自动交给DSP去做。
2.使用C6Accel提供的API(Image_Processing_API,Math_API,Signal_Processing_API)是将程序放在DSP上执行的唯一方式吗?能不能自定义一些API能够在DSP上执行?如果可以我需要参阅那些资料?
是可以的。如果是纯DSP开发,跟C开发是一样的。但是如果是多核平台,那么涉及到ARM和DSP的交互,这里就要用到Codec Engine了。在DSP上按照xDM标准实现codec/API,在ARM端通过codec engine通用接口调用DSP侧的程序。网上有篇中文的文章,可以从这里入门:
www.ti.com.cn/…/gencontent.tsp
4. 如果不能自定义能够在DSP上执行的API,在实际开发板生产过程中,能不能根据实际需要,定制某些API?
自己打包做API是可以的
5. 如果程序中没有调用DSP的API,是否DSP对程序性能的提升贡献为零?
如1所说,C6Run就可以让DSP来做部分运算,显然是对程序性能的提升有贡献的。
5.如果委托第三方加工开发板,需要给他们提供哪些信息?
你如果拿到的是brd文件,那么需要自己用软件生成光绘文件给厂家。光绘文件的格式以及具体的要求需要你和厂家沟通确定。