基于ARM7的ucLinux内核移植的proteus仿真
2018-02-28 10:19
393 查看
一、安装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运行该脚本文件,结果出现如下错误:
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》安装成功后即可查看
(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行语句
3》修改vendors/Samsung/4510B/Makefile文件
#vi vendors/Samsung/4510B/Makefile文件
在image 目标的第三行增加一条语句
arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -bbinary $(ROMFSIMG)
4)使用makexconfig命令对响应内容进行修改,修改完后保存并退出
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 0x
4000
c0008000 -e 0xc0008000 -d image.bin linux.bin
这条命令执行时,会说没有安装mkimage,提示安装u-boot-tools,按照提示进行安装
安装后,再次执行该命令
11)执行arm-elf-objcopy -I binary -O ihex linux.bin linux.img.hex命令
执行完后查看当前目录下的内容
12)至此,成功完成
三、系统集成
(1)proteus下建立仿真链路
(2) 移植uClinux操作系统
将在虚拟机(ubuntu)中生成的linux.img.hex复制到目录D:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\SAMPLE\VSM for ARM7\uCLinux
下。然后在proteus下点击play运行。
相关文章推荐
- 毕业设计-----基于uclinux的boa移植及内核的从新编译
- 基于tiny4412的Linux内核移植 -- SD卡驱动移植(五)
- 基于proteus的51单片机仿真实例四十八、C语言的指针数组演示实例
- u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统
- 基于proteus的51单片机仿真实例五十一、基于P2口的流水灯
- 第九章:基于九鼎X210开发板移植2014.10版U-boot之启动内核
- 基于tiny4412的Linux内核移植 -- PWM子系统学习
- Linux芯片级移植与底层驱动(基于3.7.4内核)(GPIO&&pinctrl&&clk)
- 基于proteus的51单片机仿真实例六十八、8位数据锁存器74HC573应用实例
- 基于2.6.35内核的OV9650摄像头驱动移植
- 基于S3C2440的Linux内核移植和yaffs2文件系统制作--制作根文件系统
- 基于proteus的51单片机仿真实例九、51单片机的最小工作系统
- RT3070 AP模式移植 基于linux3.0内核
- 基于proteus的51单片机仿真实例二十七、C语言的语句演示实例
- 基于proteus的51单片机仿真实例三十八、C语言的函数调用
- 基于proteus的51单片机仿真实例四十九、C语言数组的指针演示实例
- mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(二uboot移植)
- 基于proteus的51单片机仿真实例五十二、按键的判断与消抖实例
- 基于S3C2440的Linux内核移植和yaffs2文件系统制作
- 基于PXAxxx平台的Andriod(Linux kernel 2.6.29)内核移植到Meego(linux kernel 2.6.35)过程二