请教:
ipcBitsOutLlink _tsk.c中的回调函数IpcBitsOutLink_notifyCb,
ipcFrameOutLink_tsk.c中的回调函数IpcFramesOutLink_notifyCb,
是如何被触发调用的?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
请教:
ipcBitsOutLlink _tsk.c中的回调函数IpcBitsOutLink_notifyCb,
ipcFrameOutLink_tsk.c中的回调函数IpcFramesOutLink_notifyCb,
是如何被触发调用的?
注册:
1.IpcOutM3Link_init里面通过System_ipcRegisterNotifyCb注册IpcBitsOutLink_notifyCb
IpcFramesOutLink_init里面通过System_ipcRegisterNotifyCb注册IpcFramesOutLink_notifyCb
通过linkid放在全局变量gSystem_ipcObj.notifyCb[linkId]里。
2。 System_ipcNotifyInit里面通过Notify_registerEvent注册System_ipcNotifyHandler在某个syslinkProcId的某个中断SYSTEM_IPC_NOTIFY_LINE_ID的某个事件SYSTEM_IPC_NOTIFY_EVENT_ID上
触发:
3. System_ipcSendNotify里面通过syslinkProcId和SYSTEM_IPC_NOTIFY_LINE_ID和SYSTEM_IPC_NOTIFY_EVENT_ID发消息触发System_ipcNotifyHandler
4. System_ipcNotifyHandler里面通过linkid找到gSystem_ipcObj.notifyCb
要注意的是IpcBitsOutLink_notifyCb和IpcFramesOutLink_notifyCb里面做的是释放frame的事情,因为通常是它们的下一个link,ipcBitIn或者FrameIn,他们处理完数据调用System_ipcSendNotify向previous link发消息来释放已经用完的帧
非常感谢Christian Shen如此详细的解释!
启动时,我从A8想发送一些数据到DSP,只做一次,比较简单的方式是什么?
这个ipcbitout和frameout有点复杂。。。
有几种方法,
1.CMEM
请参考代码里面ipcbitoutlink拷贝数据到CMEM的代码,搜CMEM_getPhys
2.Shared region
一个简单的例子是dcc工具抓raw/yuv时从m3传到A8 SharedRegion_getHeap(ITT_SHAREDREGION_ID);
3,如果你的数据是在很小,
用messageQ发送就可以,请参考webGUI修改参数后传到M3,多核间发消息的代码
呵呵 您好
我现在8127 RDK中移植了个算法,源码形式集成到RDK中跑的很好。
但是将该算法编成ae674的库以后,能调用算法接口,但是运行结果很不正常,结果也不对。
我想知道我的库做的有什么问题。因为算法中涉及到malloc动态内存分配。
e2e上也问了,没人理。
原始rdk中有个scd.ae674,DMVAL.ae674,他们在linux环境下怎么生成的?
这个我除了怀疑你的编程方法上,一下子也想不到其他原因,不过先想请了解一下:
1.如果是一个简单的函数,你包好库之后调用,会有问题吗?
2,运行的中间结果打出来稍微debug的话能定位到是什么哪部分出错不?
e2e的帖子的link能共享一下么?我帮你找同事再问问。
谢谢Christian,参加过您的isp相关培训,收获颇丰,对您的印象非常好。
这个问题困扰我好久了。。。
1、简单a+b的函数能调用,结果也是对的。
关键我的这个算法里用了动态内存分配和使用,问题就出在这里。。。
2、使用库函数后Vpf_printf用不了了,但是源码形式是使用了的,结果正确,运行流畅。
3、这是我在e2e上的提问帖,都快成僵尸帖了。
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/303658.aspx
麻烦您联系同事帮忙看看,可能英文没描述明白
问题实际上就是:算法中DSP端用到了动态内存分配,如何让做出来的静态库跟源码的方式一样结果正常。
CCS和AlgGen Wizard生成静态库的方式我都试过了,现象都是一样的不正常。
simon blak,您好
本人小硕一枚,跟您做的类似,我做的全景展开算法在PC机处理效果很好,但是老师要求要往DM8127移植,这一块刚接手不久,没什么思路,能不能有劳指点一二?多谢
我已经好久没有搞8127了,确实有点复杂。
当时这个库的移植问题,据我回忆后来找到原因是因为内存泄漏了。
学习这个8127,买Appro的参考设计,仔细研究里边的例子就可以了,搞研究基本上不会得到什么支持了,只能靠自己。
但是搞全景,建议用6437足够。
你的全景是几个鱼眼镜头搞拼接吗?
嗯嗯,谢谢您的回复。我们就是买Appro的参考设计。由于刚入手不久,所以在理清RDK的软件框架以及link链路方面有些障碍,谢谢您的建议,之所以现在不深入,可能就是例子研究不透彻吧!
我们做的是抛物面反射全景,这个无需图像拼接,展开也方便
我做过的是:采集4路鱼眼视频图像,畸变校正后进行拼接,用作360全景泊车。
你那个反射的没做过。
你这个是4路200w采集,在外面做的isp,vip口接入8127的吧;
我们现在也在做这个,做6路鱼眼采集,前面的矫正拼接和融合没有用TI平台处理
当时是4路D1 。
你是用来干什么的?
要这么高清的图像