×
单片机 > 单片机程序设计 > 详情

建立ARM+Linux运行环境

发布时间:2020-05-30 发布时间:
|
前一个阶段主要是在Windowsxp下,通过ADS1.2、H-JTAG和DNW来对代码进行编辑和调试。现在转到Linux下,利用RedHat9.0+虚拟机作为开发环境,这里将这两天来对环境的配置及其遇到的问题总结一下。

 

       开发板为GEC2410,在Linux下的环境搭建相对于Windows来说要麻烦一些。原先再Windows下,利用广嵌提供的Bootloader(GEC2410_BIOS_320240.bin)、kernel(zImage-gec2410-linux-2.6.8.tar.bz2)、fs(gec2410_demo.cramfs),能够直接烧写运行,可是将bootloader换成vivi后,对广嵌所提供的内核通过xmodem下载后却不能引导,于是换成用SBC2410学习套件中所提供的源码来烧写,包括vivi-bootloader(boot.tgz),经过裁剪的Linux内核(matrix5-kernel.tgz),根文件系统(root-for-nfs-v5.tgz)。下面开始下载安装:

 

1.       安装Linux下烧写工具Jflash:

建立friendly-arm工作目录,以后所有的Linux想过工具都安装到此目录

$ mkdir /friendly-arm

$ mkdir /friendly-arm/Jflash

$ tar xzvf Jflash.tgz –C /friendly-arm/Jflash

$ cd /friendly-arm/Jlash可发现可执行文件Jflash-s3c2410,以后可通过它来对bootloader进行烧写;

 

2.       安装交叉编译工具:arm-linux-2.95.3.tgz  arm-linux-3.4.1.

    下载地址:

      http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

      http://ftp.snapgear.org:9981/pub/snapgear/tools/arm-linux/

对于vivi-bootloader的编译较高版本的交叉编译器不能编译,具体是不能识别某个符号。所以对于vivi-bootloader的编译最好使用2.95.3版本。

$ mkdir /usr/local/arm/2.95.3

$ tar zxvf arm-linux-2.95.3 –C /usr/local/arm/2.95.3

添加环境变量:

修改 /etc/profile,将/usr/local/arm/2.95.3/bin 添加进环境变量.

重新载入该文件配置:$ source /etc/profile

对于arm-linux-3.4.1的安装方法同上.

 

3.       编译并烧写vivi-bootloader

       $ tar zxvf boot.tgz –C /friendly-arm

       $ cd /friendly-arm/vivi

       默认配置就行了,并保存退出:make menuconfig

       编译 Make

       之后在当前目录下生成vivi二进制映像文件,可通过Jlash将它烧写到Nandflash.

 

4.       编译和配置内核

$ tar zxvf matrix5-kernel.tgz –C /friendly-arm

默认配置,$make menuconfig

编译,$make zImage

最后生成内核映像文件位于arch/arm/boot目录.

 

5.       安装用于作为网络文件系统(nfs)的root目录

$ tar zxvf root-for-nfs-v5.tgz –C /friendly-arm

通过修改/etc/exprots指定根文件共享目录:

将“ /friendly-arm/root  *(rw,sync,no_root_Squash) ”加入该文件.

启动网络文件系统(nfs)服务,  $ /etc/init.d/nfs restart

 

6.通过minicom终端将内核映像zImage通过xmodem下载到开发板上,注意内核的分区应大于zImage文件:

vivi> load  flash  kernel  x

注意:在下载的时候,如果发生超时不能下载的情况,应将xmodem_initial_timeout 和

xmodem_timeout 设置足够大.

 

7.       在vivi模式下设置参数:

     vivi> param set linux_cmd_line "console=ttyS0 root=/dev/nfs nfsroot=192.168.0.1:/friendly-arm/root      ip=192.168.0.69:192.168.0.1:192.168.0.1:255.255.255.0:matrix4.arm9.net:eth0:off"

         保存

     vivi> param save

 

8. 在下次启动的时候,可通过命令要重新mount 文件 /etc/exports中的内容:

      exports [-aruv]

      -a    全部mount或umount文件/etc/exports中的内容

      -r     重新mount文件/etc/exports中的共享内容

      -u   umount目录

      -v    在export的时候,将详细的信息输出到屏幕上

 

9. 关于exports文件中一些选项的含义:

选项                                                 说明

ro                            该主机对该共享目录有只读权限

rw                            该主机对该共享目录有读写权限

root_squash          客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户

no_root_squash    客户机用root访问该共享文件夹时,不映射root用户

all_squash             客户机上的任何用户访问该共享目录时都映射成匿名用户

anonuid                 将客户机上的用户映射成指定的本地用户ID的用户

anongid                 将客户机上的用户映射成属于指定的本地用户组ID

aync                       资料同步写入到内存与硬盘中

async                     资料会先暂存于内存中,而非直接写入硬盘

       insecure                允许从这台机器过来的非授权访问

 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何为单片机选择合适的负载电容