基于ARM7的ucLinux内核移植的proteus仿真

一、安装proteus

从网站上下载Proteus-Pro-crack-ha-7.8sp2,然后进行安装

二、嵌入式uClinux的实现

1.uClinux内核编译

(1)安装交叉编译工具
    安装交叉编译器arm-elf-tools-20030314.sh,这是一个可以自动安装的脚本文件,可以在相关网站上下载。在/home/saisai/目录下新建文件夹201417012,将其拷贝到该文件夹下。
     1)以用户身份登陆,否则不能执行脚本文件
     2)输入./arm-elf-tools-20030314.sh运行该脚本文件,结果出现如下错误:

基于ARM7的ucLinux内核移植的proteus仿真_第1张图片

 3)对上述出现的问题,有两种解决办法:

    解决办法一:
        进入arm-elf-tools-20040427.sh修改
        在命令模式下输入:set nu显示每一行的行号 
        将第39行的代码: tail +${SKIP} ${SCRIPT} | gunzip | tar xvf – 
        改成如下:    
            tail -n +${SKIP} ${SCRIPT} | gunzip | tar xvf – 
        在最后一行按回车空一行;
        修改后保存退出,再输入命令即可成功安装
    解决办法二
          #tail -n+43 arm-elf-tools-20040427.sh >> arm.tar.gz
            #tar -zxvf  arm.tar.gz
      4)安装完后,进行环境变量配置

       1》如果不知道安装到哪了,可以输入命令which arm-elf-gcc进行查看

 

     2》输入vi /etc/environment配置环境变量

       3》输入source/etc/environment 让配置的环境变量立即生效

 

     5)查看arm-elf-gcc的版本

  1》输入arm-elf-gcc –v查看版本,同时也看是否成功安装交叉编译器

  2》在查看的时候会出现找不到路径的问题,是因为没有安装32位库,使用命令apt-get install lib32ncurses5 lib32z1进行安装。在安装的过程中要保持网络通畅,其中它会自动解决一些依赖关系,要从网络上下载。

 3》安装成功后即可查看

基于ARM7的ucLinux内核移植的proteus仿真_第2张图片

(2)编译内核

        下载uClinux-dist-20040408.tar.gz压缩包,将其复制到目录
            /home/saisai/201417012下。
          1)输入命令tar -zxvf uClinux-dist-20040408.tar.gz解压到当前目录

           2)查看当前目录下的内容

    

        3)修改文件

          1》进入/home/saisai/201417012/ucLinux-dist目录修改文件

  

         2》在*(got) 之后添加如下3行语句

基于ARM7的ucLinux内核移植的proteus仿真_第3张图片

 3》修改vendors/Samsung/4510B/Makefile文件

            #vi vendors/Samsung/4510B/Makefile文件

            在image 目标的第三行增加一条语句

            arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -bbinary $(ROMFSIMG)

基于ARM7的ucLinux内核移植的proteus仿真_第4张图片

4)使用makexconfig命令对响应内容进行修改,修改完后保存并退出

基于ARM7的ucLinux内核移植的proteus仿真_第5张图片

基于ARM7的ucLinux内核移植的proteus仿真_第6张图片

       5)在终端上执行以下三条命令,如果在执行过程中出现错误,可能是交叉编译器没有安装好。

                    执行make dep命令
                    执行make clean命令
                    执行make lib_only命令

      6)在执行下一条命令前先进行修改

          vi config/.config注释掉25行,否则编译有错

            25 #CONFIG_USER_LOD_PASSWORDS=y

            修改完后执行make user_only命令

    执行make romfs命令

     7)执行make命令

执行完该条命令后会出现错误

在终端上执行cp linux-2.4.x/fs/romfs/romfs.o linux-2.4.x/

 然后再次执行make命令

     8)执行过程中会出现一个"sys_open"的错误

      通过vi linux-2.4.x/fs/romfs/inode.c找到

struct file_operations romfs_file_operations = {

开头加上static

        再次执行命令make

     9)执行结束后可以看到uClinux-dist下有一个images文件夹,里面有四个文件

     10)在终端先进入此文件夹,输入cd images
然后输入mkimage -n 'uClinux' -A arm -O linux -T kernel -C none -a 0xc0008000 -e 0xc0008000 -d image.bin linux.bin

这条命令执行时,会说没有安装mkimage,提示安装u-boot-tools,按照提示进行安装

基于ARM7的ucLinux内核移植的proteus仿真_第7张图片

 

安装后,再次执行该命令

基于ARM7的ucLinux内核移植的proteus仿真_第8张图片

    11)执行arm-elf-objcopy -I binary -O ihex linux.bin linux.img.hex命令

         执行完后查看当前目录下的内容

     12)至此,成功完成
三、系统集成

(1)proteus下建立仿真链路

基于ARM7的ucLinux内核移植的proteus仿真_第9张图片

(2) 移植uClinux操作系统
      将在虚拟机(ubuntu)中生成的linux.img.hex复制到目录D:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\SAMPLE\VSM for ARM7\uCLinux
下。然后在proteus下点击play运行。

你可能感兴趣的:(基于ARM7的ucLinux内核移植的proteus仿真)