没有硬件条件下来进行嵌入式系统的开发
来源:互联网 发布:北大青鸟java怎么样 编辑:程序博客网 时间:2024/06/10 19:16
作者:bobdos 时间 2004-8-24 14:55:49 序号:684 |
学习使用SkyEye仿真 SkyEye是一个可以运行嵌入式操作系统的硬件仿真工具,这样就可以在没有硬件条件下来进行嵌入式系统的开发。 以下操作均在Fedora Core 1.0里通过。 文档摘要:
SkyEye是开源软件的一个项目,SkyEye的目标是在Linux和Windows操作系统里提供一个完全的仿真环境。SkyEye仿真环境相当于一个嵌入式计算机系统,你可以在SkyEye里运行一些嵌入式Linux操作系统,如ARMLinux,uClinux,uc/OS-II(ucos-ii)等,并能分析和调试它们的源代码。 如果你想知道关于SkyEye和嵌入式系统更详细的信息,请访问下面的站点: 通过SkyEye能仿真下面的硬件: 目前能在SkyEye上运行下面的操作系统和系统软件:
到http://gro.clinux.org/projects/skyeye/下载skyeye-0.7.0.tar.bz2包: tar jxvf skyeye-v0.7.0.tar.bz2 进入解压后的skyeye目录,如果SkyEye的版本低于0.6.0,则运行下面的命令: ./configure --target=arm-elf --prefix=/usr/local --without-gtk-prefix --without-gtk-exec-prefix --disable-gtktest 如果SkyEye的版本高于0.6.0,则运行下面的命令: ./configure --target=arm-elf --prefix=/usr/local 接下来执行: make 安装完成后执行skyeye 注意: ln -s /usr/include/ncurses/termcap.h /usr/local/include/termcap.h 接着再make和make install看能否成功!
下载arm-elf-tools-20030314.sh 执行: ls /usr/local/bin/ 你应能看到以arm-elf开头的可执行文件,其中arm-elf-gcc就是用来编译你目标平台的编译器的,当然还有一些小工具,后面将一一讲来。
先写一个小程序hello.c
int main(void) for(i = 0; i < 6; i++){ printf("i = %d ",i); printf("Hello, embedded linux!/n"); return 0; --------------------------------------------------------------------------------
arm-elf-gcc -Wl,-elf2flt -o hello hello.c -elf2flt参数是将elf文件格式转为flat文件格式,这个工具是在你安装交叉编译器产生的。 或者你可以写个Makefile文件,执行: make 这里是我的Makefile文件,仅供参考: PHP源码: CC = arm-elf-gcc CFLAGS = -D__PIC__ -fpic -msingle-pic-base -O2 -pipe -Wall -g LIBS = all: hello hello: $(OBJS) clean: # end --------------------------------------------------------------------------------
file hello 你会发现,它是BFLT(binary FLAT),你目标平台所支持的文件格式。
这里,我们将借助genromfs这个小工具来完成测试,这个工具就是你在安装交叉编译器时产生的,你可以直接使用它。 到http://gro.clinux.org/projects/skye...0.4.tar.bz2包: tar jxvf skyeye-binary-testutils-1.0.4.tar.bz2 cd testsuits/at91/uclinux2(当然你还可以用别的) mkdir romfs(建一个目录,后面用) mount -o loop boot.rom /mnt/xxx cp -r /mnt/xxx/* romfs 另外,把你编译好的可执行程序拷贝到/romfs/bin目录里,这里就是hello了! genromfs -f boot.rom -d romfs/ 注:可以用genromf -h来获得帮助! OK!执行下面的命令: skyeye linux (skyeye)target sim (skyeye)load (skyeye)run kernel start..... 很熟悉了吧。。。 cd /bin hello 可以看到结果了吗? 其实到了这一步,你就可以开发自己的程序了!
到ftp://166.111.68.183/pub/embed/uclinux/soft/ 假设把它下载到/usr/src/目录下,然后依次执行下面的命令: tar zxvf uClinux-dist-20030909.tar.gz 在图形方式下可用命令make xconfig vendor/product中选择GDB/ARMulator 运行下面这两条命: 此时在/usr/src/uClinux-dist/linux-2.4.x目录下会生成可执行文件linux 在uClinux-dist目录下建立仿真AT91的skyeye配置文件skyeye.conf,内容如下:
skyeye linux-2.4.x/linux (skyeye)target sim (skyeye)load (skyeye)run kernel start..... 注意:
#insmod /lib/modules/'uname -r'/kernel/drivers/net/tun.o 如果你没有该设备,那你就要用下面的命令来创建它: #mkdir /dev/net (2)运行vnet(虚拟集线器)设备模块(这一步不是必需的): #mknod /dev/net/vnet c 10 201 创建vnet.o 插入模块vnet.o 进入test目录,用test来测度vnet.o d.配置skyeye.conf文件 cpu: arm7tdmi
For example: 注意: e.运行skyeye linux-2.4.x/linux 9、安装完成SkyEye后,下一步将做什么? 1、对于嵌入式操作系统的初学者和入门者和入门的学生而言,他们可以先看一些有关操作系统和嵌入式操作系统方面的教材和书籍,如与uC/OS、Minix、uClinux、Linux相关的书籍等。然后可以在Skyeye上开发一些简单的应用程序例子(如进程间通信、进程优先级、死锁情况、网络应用等),对某些操作系统功能(如进程调度、内存管理、网络子系统、文件子系统等)进行简单的修改和扩展,并通过Skyeye进行运行和调试,看看会发生什么情况。 2、对于有一定经验的软件工程师而言,在SkyEye上完成一定的应用系统原型开发是值得一做的事情。比如移植或开发一个文件子系统或网络子系统到一个特定的操作系统中,相信比在一个真实的开发板上开发要容易一些。在Skyeye上进行一些操作系统的移植和开发(如移植RTLinux、RTAI等其它操作系统到Skyeye上)也是很有挑战性的工作。 3、对于硬件工程师而言,对Skyeye进行扩充,设计新的硬件仿真(如USB、IDE硬盘等)使得Skyeye的硬件仿真功能更加强大,支持更多功能的软件,是很有意义的事情。 参考: 后记: 最后,我再次建议大家看一下《嵌入式Linux技术与应用》这本书。 可以到http://www.skyeye.org/document.htm或是 |
- 没有硬件条件下来进行嵌入式系统的开发
- 没有硬件条件下来进行嵌入式系统的开发
- 10002.没有硬件条件下来进行嵌入式系统的开发
- 嵌入式系统基础知识------之嵌入式系统的硬件基础(1.3)
- 在嵌入式系统中用FPGA进行开发的几个发展方向
- 嵌入式系统的硬件/软件特征
- 嵌入式系统硬件相关的基本概念
- 嵌入式系统硬件相关的基本概念
- 嵌入式开发中的硬件相关的概念
- 嵌入式硬件系统结构
- 嵌入式系统-硬件工程师
- 嵌入式系统硬件组成
- 嵌入式硬件系统
- 嵌入式系统基础知识------之嵌入式的硬件基础(1.3)
- 嵌入式开发硬件知识
- 使用 QEMU 进行嵌入式系统开发
- 使用嵌入式 Linux 进行实时系统开发
- 没有坚持下来的事情
- 用JBuilder9 开发Struts实例
- 混客绝情炸弹的原代码
- 设计模式学习笔记(5)
- Blog采访:蔡建新
- .NET 框架中的安全性概述
- 没有硬件条件下来进行嵌入式系统的开发
- Blog采访:方兴东
- linux进程通信-信号量使用
- Blog采访:杜勇
- Blog采访:刘韧
- IIS6 和Tomcat5 的整合
- 闲来无事之--记用BAT(批处理脚本)实现文件下载功能
- Servlet/JSP服务器端的重定向(z)
- 闲来无事之--记用BAT(批处理脚本)实现文件下载功能(续)