TI中文支持网
TI专业的中文技术问题搜集分享网站

关于C6678上H264编码在非0核上跑的问题

我现在使用c6678的H264HP编码器多核开发,遇到一个问题。 

H264版本是01.00.03,从官网下载的。编译环境和realease PDF的说明一致。

core0跑NDK,core1-core2跑H264编码,在仿真情况下,从DDR3读取帧数据,然后core0将压缩的视频数据从网络发送出去,一切工作都是正常的。

将镜像文件写到SPI NOR FLASH,再启动,core0的NDK功能正常,core1-core2的编码不能正常运行。

可以确认DDR3初始化正常,因为core0的代码段在DD3里。

后来发现core1-core7都停在

H264HPVENC_control(handle,XDM_GETVERSION,(H264HPVENC_DynamicParams *)&lDynamicParams,(H264HPVENC_Status *)&lstatus);

这行代码,不再继续执行了。

 

后来又做了一些实验,发现H264编码器只能在Core0正常运行,其他核都不行,都是停在了H264HPVENC_control这一行。这个结果是在烧写到NOR Flash后发生的。仿真情况下,都是正确的。

 

项目需要脱机运行,希望能得到大家的帮助,告诉我是哪里出了问题? 

 

Shine:

跟仿真时不同的地方是脱机运行时,由core0加载代码到其他核运行,先跟一下代码有没有被core0正确加载到其他的核。

user5024810:

回复 Shine:

我使用工具链,将同一个.out文件,制作成2核的镜像文件,然后用norwriter烧到SPINOR Flash。

启动使用了2次调用RBL的方式。 使用的官方开发板,拨码为POST启动,我替换了POST程序,替换的程序首先初始化DDR3,然后再次调用RBL,让RBL以SPI NOR FLASH的方式再次加载程序。

core0 修改core1的启动地址,然后激活core1。 2个核的代码及数据加载是由RBL完成的。
core0没有加载其他核代码的程序。

H264Encode的CFG没有做修改,与官网例子一致。

结果是core0不会停在H264HPVENC_control,core1会停在H264HPVENC_control。
后来发现core1调用H264HPVENC_control时,会回调5次sync函数,然后就没有下文了。

Shine:

回复 user5024810:

不太明白启动使用了2次调用RBL的方式,上电后,RBL会自动执行,如果觉得RBL功能不符合要求可以自己写二次bootloader代码。
建议看一下下面的SPI多核加载例程。
www.deyisupport.com/…/46608.aspx

user5024810:

回复 Shine:

2次调用RBL的方式,我是参考www.deyisupport.com/…/10240.aspx 这个帖子里的附件实现的。

我的问题重点是所有核的代码是RBL完成加载的,不会出现代码加载不正确的情况,却出现了仿真和脱机运行结果不一致的情况,还可能是什么原因造成的呢?

赞(0)
未经允许不得转载:TI中文支持网 » 关于C6678上H264编码在非0核上跑的问题
分享到: 更多 (0)