hello,请问:
1.在SYS/BIOS的程序中,需要操作硬件资源的时候,应该调用SYS/BIOS的RTSC模块HAL的API函数,还是调用提供的CSL库中的API。那些CSL库在SYS/BIOS程序中不能使用。这两种库的API使用是否有限制。
2.当多个芯片通过SRIO进行互联的时候,如果不使用SRIO交换机设备,多个芯片通信时,是否可以支持转发。最多支持几片互联,建议如何连接。
3.多个芯片通过MAC通信时,每次接收数据的时候从片是否需要软件支持。MAC为软件协议栈还是硬件协议栈。
4.当PCIe的RootC设备完成对end point的地址映射之后,是不是就可以像操作自己的内存空间一样,读写end point的被映射的内存空间了。不需要endpoint设备的响应。
5.多核通过访问存在MSM上共享变量进行多核同步时,为什么要考虑维护L1cache的一致性,如果不维护,会对读取回来的数据有什么影响。
6.在CCS5中通过向导建立新的DSP/BIOS示例工程,比如IPC_message,IPC_notify等。可以不修改,直接下载到对应的开发板里运行么。我试了一下,好像core1,2,3收不到core0发送的消息,一直在pend状态。。(notify运行时也没响应软件中断)。
对不起,初学者,问题比较多,请工程师耐心解答,谢谢!
致礼!
Andy Yin:
Richard您好,
首先给个建议,如果问题很多的时候建议将问题分到多个独立的帖子发表,这样方便我们不同的工程师及时关注!
先回答问题5、6,其他问题待确认后尽快答复,谢谢!
5. 共享memory可以配成使能cache,此时数据会经过cache,所以此时多核去访问共享memory时必须手动维护cache一致性,否则会导致其他的核不能读到更新的数据,这是多核编程时需要特别关注的,具体可以参考cache手册。
当然共享memory也可以配置为cache disable,此时数据不会映射到cache,所以不需要手动维护cache一致性。
建议对于性能要求较高的处理数据存放在使能cache的共享memory;而对于如多核同步的变量可以存放在cache disable的共享区。
6. CCS5下建立的上述例程可以直接在EVM及simulator下执行,我已经验证过。你说的这个问题之前也有客户遇到,当时他在板子上执行时,没有选择相应的gel文件执行。请参考培训例程的运行说明确认你的运行流程是否正确。
Andy Yin:
回复 Andy Yin:
您好,
1. 问题中提到的HAL不清楚指的是什么? 说明的是在SYS/BIOS中集成了如中断、信号量、IPC等的管理,如果使用了SYS/BIOS则建议使用其封装好的资源加速开发;关于CSL资源的使用,由于BIOS中已经封装了中断管理,所以在使用bios时就不要使用CSL来管理中断了,否则有可能产生冲突;而至于其他的CSL资源目前没有发现与SYS/BIOS存在冲突,可以与BIOS并存。
3. 关于EMAC通信,从片需要软件支持,建议可以使用NDK实现网络通信。6678有一个硬件网络包加速器实现各种协议包的处理,软件只需要对其进行编程控制即可。