推荐:光盘启动的免配置嵌入式LINUX开发环境
时间:2007-08-02
来源:互联网
ZIX对踏入嵌入式学习之路的工程师来说具有非常大的应用价值:
降低了对初学者的技术门槛
非常易于配置。免除了冗长的操作系统安装、服务配置、开发工具建立等工作,运行ZIX只需几分钟时间即可开始嵌入式linux开发
不需要购买开发板,降低了资金投入
不需要购买昂贵的开发板也能学习嵌入式开发,基于一流的虚拟机技术,在ZIX环境中完全可以完全建立嵌入式系统的开发调试环境
对于嵌入式开发工程师,基于ZIX可以完成内核开发、应用开发、调试除错、嵌入式软件测试等全部开发工作并提高开发效率。
易于配置
在通常的使用条件下,系统完全自动配置,无需额外配置工作。
经过简单配置,可以作为工作组开发服务器,代码库服务器等
自包含
ZIX开发环境包含开发过程中全部必须的工具,无需依赖其它软件。
例如,无需安装Red Hat linux或Ms Windows
开放性与兼容性高
ZIX采用基于eclipse的开发平台,结合多种开发插件,ZIX可以进行多种编程语言开发。
配合包管理,支持多种嵌入式硬件平台 。
稳定成熟,基于gcc-3.4的编译和调试工具
采用被广泛验证的工具链gcc-3.4版本,修正2.95工具链的诸多bug。并且工具链经过我们的衰退测试,稳定可靠。
易于定制和管理
嵌入式软件包管理,使得嵌入式软件包发布和安装变得简单易用
作者: wenshan36 发布时间: 2007-08-02
——使用指南
1. 环境需求
ZIX嵌入式Linux开发环境运行平台为IBM-PC兼容计算机
处理器:PENTIUM或更高级INTEL/AMD处理器
内存:至少64M,流畅进行嵌入式开发需要256M以上
显示器:推荐XGA 1024x768或更高分辨率显示器
驱动器:CD-ROM驱动器
硬盘空间:无要求(注1)
操作系统:无要求(注2)
2. 使用指南
2.1. 启动
将ZIX嵌入式Linux开发光盘插入光驱
仔细阅读《ZIX开发环境试用版使用指南》
重新启动计算机,在BIOS选项中将第一个引导设备设置为CDROM,并保存设置
视机器速度不同,几分钟后系统自动进入嵌入式Linux软件开发图形桌面
点击桌面开发图标即可开始开发嵌入式Linux软件
2.2. 源代码结构
打开控制台窗口,键入ls命令即可列出当前目录内容。
linux目录:
存放的是2.6.12版linux内核源代码,该源代码包括对ARM架构处理器的支持,涵盖了BSP,驱动程序,文件系统,网络协议。注4
Examples目录:
存放的是linux开发经典示例代码,包括《Linux Device Driver, 3rd Edition》书中提到的例子程序,《Linux Programming unleashed, 3rd Edition》书中配套例子程序。经过编译,这些代码绝大部分可以同时运行在i386和ARM架构上面。
Ebook目录:
存放的是基于GPL的pdf格式Linux电子书,包括《Linux Device Driver, 3rd Edition》
2.3. 开发概述
在ZIX环境下,开发工程师可以通过命令行方式开发嵌入式Linux软件,也可以通过图形编辑环境开发(注3)
点击桌面下方的快捷工具栏命令行窗口,打开一个开发命令控制台
在此控制台中,可以进行以下开发:
开发i386本机应用程序
开发i386本机驱动程序
开发arm架构目标板应用程序
开发arm架构目标板内核
开发arm架构目标板模块化驱动
2.4. 嵌入式Linux内核/驱动开发
以ZZNUX ZR2410基于S3C2410A处理器的开发板为例,介绍Linux内核开发过程
2.4.1. 编译内核
点击桌面下方的快捷工具栏命令行窗口,打开一个命令控制台窗口。
内核源代码的路径是/root/linux
进入嵌入式Linux内核源代码目录键入
cd /root/linux
Linux内核包含了繁多的配置选项,这些选项决定了内核编译使用的BSP,驱动程序,文件系统,网络协议以及其它特性。
如果不确定该如何配置内核,可以键入
make zir2410_defconfig
这样可以使用针对ZR2410开发板预先设定好的配置
接下来可以使用make menuconfig或make xconfig进行进一步的配置定制
修改合适的内核配置选项
退出配置工具,选择save changes保存设置
接下来开始内核编译。在ARM平台上,linux对自解压缩支持很完善,所以我们可以采用自解压缩镜像的方式来存储内核,即zImage文件
编译内核自解压缩镜像,键入:
make zImage
经过一段时间的编译,以及打印了若干信息,我们得到三个文件
一个是在内核源代码目录的顶层,vmlinux文件
一个是在arch/arm/boot/的Image文件
一个是在arch/arm/boot/的zImage文件
vmlinux是elf格式的内核二进制文件,通常不会直接使用,在调试内核的时候作为符号表文件
Image文件是vmlinux文件通过objcopy工具生成的二进制镜像文件,是可以直接运行的内核
zImage文件和Image文件类似。所不同的是它把Image文件经过gzip压缩,再加上一个自解压的头部,最后再次用objcopy生成二进制镜像文件。zImage可以像Image一样运行,效果也相同,只是占用磁盘空间较小。
除了内核镜像文件以外,linux系统往往还有很多模块化的驱动
编译模块也非常简单,键入:
make modules
经过几分钟的编译,就得到了模块.ko文件,这些模块文件分布在各个目录中。
使用下面的命令,可以将模块安装到/lib/modules目录,键入:
make modules_install
安装完成之后,在目标板所对应的nfs根目录/lib/modules/2.6.12-arm-zznux目录中,就已经存放好了ARM平台需要的所有驱动程序。对应zir2410目标板,这些驱动存放在/arm-zznux/nfs/rootfs.zir2410/lib/modules/2.6.12-arm-zznux中,目标板能够直接访问这些安装好的驱动
2.4.2. 部署内核
部署内核有多种方式,通过tftp部署ARM内核非常容易和快捷的。
内核zImage文件可以直接在目标板上运行,不过有一些地方要注意。
zImage文件不包含便于识别和管理的必要信息,比如
该内核的机器码是ARM还是MIPS
内核应该被加载到什么地址执行
Boot loader如何将参数传给内核
使用u-boot软件附带的mkimage工具可以提供这些信息功能,键入deploy-arm
将得到/arm-zznux/tftpboot下的一个uImage文件。该文件在zImage文件的基础上加入了创建日期,文件类型(内核文件还是ramdisk文件),加载目的地址,运行入口地址等信息。
该uImage文件包含了内核运行的所有必要信息,可以让u-boot完全自动化的引导。如果你将错误的内核下载到板子上也不必担心(比如将arm内核下载到ppc开发板上),u-boot会打印明确的错误信息提示你。
完成部署内核之后,就可以启动开发板调试刚才编译好的内核
2.4.3. 加载内核
调试内核需要察看开发板打印的底层调试信息,所以要将开发板的第一个串口和主机连接起来。内核下载和根文件系统依赖网络,将开发板的网口和交换机或PC机直接相连
使用串口工具获得控制台,键入
Kermit –c
打开开发板电源。如果硬件配置正常,就可以看到u-boot字符界面,按下回车或任意键获得命令提示符 zir2410 #
在u-boot里面内置了一个功能强大的交互式命令环境,可以作为shell,常用命令有
printenv setenv saveenv tftpboot nand bootm md mw loadb run go reset
控制u-boot行为的另一个重要因素使环境变量,常用的环境变量
baudrate ethaddr ipaddr serverip netmask bootdelay bootcmd bootargs
命令简介:
printenv 用来打印u-boot中正在使用的所有环境变量(包括未保存的),可不带参数
setenv 用来设置一个环境变量,参数用空格隔开。例如
setenv bootdelay 2
saveenv 用来保存环境变量,无参数
tftpboot 用来从tftp服务器下载文件,通常用来下载内核,initrd,以及bootloader自身。例如
tftpboot 31000000 /arm-zznux/tftpboot/uImage
即把tftp服务器上/arm-zznux/tftpboot/uImage文件下载到内存的0x31000000地址
nand 用来执行nand flash操作,这个命令有几个子命令
nand erase用来擦除nand flash
nand bad用来显示nand flash的坏块列表
nand read用来把nand flash上的数据读入内存
nand read.jffs2同nand read功能一样,差别在于会自动跳过坏块
nand write用来把内存数据写入nand flash
nand write.jffs2同nand write功能一样,差别在于会自动跳过坏块
使用实例:
nand erase 40000 100000 擦除自0x40000开始,长度是0x100000字节的nand flash区域
nand write.jffs2 31000000 40000 100000 将内存地址从0x31000000开始长度为0x100000字节的数据块拷贝到nand flash中从0x40000开始的位置
nand read.jffs2 31000000 40000 100000 将nand flash中从0x40000开始长度为0x100000字节的数据块拷贝到内存中从0x31000000开始的位置
bootm 用来加载前面提到u-boot特有的uImage格式文件。该文件可以是linux内核,
initrd,甚至是VxWorks操作系统镜像。u-boot会自动按照正确的方式处理。
bootm 31000000 即是加载存放在内存地址0x31000000中的uImage文件
md 用来显示内存的数值,例如
md 31000000 即是显示自0x31000000开始的内存内容
reset 用来复位开发板(如果该开发板支持)
环境变量简介:
baudrate 用来设置终端的串口波特率
ethaddr 用来设置网卡的MAC地址
ipaddr 用来设置开发板ip地址
serverip 用来设置tftp下载使用的服务器地址
netmask 用来设置开发板的ip地址子网掩码
bootdelay 用来设置开发板自启动读秒时间
bootcmd 用来设置开发板自启动时执行的命令
bootargs 用来存放通过bootm命令启动linux内核时,传递给内核的参数
环境变量可以按需要设置
ZIR2410开发板可以通过如下设置来完成启动
setenv ipaddr 192.168.1.81
setenv serverip 192.168.1.99
setenv netmask 255.255.255.0
setenv bootdelay 10
setenv bootcmd ‘tftp 308000000 /arm-zznux/tftpboot/uImage;bootm 30800000’
setenv bootargs root=nfs nfsroot=192.168.1.99:/arm-zznux/nfs/rootfs.zir2410 ip=192.168.1.81 console=ttySAC0,115200
设置完毕后,可以使用print命令来检查设置是否正确。
注意,bootcmd变量设置中使用分号隔开了tftp和bootm两个命令。使得bootcmd实际上是一个小的脚本,所以需要用单引号引起来。
bootargs变量设定的内容是使用串口0输出信息,使用nfs作为根文件系统,
nfs服务器为192.168.1.99:/arm-zznux/nfs/rootfs.zir2410
2.4.4. 使用qemu模拟器来加载并调试内核
ZIX开发环境内提供了一个已经移植、配置好的qemu模拟器,能够模拟ARM开发板作为调试内核的硬件平台。
要使用模拟器,首先编译一个可用于调试的内核
类似于我们在2.4.1节做过的操作,首先进入内核代码目录
cd /root/linux
针对模拟器进行配置工作
make menuconfig或make xconfig
如果不熟悉正确的配置选项,可以使用正确的缺省配置
make integrator_defconfig
可以通过make menuconfig来查看内核配置,确保选择的开发板是ARM公司的IntegratorCP,并且包含arm926处理器的支持
接下来编译内核
make zImage
经过一段时间的编译,我们得到arch/arm/boot/zImage文件,以及当前目录下的vmlinux文件,这两个文件在后面的调试中都会用到。
首先使用emulator来加载内核:
加载emulator有两个脚本命令,分别是emulator_run和emulator_debug。
从字面上我们可以猜到他们的含义,分别是free run以及使用调试器来调试,命令格式为
emulator_run <path_to_zImage>或emulator_debug <path_to_zImage>
如果不给emulator_xxx命令提供参数,那么emulator会自动加载预先编译好的zImage.qemu926ejs内核。
键入下面的命令开始调试
emulator_debug arch/arm/boot/zImage
这时虚拟机会建立一个完整的开发板硬件,接下来软件的执行会暂停。同时在本机的tcp:9000端口开始监听,等待调试器连接。
然后启动调试器gdb。gdb调试器是基于命令行的,可以通过图形前端以图形模式来使用。键入
ddd --debugger arm-linux-gdb vmlinux
ddd的主界面很快会出现
在此界面中部,最大的窗口是主窗口,显示内核的源代码以及代码的实时执行情况。在下部的窗口是命令窗口,可以在此输入命令,以及看到调试器输出的额外信息。
在命令窗口中键入
target remote localhost:9000
即可和调试目标板建立调试连接。这里的目标板既可以是实际的开发板,也可以是虚拟的开发板,最后一个参数ip:port决定了连接的目标。
接下来,键入
break start_kernel
即在start_kernel函数中设置一个断点。断点的数量没有限制。
接下来点击浮动工具条里面的Cont按钮,或在命令窗口中键入
cont
内核即开始运行,并且在start_kernel函数中停下来。
调试内核的过程细节,可以参考周明老师的视频教程。
作者: wenshan36 发布时间: 2007-08-03
点击桌面下方的快捷工具栏命令行窗口,打开一个命令控制台窗口
进入嵌入式应用程序例子源代码目录
cd /root/examples/LinuxProgrammingUnleaded/chapter13
编译应用程序例子make CC=arm-linux-gcc CFLAGS=“-g -static”
部署编译好的应用程序make deploy
2.6. 嵌入式Linux应用程序调试
点击桌面下方的快捷工具栏命令行窗口,打开一个命令控制台窗口
配置主机ip地址 ifconfig eth0 192.168.1.23
用串口电缆连接开发板和主机
用网线连接开发板和主机
用minicom打开串口连接
使用用户名root,密码root登录
同样可以使用ssh通过网络登录目标板
打开新的命令窗口,键入ssh [email protected]
询问密钥信息时回答yes,然后键入用户名和密码即可登录
调试在步骤2.4中部署的应用程序
在目标板的控制台下,键入gdbserver 192.168.1.134:8888 waiter
在开发主机控制台下,键入debug waiter得到图形化的调试介面
在函数当中设置断点
查看CPU寄存器
运行程序观察结果
3. 常见问题
3.1. 为什么此手册这样简短
此手册说明了ZIX嵌入式Linux开发环境试用版的简单使用指南信息。由于ZIX经过长期的改进和完善,使用过程已经高度自动化,完全免除了费力的安装和配置过程。使用ZIX并配合本手册的说明,可以在几分钟之内开始定制化的嵌入式Linux软件开发,可以实现常用学习板配套软件无法实现的功能。
ZIX开发环境专业版,包含了更强大的专业开发工具。包括基于eclipse的集成开发环境,功能丰富的调试工具,多种嵌入式平台支持(PPC,MIPS,ARM,X86),以及商业质量的开发文档。敬请垂询mailto:[email protected]
3.2. 为什么开发环境不需要硬盘
ZIX开发环境使用光盘即时压缩技术,在CDROM光盘上放置了1.8G容量的开发工具,配合系统中的RAM,可以实现全部的开发功能。
ZIX本身不需要向硬盘安装任何文件和数据,可以在没有硬盘的PC机上使用
如果需要在硬盘上保存数据,可以点击桌面上的硬盘图标,将文件拷贝到上面即?%C
作者: wenshan36 发布时间: 2007-08-03
点击桌面下方的快捷工具栏命令行窗口,打开一个命令控制台窗口
进入嵌入式应用程序例子源代码目录
cd /root/examples/LinuxProgrammingUnleaded/chapter13
编译应用程序例子make CC=arm-linux-gcc CFLAGS=“-g -static”
部署编译好的应用程序make deploy
2.6. 嵌入式Linux应用程序调试
点击桌面下方的快捷工具栏命令行窗口,打开一个命令控制台窗口
配置主机ip地址 ifconfig eth0 192.168.1.23
用串口电缆连接开发板和主机
用网线连接开发板和主机
用minicom打开串口连接
使用用户名root,密码root登录
同样可以使用ssh通过网络登录目标板
打开新的命令窗口,键入ssh [email protected]
询问密钥信息时回答yes,然后键入用户名和密码即可登录
调试在步骤2.4中部署的应用程序
在目标板的控制台下,键入gdbserver 192.168.1.134:8888 waiter
在开发主机控制台下,键入debug waiter得到图形化的调试介面
在函数当中设置断点
查看CPU寄存器
运行程序观察结果
3. 常见问题
3.1. 为什么此手册这样简短
此手册说明了ZIX嵌入式Linux开发环境试用版的简单使用指南信息。由于ZIX经过长期的改进和完善,使用过程已经高度自动化,完全免除了费力的安装和配置过程。使用ZIX并配合本手册的说明,可以在几分钟之内开始定制化的嵌入式Linux软件开发,可以实现常用学习板配套软件无法实现的功能。
ZIX开发环境专业版,包含了更强大的专业开发工具。包括基于eclipse的集成开发环境,功能丰富的调试工具,多种嵌入式平台支持(PPC,MIPS,ARM,X86),以及商业质量的开发文档。敬请垂询mailto:[email protected]
3.2. ?%A
作者: wenshan36 发布时间: 2007-08-03
点击桌面下方的快捷工具栏命令行窗口,打开一个命令控制台窗口
进入嵌入式应用程序例子源代码目录
cd /root/examples/LinuxProgrammingUnleaded/chapter13
编译应用程序例子make CC=arm-linux-gcc CFLAGS=“-g -static”
部署编译好的应用程序make deploy
2.6. 嵌入式Linux应用程序调试
点击桌面下方的快捷工具栏命令行窗口,打开一个命令控制台窗口
配置主机ip地址 ifconfig eth0 192.168.1.23
用串口电缆连接开发板和主机
用网线连接开发板和主机
用minicom打开串口连接
使用用户名root,密码root登录
同样可以使用ssh通过网络登录目标板
打开新的命令窗口,键入ssh [email protected]
询问密钥信息时回答yes,然后键入用户名和密码即可登录
调试在步骤2.4中部署的应用程序
在目标板的控制台下,键入gdbserver 192.168.1.134:8888 waiter
在开发主机控制台下,键入debug waiter得到图形化的调试介面
在函数当中设置断点
查看CPU寄存器
运行程序观察结果
3. 常见问题
3.1. 为什么此手册这样简短
此手册说明了ZIX嵌入式Linux开发环境试用版的简单使用指南信息。由于ZIX经过长期的改进和完善,使用过程已经高度自动化,完全免除了费力的安装和配置过程。使用ZIX并配合本手册的说明,可以在几分钟之内开始定制化的嵌入式Linux软件开发,可以实现常用学习板配套软件无法实现的功能。
ZIX开发环境专业版,包含了更强大的专业开发工具。包括基于eclipse的集成开发环境,功能丰富的调试工具,多种嵌入式平台支持(PPC,MIPS,ARM,X86),以及商业质量的开发文档。敬请垂询mailto:[email protected]
3.2. 为什么开发环境不需要硬盘
ZIX开发环境使用光盘即时压缩技术,在CDROM光盘上放置了1.8G容量的开发工具,配合系统中的RAM,可以实现全部的开发功能。
ZIX本身不需要向硬盘安装任何文件和数据,可以在没有硬盘的PC机上使用
如果需要在硬盘上保存数据,可以点击桌面上的硬盘图标,将文件拷贝到上面即可
3.3. 为什么出现command not found错误
一般是因为将命令发往错误的控制台,区分控制台应该看命令提示符,如果是root@ai2410#就是目标板控制台,否则是主机控制台
3.4. ssh是什么
ssh是一种安全的远程登录协议,可以使用ssh通过网络登录到目标板上获得控制台。
使用ssh来做为控制方式,比传统的串口更方便,功能也更强大。
使用ZIX开发环境,完全可以做到免串口开发。
3.5. 串口看不见任何信息
串口连接故障的原因有很多,可以先排除硬件上的原因,比如开发板,串口电缆是否正常。如果使用虚拟机还需检查虚拟硬件是否正常。
排除外部故障之后,核对两个通信端的串口设置是否匹配。包括波特率,流控制,数据位长度,停止位长度,校验等。
开发环境配备的Kermit工具功能强大,上述缺省配置在~/.mykermrc文件里。键入
Vim ~/.mykermrc
即可打开编辑
Set line /dev/ttyS0 表示使用本机第一个串口
如果使用USB串口转接器,修改成
Set line /dev/ttyUSB0
进入kermit连接后,退出连接状态键入
Ctl+\ c
即同时按下 CTRL 和 \ 再释放,然后按下C键
在命令状态键入 connect 可以进入连接状态,键入 exit 退出 Kermit
3.6. 其它howtos
3.7. 我还有更多的问题
获得最新的ZIX信息,访问自由讨论社区,请登录http://forum.linuxbj.com
软件缺陷报告和最新的缺陷补丁信息,可以访问http://buildserver.zznux.com
获得技术支持,请访问http://www.linuxbj.com或询问mailto:[email protected]
作者: wenshan36 发布时间: 2007-08-03
作者: 卡订之 发布时间: 2007-11-24
作者: lanche 发布时间: 2007-12-24
作者: william_pu 发布时间: 2008-06-04
作者: bsqsbylt 发布时间: 2008-10-18
2.6.12得源代码 MS有点老
不知道跟我以前搞得有什么区别,下个试试
作者: lbc_2008 发布时间: 2008-10-27
ZIX嵌入式开发环境下载
匿名下载ftp服务器
ftp.linuxbj.com
用户名 anonymous+linuxbj.com
密码为空
ZIX-1.6.0.2版下载地址
ftp://anonymous+[email protected]/ZIX/ZIX-1.6.0.2.iso
ZIX-1.6.0.1版下载地址
ftp://anonymous+[email protected]/ZIX/ZIX-1.6.0.1.iso
ZIX-1.6.0版下载地址
ftp://anonymous+[email protected]/ZIX/ZIX-1.6.0.iso
ZIX-1.5.2版下载地址
ftp://anonymous+[email protected]/ZIX/ZIX-arm920t-le-1.5.2-eval.iso
我以网络快车下载需要那个用户名的
作者: snms 发布时间: 2008-10-28
作者: wotacid 发布时间: 2009-01-05
长期以来,Linux下的C/C++开发对很多初学者来说都是一种神秘的东西,并不是因为编程本身有多少难度,而是开发环境太难于搭建了。现在,基于PuppyLinux4.00中文版的浙江传媒学院版Linux0.1正式放出下载了。如图所示,该版本内含了Linux下开发C/CPP以及GUI设计所需的全套软件,光盘开机后无需安装、无需配置直接可在菜单中找到开发环境。而且本系统还支持硬盘安装、通用PuppyLinux的所有软件。

下载地址如下:
miniISO 适用于3.5'微型光盘
zjicm.iso
4合一iso
http://www.filefactory.com/file/ahdb8d6/n/pdsqun2008_iso
iso中同时包含 传媒开发版\slitaz \dsl \ubuntu网络安装 4种Linux,均为自由软件。
可直接刻盘或用虚拟器试用。
因本项目暂无资助,下载为免费空间,需选择
Try FileFactory's Basic service点击“» Download with FileFactory Basic”后,输入验证码,即可得到下载链接。
请您和我一起,放弃盗版,选择自由。
zhblue
注:PuppyLinux商标为Barry Kauler版权所有
作者: wotacid 发布时间: 2009-01-06
还有这个软件无法在微软虚拟机软件里面运行,可以进入系统界面,无法启动进入开发界面
作者: zhblue 发布时间: 2009-01-06
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28