学习linux嵌入式开发已经快一个月了,注册了博客记录自己的学习过程,由于身边没有老师请教,中间走了很多弯路。由于本人记性较差,写下博文便于自己记录,同时也方便其他新手参考。
自己在调试代码的时候 都是用minicom来进行,可是minicom通过串口传送,速度太慢了,看到国嵌视频教程中,uboot的启动采用tftp 的方式进行,也想实现这个功能。
第一步 : 制作ok6410有网络驱动的Uboot
参考此文章 http://bbs.witech.com.cn/thread-6855-1-1.html
以及此文 http://lagignition.blog.163.com/blog/static/12873002320110443341961/
此文的代码有一处错误
//#define CONFIG_DRIVER_CS8900 0 /* we have a CS8900 on-board */
//#define CS8900_BASE 0x18800300
//#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */
//#endif 这里不应注销
#define CONFIG_DRIVER_DM9000 1
#define CONFIG_DM9000_BASE 0x18000300 //0x20000300
#define DM9000_IO CONFIG_DM9000_BASE
#define DM9000_DA
#define CONFIG_DM9000_USE_16BIT
编译uboot时用 make forlinx-nand-ram256_config 命令来进行。然后用一键烧录烧到开发板上。
用minicom来连接开发板(minicom的安装设置参考 http://blog.163.com/ly8784@126/blog/static/637454772010422104217597/ )
按空格键就可以停止自动引导,进入手动启动模式。
在boot启动后,可以输入命令:print,看看服务器ip地址,把宿主机上网卡的ip地址设为服务器地址,
用: tftip c0008000 zImage 网络载入内核,
bootm c0008000 运行。
第二步 配置tftpd服务器
参考这里: http://blog.youkuaiyun.com/yxtouch/article/details/7476999第三步:设置网络
在宿主机上 键入 ifconfig 看看自己的网卡ip地址是多少,我的是192.168.1.10,
再进入飞凌开发板用
ifconfig eth0 192.168.1.20 netmask 255.255.255.0 broadcast 192.168.1.255
设置ip地址,要求不能与宿主机相同。
然后就可以用 tftp -g -r filename 192.168.1.10