ti员工,你好
我现在有个项目需要移植6678网络驱动到其他操作系统平台,请问有没有驱动源码可供参考?包括寄存器操作和协议栈挂接等,mcsdk和pdk中的代码我都看了,没找到详细的寄存器操作代码,ge的例程我也看了,这个例程没有协议栈挂接,我该怎么做?
Allen35065:
置顶帖里的STK开发包是基于CSL寄存器的,供参考
wenfu gu:
回复 Allen35065:
你说的是这个吗?
http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/47664.aspx
这个链接的我看过了,是自回环测试用的啊
Allen35065:
回复 wenfu gu:
从STK可以看寄存器是怎样操作的,如果你需要协议栈,那就必须用NDK和PDK了
wenfu gu:
回复 Allen35065:
协议栈不需要ndk,我们有自己的协议栈,但是我需要知道协议栈的接口函数中应该调用哪些底层现有的函数,我看了一下这个代码,感觉相互之间的相关度很高,很难剥离开来,可是直接调用你们现有的函数又不合适,所以我就想问问看你们有没有专门的寄存器操作的代码实现,可以供我直接调用的还有就是这些代码看着特别累,名字起的都特别长,而且各种结构体倒来倒去,我就感觉很不习惯,也可能是因为我第一次接触dsp和ccs吧,你们有没有这些代码的说明文档?比如哪些c文件是做什么的之类的?
wenfu gu:
回复 Allen35065:
我看到GE_Interrupts.c文件里,GE_Interrupts_Init函数的最后,有几行对中断寄存器操作的代码,
ICR=IFR;
IER=3|(1<<
Allen35065:
回复 wenfu gu:
STK就是寄存器级别的CSL实现的例子,Driver在这上面又封装了一层,如果你要用自己的协议栈,就需要自己来实现底层的驱动
wenfu gu:
回复 Allen35065:
Allen Yin,你好这段时间的移植过程中,遇到一些问题,烦请支持一下:1.代码有时候会在执行keystone_qmss_disable_acc_channel函数中while(result!=0)这里死循环,因为读出来的值是0x8000,但有的时候又可以正常执行下去,这时候读出来了多result的值是0x1000000,为什么这个值有时候对有时候不对呢?2.代码中发送网络数据包的部分似乎是用了mpu中的dma完成的,我现在移植到我的环境里之后,发现当把描述符交给mpu后,数据包并没有发出来,描述符是完全正确的,我都打印出来看过了,这说明是mpu配置出了问题,但是我没找到mpu配置的代码,不知道这部分操作是在哪里?如果我不想用mpu,直接用qmss发送网络包,应该怎么实现?