首页 » 技术分享 » arm7开发板烧写内核、文件系统,交叉编译hello world

arm7开发板烧写内核、文件系统,交叉编译hello world

 

型号:UP-TECH 44B0

一、开发板连接PC

本人在win8的OS上安装VM,在VM上安装Ubuntu 13.04系统。

1.安装完成OS后,vm默认的是没有串口的,需要在VM上添加串口,方法如下:

关闭vm下的ubuntu 系统 ,然后选择setting --->add--->serial port 。不要使用自动 ,使用com1。

2.开启ubuntu ,配置minicom

dingyi@ubuntu:~$ sudo minicom

然后ctrl + A 然后按Z 和 O,选择serial port setup

A -    Serial Device      : /dev/ttyS1                             //有的电脑是ttyS0,有些是S1,如果是虚拟机安装,S1的居多                            

B - Lockfile Location     : /var/lock                             

C -   Callin Program      :                                        

D -  Callout Program      :                                      

E -    Bps/Par/Bits       : 115200 8N1                          

F - Hardware Flow Control : No                                   

G - Software Flow Control : No                                        

                                                               
    Change which setting?                                              
然后保存

如果不知道开发板是哪个是com1,那就两个都 试试,哪个通哪个就是com1。我用的开发板,UART0是com1口。

以上配置并连接完成之后 ,进入minicom,就会进入开发板启动的过程 。


二、烧写内核和文件系统

1.启动 minicom,按下目标板复位键,抢在目标板进入内核启动步骤之前按下回车键(否则目标板就进入由先前烧写进去Bootloader 引导的默认启动顺序),此后我们可以在超级终端上看到>Blob 出现

2.在>Blob 后键入xdownload  kernel 回车,告诉系统我们要下载的是内核。

3.键入 Ctrl+A 再键入S(同前面的Ctrl+A,Z ,Ctrl+A松开后才按 S)。此时出现的界面是让你选定要烧写到目标板上的文件。我们找到内核img文件的目录,空格是进入,选择zImage文件,回车确定 ,开始下载内核。

4.第三步完成后,内核程序只是被下载到RAM中,按回车后在提示符后键入flash kernel ,这时目标板会把内核程序给真正烧写到 Flash芯片中。

5.在>Blob 后键入xdownload  ramdisk 回车,告诉系统我们要下载的是文件系统。

6.重复第三步,只不过找到文件系统的目录,选择romfs.bin文件,回车确定 ,开始下载文件系统。

7.提示符后键入flash ramdisk 。

到此内核和文件系统就烧写完成了。


三、NFS服务器和挂载。

NFS服务器的配置不再详述。配置完成后,首先要把开发板的IP地址改成和PC机一个网段,然后用mount命令进行挂载。例如:

我的PC机IP地址是202.198.200.15,,nfs服务器的文件夹的/nfs

那么在开发板上执行:ifconfig 202.198.200.249

然后执行mount -t mfs 202.198.200.15:/nfs /mnt/yaffs
这样挂载就成功了。但是用ls命令的话依然不能显示挂载的目录,我们可以向上一级,再进入yaffs目录,就可以了,原因可能是目录还没有更新。

四、交叉编译。

光盘已经给了相关交叉编译的文件,但是需要自己安装一下,打开光盘根目录有一个install.sh文件,在终端./install.sh,就可以安装了。但是由于这个是基于redhat写的,里面用到了rpm命令,但是在ubuntu下是不能用rpm进行安装的,安装过程中会出现

rpm...(中间没记住)      ...    using alien instead

解决办法就是把rpm转换成deb文件,再进行安装。这个过程要用到alien工具,apt-get install alien

然后我们用vi修改原来的install.sh

找到rpm -i --force genromfs-0.5.1-1.i386.rpm || exit  这句话,把这句话注释掉,换成

alien -d *.rpm
dpkg -i *.deb

这样就可以把rpm变成deb文件,就可以正常安装了。

安装完成后,开始写程序

hello.c:

#include <stdio.h>
main()
{
        printf("hello world \n");
}

然后写makefile文件:

CC=arm-uclibc-gcc
EXEC = hello
OBJS = hello.o
CFLAGS +=
LDFLAGS+=-elf2flt -static
all: $(EXEC)
$(EXEC): $(OBJS)
        $(CC) $(LDFLAGS) -o $@ $(OBJS)
clean:
        -rm -f $(EXEC) *.elf *.gdb *.o

写好之后,在PC机上执行make。就会得到hello  hello.c  hello.gdb  hello.o  Makefile 这五个文件

然后进入开发板,./hello,就可以得到hello world的结果。


转载自原文链接, 如需删除请联系管理员。

原文链接:arm7开发板烧写内核、文件系统,交叉编译hello world,转载请注明来源!

0