在2416开发板上移植CS8900源代码

WTOAK33   2009-11-17 09:58 楼主
由于三星的开发板没有带cs8900驱动
所以自己需要自己移植这部分驱动
我在2416开发板上移植cs8900到wince5.0
在PB5.0编译已经成功,并生成了cs8900.dll(在\WINDOWS目录下可以见到)
我在PB5.0的setting->build option中只选择了Enable Eboot Space in Memory这一项
(因为听人家说好像setting->build option中有一项会跟cs8900冲突)

但是在os启动后cs8900在初始化的时候失败了
从DNW中可以看到如下打印信息:
InitEthDevice Port ok.
Signature Error 0
Eisa Number Error 0
CS8900:CSInit failure!!

回复评论 (16)

你的是三星官方的BSP吗?drivers下的CS8900eboot不是吗?没研究,不清楚是不是
点赞  2009-11-17 10:06
帮顶。
点赞  2009-11-17 12:16
引用: 引用 1 楼 veabol 的回复:
你的是三星官方的BSP吗?drivers下的CS8900eboot不是吗?没研究,不清楚是不是

cs8900eboot只是用与eboot下载nk用的
cs8900应该是在操作系统上用的驱动
点赞  2009-11-17 12:41
顶起
不要沉贴!
点赞  2009-11-17 14:23
从你的打印信息看,是执行了Driver/CS8900目录下的CS8900.C文件中的
if (CSInit() == FALSE)
            {
                    RETAILMSG(1, (TEXT("CS8900:CSInit failure!!\r\n")));
                return FALSE;
             }
            
        return TRUE;
代码。
往上推,在int CSInit()函数中,CS8900Init函数先对全局变量g_pCS8900赋值,接着检测CS8900以太网控制器芯片是否在目标平台上真是存在。接下来,函数执行两个步骤:
1.等待CS8900芯片软件复位后完成芯片的初始化
2.等待CS8900芯片外置用于存放初始化配置信息的EEPROM存储器可被访问。
忘了说一点,你的KITL启动没有?
点赞  2009-11-17 14:58
验证bsp可不可以用,以前碰到的CS8900:CSInit failure!!就是这个问题
点赞  2009-11-17 15:12
引用: 引用 5 楼 xilidecai 的回复:
从你的打印信息看,是执行了Driver/CS8900目录下的CS8900.C文件中的
if (CSInit() == FALSE)
? ? {
? ? RETAILMSG(1, (TEXT("CS8900:CSInit failure!!\r\n")));
return FALSE;
? ? ? ? ? ? }
? ? ? ? ? ?
return TRUE;
代码。
往上推,在int CSInit()函数中,CS8900Init函数先对全局变量g_pCS8900赋值,接着检测CS8900以太网控制器芯片是否在目标平台上真是存在。接下来,函数执行两个步骤:
1.等待CS8900芯片软件复位后完成芯片的初始化
2.等待CS8900芯片外置用于存放初始化配置信息的EEPROM存储器可被访问。
忘了说一点,你的KITL启动没有?

我的打印信息是
+CS8900:DriverEntry
InitEthDevice Port ok.
Signature Error e3a0
Eisa Number Error 1000
CS8900:CSInit failure!!
而在CS8900.C文件中
int CSInit()
{
        // Find CS8900 chip.
        if (findCS() == FALSE)
                return FALSE;

        DEBUGMSG(1, (TEXT("Find CS8900 OK\r\n")));

        /* Reset CS8900 chip. */
        if (resetCS() == FALSE)
                return FALSE;

        DEBUGMSG(1, (TEXT("reset CS8900 OK\r\n")));

        /* Initialize CS8900 chip. */
        if (initCS() == FALSE)
                return FALSE;

        DEBUGMSG(1, (TEXT("CS8900 init OK\r\n")));

        return TRUE;               
}
那就是我的cs8900的芯片是没有找到。。。
怎么会这样呢?
我用的是在没有问题的bsp包拷贝过来的cs8900驱动,开发板也成功跑人家的系统且带成功驱动了cs8900的。

