今天心血来潮,对学习嵌入式linux以来一直没有解决的几个问题进行了一下探索,其实都是在网上找答案,然后自己用开发板去验证它
一个问题是:可不可以在linux下面有这样一个软件,就像在windows下的DNW软件一样,可以下载各种镜像到开发板上,从而可以避免在windows和linux系统之间的切换,那可是一件很让人讨厌的事情。
首先在网上搜了一下,还真有这样的软件,看样子还是得什么都要自己动手去探索才行,要不然的话一直会是个谜
下面是我的解决过程,写给自己看的,也希望给有需要的朋友一点帮助,大家可以共同进步
usb2ram软件下载地址:
http://forum.ubuntu.org.cn/viewtopic.php?f=97&t=107504
下载下来的压缩包中解压后是有一个可执行文件的,但是这个可执行文件一般不能执行,需要在自己的系统上重新编译才能用
首先要修改Makefile文件,在第一行之后添加如下这行,用以设定编译器:
CC=gcc
修改之后的Makefile文件如下:
#!/usr/bin/make
CC=gcc
LDFLAGS=-lusb -lm
all: usb2ram
clean:
-rm -f *.o usb2ram
usb2ram: usb2ram.o
$(CC) $(LDFLAGS) -o $@ $<
boot_usb.o: boot_usb.c
$(CC) $(CFLAGS) -o $@ -c $<
.PHONEY: all clean
编译前先清除无用的文件,以确保后面能够正常编译,这时执行一下命令:
make clean
再次编译前要确保有libusb 和libusb-dev两个库,我是看的网上文章的提示。若是没有,编译时就会提示:
cc -lusb -lm -o usb2ram usb2ram.o
/usr/bin/ld: cannot find -lusb
collect2: ld returned 1 exit status
make: *** [usb2ram] 错误 1
于是我就输入命令: sudo apt-get install libusb libusb-dev 进行两个库的安装
这时又有提示:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 无法找到软件包 libusb
说是找不到libusb,这时我就输入如下命令:
sudo apt-get install libusb-dev
只安装libusb-dev这个库,这个库可以找的到,安装好之后再make,就成功生成了usb2ram可执行文件
下面讲讲它的用法:
我用的是TQ2440的开发板,首先确保norflash里面有bootloader,这时选择从norflash启动,
出现如下菜单界面:
##### Boot for Nand Flash Main Menu #####
[1] Download u-boot to Nand Flash
[2] Download Eboot
[3] Download Linux Kernel
[4] Download WinCE NK.bin
[5] Download CRAMFS image
[6] Download YAFFS image
[7] Download to SDRAM & Run
[8] Boot the system
[9] Format the Nand Flash
[0] Set the boot parameters
[a] Download User Program
[b] Download LOGO Picture (.bmp) to Nand Flash
[l] Set LCD Parameters
[r] Reboot u-boot
[q] quit from menu
Enter your selection:1
在这里我选择的是1:下载uboot到nandflash
这时终端提示:
USB host is connected. Waiting a download.
表示你现在可以使用usb2ram软件下载镜像文件了
这时启动另外一个终端,进入usb2ram可执行文件所在的目录,输入一下命令:
sudo ./usb2ram 30000000 /home/deng/ARM/images/u-boot_W35.bin
这个命令的形式是:sudo ./usb2ram 地址 文件
一开始在命令之前没有加sudo,提示如下错误:
Unable to claim usb interface 1 of device: could not claim interface 0: Operation not permitted
加上之后就好了
现在切换到由nandflash启动,启动时按住空格建进入下载模式,这时跟norflash启动效果一样,说明uboot已经下载到了nandflash中
也可以用同样的方法将其他的镜像下载只开发板
我是菜鸟一个,如有不正确的地方,还请各位大牛指正