cs8900 的驱动文件在
\rtems-4.10.2\c\src\libchip\network
其实大部分函数已经写好了,只需要写基本的接口函数。
rtems_bsdnet_config 必须由用户指定,可以在bsp里面做了,也可以在用户程序中指定。
其实驱动程序可以再用户程序中做,这样调试方便很多。在makefile中需要添加
DEFINES += -D__INSIDE_RTEMS_BSD_TCPIP_STACK__
这样才能访问网络相关的函数。否则提示没定义什么的。
在 start.S 中(在调试的时候应该是 gdb初始化脚本)必须设置8900对应的bank的控制寄存器(MEMORY CONTROLER)
sbc2440 的启动文件是从smdk中移植过来的,mmu 的初始化,并没有对 0x19000000 内存做映射,于是我调试的时候发现
访问物理地址的时候发生了非法指令异常,折腾了一个晚上才想起这个问题 ...... 添加了就好,能正确读出ID了。
接着处理中断问题,只需要安装中断句柄就行了。
待续 ......
(2013-1-4)
每次都是想简单的搞定的时候,最后都是很痛苦的搞不定,这次8900也是,本来打算原先已经有了驱动代码,
谁知道这么一折腾就是两个星期了。今天还是看了cs8900的源代码,终于搞明白了所有的操作,接着回去实验
具体是怎么执行的,具体的包怎么发送。
不过这下算是搞明白网络驱动的原理了。