还有xilidecai兄,你的“KITL启动没有”是指setting->build option中的ENABLE KITL这项是否有选么?
这一项我是没有选的呀,我听人家说kitl好像会跟cs8900冲突呢~所以没有选上。
点赞  2009-11-17 16:56
引用: 引用 6 楼 lgy198612 的回复:
验证bsp可不可以用,以前碰到的CS8900:CSInit failure!!就是这个问题

lgy198612兄,你说“验证bsp可不可以用”的意思是??
你是说BSP包能不能够跑起来还是什么?
点赞  2009-11-17 16:57
bang ding
点赞  2009-11-17 17:01
顶帖,不要沉下去
啊啊啊!!
点赞  2009-11-18 17:20
引用: 引用 10 楼 lan120576664 的回复:
顶帖,不要沉下去
啊啊啊!!

这两天也在搞网卡驱动,不过和你用的不一样,顶你了
点赞  2009-11-18 18:52
不但不应该屏蔽,相反,我个人认为应该选起,KITL模块其初始化阶段是在OALKitlInit()函数执行过程中调用CS8900Init函数的。
换个角度说,我的板子自带的BSP是既支持CS8900又支持KITL的,这个肯定不是问题的根源。
而且从你的错误信息来看,
InitEthDevice Port ok.   
Signature Error e3a0      signature成员出错,它指示启动参数的数据有效性,bootloader将其赋值为SGRA,你检查下pBSPArgs共享内存区的起始地址存放的是不是有效的启动参数数据,也就是说是不是这四个字符。这个结构体定义在在oal_args.h文件里,实现在OEMP在latformInit函数中。
Eisa Number Error 1000     这个说明检测芯片不存在,其依据是读取PacketPage中便宜地址为0的产品ID寄存器,如果读取EISA_NUMBER寄存器返回的16位数值是0X630E,择CS8900芯片存在,反之。
点赞  2009-11-18 20:16
谢谢xilidecai兄的指导。本人出差了几天,一来就病倒了。下周上班再回去试试xilidecai兄的方法。
点赞  2009-11-20 21:30
友坚科技 推出国内第一款2416开发板、完美替代2440

S3C2416是低功耗、高性能、低成本的SAMSUNG ARM9(ARM926EJ)处理器,最具性价比优势的芯片,S3C2440最完美的替代者。
   
UT-S3C2416开发板是一款以S3C2416处理器为核心的高性价比开发板,该开发板实现了S3C2416的所有功能特性,专门专为消费类电子、工业控制、车载导航、行业PDA等电子产品的开发而设计,主要供广大企业用户进行产品前期软硬件性能评估验证、设计参考用。

产品功能特性

·ARM926EJ内核,400M CPU主频稳定工作
·64M DDR2 SDRAM
·2G MLC Nand Flash
·标准20针JTAG接口
·支持2D图形加速
·支持SD/MMC/SDIO接口存储卡
·支持USB2.0 Device接口下载,快速升级系统
·支持USB Host 1.1
·支持音频输入、输出
·支持Nandflash、SD卡启动
·支持4路高速串口
·支持VGA输出
·支持4.3寸、7寸、10.2寸、10.4寸、TTL/LVDS多款液晶模块
·支持Hive注册表保存
·支持SD卡+USB2.0升级系统
·支持WIFI、蓝牙、3G、GPS等外置模块

了解详情http://www.urbetter.com

电话:0755-86038900
手机:13686887092
QQ:1401749199、475838072
MSN:urbetter@msn.cn
     youjian63@hotmail.com
点赞  2009-12-30 17:27
路过 帮顶
点赞  2010-6-5 22:14
帮顶了,这个很有意思
点赞  2010-6-12 08:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复