主题 : Barebox for tiny 210 - step 2 网口驱动 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 54261
精华: 9
发帖: 43
金钱: 665 两
威望: 133 点
贡献值: 9 点
综合积分: 266 分
注册时间: 2011-08-27
最后登录: 2014-08-08
楼主  发表于: 2013-01-09 22:05

 Barebox for tiny 210 - step 2 网口驱动

管理提醒: 本帖被 xoom 执行加亮操作(2013-01-09)
返回学习汇总贴
下班晚了,连载继续...
step 2 添加DM9000网口驱动

0.预备知识:
    (1) 了解Makefile Kconfig diff Shell
    (2) 掌握Barebox for tiny 210 - step 1
    (3) Barebox已经实现DM9000通用驱动,只要简单配置访问时序、访问地址并打开编译开关就行,网上相关资源非常多了,我简单说下如何调试吧。

1.编译运行
    (1) 更新源码到对应版本
        cd ~/s5pv210/github/loader/barebox
        git checkout 27848893a02f7c05c5ca39f9608df73f4cd68a21
    (2) 编译并烧写到SD卡(详细步骤请参见step 1)
    (3) 运行调试
        从SD卡启动单板,用网线直接连接电脑与单板
        将电脑IP地址设置为192.168.1.10,255.255.255.0
        通过串口终端执行下边两条命令将单板IP地址设置为192.168.1.100,255.255.255.0
                eth0.ipaddr=192.168.1.100
                eth0.netmask=255.255.255.0
        通过串口终端执行下边一条命令,检查单板是否能ping通电脑
                ping 192.168.1.10
        显示host 192.168.1.10 is alive,表示能ping通
    (4)  遗留问题
        为啥我用电脑ping不通单板呢? 甚至单板ping自己都不通?
        单板和电脑通过路由器相连,测试DHCP自动获取IP
        add_dm9000_device(0, S3C_CS1_BASE + 0x1000, S3C_CS1_BASE + 0x400C, IORESOURCE_MEM_16BIT, &dm9000_data);  偏移量是怎么计算出来的?最开始我用0x0000 / 0x0004或者0x0000 / 0x0008都不对!照抄0x1000 / 0x400C才可以,求解惑!
    (5) 下一步之前,你可以看一下drivers/base目录下的所有文件,静下心来看非常简单,至少比linux的简单,但是处处都有linux的影子...大爱啊!!!

2.代码分析
    (1) 想知道我修改了哪些内容?
        方法一、执行以下命令,列出最近一次修改的详细情况
                git log -n 1 -p
        方法二、去github查看commit记录,找她=>add dm9000 network support
                https://github.com/jiandeng/barebox/commits/master
    (2) 代码分析 —— 贴代码凑字数,非新手请绕行,我自觉隐藏了
本部分内容设定了隐藏,需要回复后才能看到
[ 此帖被mei5150在2013-04-13 20:44重新编辑 ]
级别: 新手上路
UID: 83422
精华: 0
发帖: 21
金钱: 105 两
威望: 21 点
贡献值: 0 点
综合积分: 42 分
注册时间: 2012-12-06
最后登录: 2014-11-18
1楼  发表于: 2014-07-31 16:38
good good good