文档库 最新最全的文档下载
当前位置:文档库 › 基于ubuntu10.1的嵌入式开发环境构建

基于ubuntu10.1的嵌入式开发环境构建

基于ubuntu10.1的嵌入式开发环境构建
基于ubuntu10.1的嵌入式开发环境构建

基于ubuntu10.1的嵌入式开发环境构建

Ubunut10.10已经给我们安装好了GCC,但没有安装G++,所以我们要自己安装G++,只要在终端那边输入:sudo apt-get install g++ 即可。安装完G++,就可以安装交叉编译器了。

Step1:下载 arm-linux-gcc-4.4.3.tgz到tmp文件夹,然后进入到该目录,执行解压命令:

#cd /tmp

#tar xvzf arm-linux-gcc-4.4.3.tgz (注:#是要在root下执行;根据下载压缩包的不同命令有所不同,也可以直接在图形方式下右击键选择解压)

执行该命令,将把 arm-linux-gcc 安装到/usr/loca/arm/4.4.3 目录。

Step2:把编译器路径加入系统环境变量,运行命令:

#gedit /root/.bashrc

编辑/root/.bashrc 文件,在最后一行添加:

export PATH=$PATH: /opt/FriendlyARM/toolschain/4.4.3/bin

保存退出。

Step3:重新登录系统(sudoinit 6),使以上设置生效,在命令行输入:

$su

转换成root,执行#arm-linux-gcc –v,会出现信息GCC version 4.4.3,这说明交叉编译环境已经成功安装。(推出root,ctrl+d)

Step4:安装minicom。推荐使用PuTTy(也可以安装minicom),在终端输入

#apt-get install putty

安装成功后“应用程序”菜单中有PuTTy。

注意:如果你是用笔记本的,开发板与本本连接的时候,在ubuntu下端口是ttyUSB0,但在windows下,端口是COM4.

Setup5:安装nfs(ubuntu10.04前有图形设置界面):

1.设置共享目录

运行命令

#gedit /etc/exports

编辑 nfs 服务的配置文件(注意:第一次打开时该文件是空的),添加以下内容:

/opt/arm_share *(rw,sync,no_root_squash)

其中:

/opt/arm_share 表示 nfs 共享目录,(可以改成其他路径)它可以作为开发板的根文件系统通过 nfs 挂接;

?表示所有的客户机都可以挂接此目录

?rw 表示挂接此目录的客户机对该目录有读写的权力

?no_root_squash 表示允许挂接此目录的客户机享有该主机的 root 身份

如果只修改了/etc/exports文件,并不总是要重启nfs服务。可以使用exportfs工具重新读取

/etc/exports,就可以加载输出的目录。exportfs工具语法如下:

exportfs [-aruv]

?-a : 全部挂载(或卸载) /etc/exports的设置。

?-r : 重新挂载/etc/exports的设置,更新/etc/exports和/var/lib/nfs/xtab里面的内容。

?-u : 卸载某一个目录。

-v : 在输出的时候,把共享目录显示出来。

在nfs已经启动的情况下,如果又修改了/etc/exports文件,可以执行命令:

$ exportfs -ra

系统日志文件/var/lib/nfs/xtab中可以查看共享目录访问权限,不过只有已经被挂载的目录才会出现在日志文件中。

2.安装nfs-kernel-server

# apt-get installnfs-kernel-server

3.启动 NFS 服务的方法和步骤:

在命令行下运行:

#/etc/init.d/nfs-kernel-server start

使用这个命令可以停止 nfs 服务:

#/etc/init.d/nfs-kernel-server stop

NFS服务重启:

#/etc/init.d/nfs-kernel-server restart

NFS服务运行状态:

#/etc/init.d/nfs-kernel-server status

4.连接nfs服务器

通过上面的配置后,客户机便可通过简单的mount命令将nfs共享资源挂载到本地来了,之后可以如同操作本地文件系统一样使用。

1)查看nfs服务器的共享资源

在客户机连接nfs共享资源前,通常要用showmount命令查看一下nfs服务器上的共享资源情况,了解是否有权限访问。showmount命令查看某台nfs服务器上都有哪些nfs共享资源。showmount命令包含在nfs-kernel-server软件包中,一般语法格式是:showmount [dehv] nfssrvname

其中nfssrvname表示nfs服务器主机名,也可用IP地址各选项如下:

-d :显示客户端所挂载的共享目录

-e: 显示nfs服务的导出共享目录列表

-h: 显示帮助信息

-v: 显示版本

单独使用showmount命令,将显示本地主机/etc/exports配置文件中的共享配置项。

2)挂载共享资源

可以通过mount命令在客户机端挂载nfs服务器端的共享资源。mount命令的一般语法格式是:

# mount -t nfslocalhost: /opt/arm_share /mnt/

这将启动 nfs 服务,可以输入以下命令检验 nfs 该服务是否启动。如果没有出现错误信息,您将可以浏览到/mnt目录中的内容和opt/arm_share是一致的。

其中,localhost表示nfs服务器主机名,也可用IP地址;arm_share表示nfs服务器导出的共享资源目录(可以是其它目录),必须用绝对路径,与localhost用":"号隔开;mnt表示共享资源将挂载到客户端主机上的位置,在挂载前一定要确保挂载目录已经存在。如果nfs服务器上没有给予授权,客户端仍强行挂载某些共享目录,则会被拒绝,执行失败。

3)卸载共享资源

在使用完nfs服务器共享资源后,建议即刻卸载nfs文件系统。卸载命令umount一般语法格式是:

#umount /mnt

其中mnt表示共享资源在客户端的挂载点。

注意:当有用户在使用某个已加装的共享目录上的文件时(在挂载点下要退出才能卸载),则不能卸载在

文件系统。如果用户确认无误,可使用"umount -f"命令强行卸载共享的目录。

Setup 6:ssh服务安装):

$sudo apt-get installopenssh-server

(查看返回的结果,如果没有出错,则用putty、SecureCRT、SSH Secure Shell Client等SSH 客户端软件,输入您服务器的 IP 地址。如果一切正常的话,等一会儿就可以连接上了。并且使用现有的用户名

和密码应该就可以登录了。)

然后确认sshserver是否启动了:(或用“netstat -tlp”命令)

$ps -e | grepssh

如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说

明ssh-server已经启动了。

ssh-server配置文件位于/ etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。然后重启SSH服务:

$sudo /etc/init.d/sshresart

注:telnet、ssh

1.TELNET

使用Telnet这个用来访问远程计算机的TCP/IP协议以控制你的网络设备相当于在离开某个建筑时大喊你的用户名和口令。很快会有人进行监听,并且他们会利用你安全意识的缺乏。传统的网络服务程序如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很

容易受到“中间人”(man-in-the- middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和

你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。

2.SSH

SSH是替代Telnet和其他远程控制台管理应用程序的行业标准。SSH命令是加密的并以几种方式进行保密。SSH有很多功能,它既可以代替 telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。SSH(Secure SHell)到目前为止有两个不兼容的版本——SSH1和SSH2。

SSH1又分为1.3和1.5两个版本。SSH1采用DES、3DES、Blowfish和RC4等对称加密算法保护数据

安全传输,而对称加密算法的密钥是通过非对称加密算法(RSA)来完成交换的。SSH1使用循环冗余校验

码(CRC)来保证数据的完整性,但是后来发现这种方法有缺陷。

SSH2避免了RSA的专利问题,并修补了CRC的缺陷。SSH2用数字签名算法(DSA)和Diffie-Hellman(DH)算法代替RSA来完成对称密钥的交换,用消息证实代码(HMAC)来代替CRC。同时SSH2增加了AES和Twofish等对称加密算法。

注:均需在服务器端配置相应的服务

实验三 搭建嵌入式系统开发环境

实验三搭建嵌入式系统开发环境 一、实验目的: 1.掌握嵌入式开发环境的配置; 2.掌握开发工具链的安装与配置; 3.掌握嵌入式系统内核和根文件系统的烧写的过程。 二、实验内容: 1)安装配置嵌入式开发环境; 2)安装与配置工具链; 3)内核和根文件系统的烧写 三、实验设备及工具: 硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。 软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。 四、实验步骤: 1.共享windows下内核文件至linux环境下,并将文件复制至个人开发目录中 2.进入目录,输入make menuconfig,对内核进行裁剪配置 3.编译内核之前输入make clean清理编译环境 4.输入make dep 编译相关依赖文件 5.输入make zImage 输出最终编译后的镜像文件 6.将镜像文件共享至windows环境下 7.在windows打开超级终端,进入vivi,将镜像文件烧录至实验箱开发板中 五、实验总结: 通过本次实验,熟悉了Linux 开发环境,学会了如何进行linux内核的烧写。在实验

过程中了解到Linux内核模块的组成结构,通过本次实验,初步了解嵌入式开发的基本过程。 实验四嵌入式驱动程序设计 一、实验目的: 1.学习在LINUX 下进行驱动设计的原理 2.掌握使用模块方式进行驱动开发调试的过程 二、实验内容: 在PC 机上编写简单的虚拟硬件驱动程序并进调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。 三、实验设备及工具: 硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。 软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。 四、预备知识: 1.有 C 语言基础。 2.掌握在Linux 下常用编辑器的使用。 3.掌握Makefile 的编写和使用。 4.掌握Linux 下的程序编译与交叉编译过程。 5.有驱动开发的基本知识。 五、实验步骤: 1.进入/arm2410cl/exp/drivers/01_demo,使用vi 编辑器或其他编辑器阅读理解源代码 2.使用makefile编译驱动模块与测试程序,编译器采用armv4l-unknown-linux-gcc 3.将编译后的驱动模块demo.o和测试程序test_demo挂载到实验箱上 4.插入驱动模块demo.o 执行命令insmod demo.o 5.查看驱动是否插入成功,执行命令lsmod demo.o 6.运行测试程序,查看执行结果

嵌入式Linux开发环境搭建

第一章Ubuntu 8.10的安装和网络配置 1.安装虚拟机软件Vmware 6.0.2 虚拟机安装版本Vmware 6.0.2的版本 在winxp操作系统下用鼠标双击VMware-workstation-6.0.2-59824图标,开始安装虚拟机Vmware,如下图所示: 双击VMware-workstation-6.0.2-59824图标,出现vmware的安装界面,所有的选项都采用默认值,用鼠标点【下一步】,然后出现安装进度条,系统开始安装vmware,等待安装完成后,出现如下安装完成界面: 用鼠标点【Finish】,虚拟机安装完成。系统提示重新启动计算机,选择【是】重新启动计算机,电脑重新启动后,虚拟机安装完成。 2.新建虚拟机 打开Vmware虚拟机软件,选【File】->【New】->【Virtual Machine】,弹出新建虚拟机向导对话框,注意以下几个重要的选项,其他都采用默认选项即可。 选择操作系统和版本,如下图所示:

选择虚拟机名称和存放的路径,如下图所示: 设置虚拟机硬盘大小为20G ,如下图所示:

点击【完成】按钮,这样我们就新建了一个虚拟机,下面我们设置一下虚拟机的内存,步骤如下: 点击虚拟机Vmware的【VM】->【settings】时菜单,弹出虚拟机设置对话框,设置虚拟机使用的内存为512M或1024M,如下图所示:

点击【OK】按钮,这样我们就新建了一个虚拟机,该虚拟机的硬盘为20G, 内存为512M .接着我们就可以在该虚拟机上安装ubuntu操作系统了。 注: 键盘和鼠标控制权在虚拟机和Windows系统之间的切换是通过组合键【Ctrl】+【Alt】来实现的。 3 安装Linux操作系统ubuntu Ubuntu安装版本ubuntu 8.10 点击vmware软件工具栏上的【绿色箭头】启动虚拟机,如下图所示:

建立嵌入式linux开发环境实验

嵌入式linux开发环境的建立 一、创建文件:vi hello.c如下: 二、安装交叉编译器: arm-linux-gcc-3.4.6-glibc-2.3.6.tar 步骤1、把交叉编译链考贝到任意目录下,并解压:tar zxvf arm-linux-gcc-3.4.6-glibc-2.3.6.tar –C / 2、把以上路径添加到/etc/profile文件的最后:export PATH=$PATH:/gcc-3.4.6-glibc-2.3.6/arm-linux/bin 3、输入命令使环境变量立即生效:source /tec/profile 4、测试是否安装成功:arm-linux-gcc–v 如果显示版本号,则安装成功。 5、编译C文件:arm-linux-gcc hello.c–o hello 三、配置tftp服务步骤

1、检查系统有无安装包:用命令:rpm –aq | grep tftp,如有安装包的版本号,说明系统已有相应的安装包; 2、配置服务器,打开文件:vi /etc/xinetd.d/tftp,显示如下桌面service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = yes } 然后编辑将disable改为no,其他不变 3、重启xinetd服务:service xinetd restart, 停止 xinetd: [ 确定 ] 启动 xinetd: [ 确定 ] 4、输入如下命令:netstat –a | grep tftp,如果出现如下画面

嵌入式开发环境搭建步骤

嵌入式开发,通常都是在Linux环境下编译Uboot、Linux和android代码。编译uboot/Linux可以选择任何的Linux发行版,如redhat,suse,ubuntu,fedora,debian等,只要你配置好ARM交叉工具编译工具就可以了。 编译android,搭建环境最容易的就是ubuntu。google的官方网站上,也有搭建编译android的简单介绍,可以搜索下,网络上有相当多这方面的说明。 考虑到我们学习嵌入式的平台是Fast Models,以及自动的Realview EB模型硬件平台。而ARM官方推荐是在Redhat Enterprise(4,5,6)下安装Fast Models。所以,我们采用Redhat Enterprise 6作为开发环境。我们可以直接在电脑上安排RHEL6,也可以先安装vmware,然后在vmware中创建一个虚拟机,在虚拟机上安装RHEL6。在这里,小编是采用后者方式。 搭建Redhat Enterprise 6开发环境,建议做以下配置: 1)设置静态IP。在之前使用vmware的经历,发现如何网站采用dhcp方式,那么rhel6的IP地址有可能会发现改变。而我们需要网络IP最好是固定的,所以需要设置静态IP。RHEL6的静态IP的设置方法,可以搜索到。 2)开启ssh,samba服务 ARM嵌入式开发,基本上都是在命令(shell)方式下进行的,不需要图形界面。所以,在windows上运行vmware,vmware上虚拟机再运行rdel6的情况下,为了不增加windows系统的负荷,可以把vmware放在后台运行,使用ssh服务登陆到rdel6就可 以进行嵌入式开发了。 小编在开发嵌入式时,通常都是使用sourceinsight阅读、修改代码,然后在shell运 行命令进行编译。所以,开通samba服务,然后使用windows已安装的sourceinsight 工具,阅读放在rdel6上的Linux/uboot代码。 在Redhat发行版下,有关服务器的开启或关闭,可以在root用户下,使用setup命 令进入配置选项的“System Services”菜单下进行设置。 samba服务在菜单选项为:“smb”;ssh服务在菜单选项为:“sshd” 需要注意的是:windows下,要使用ssh服务/samba服务登陆vmware虚拟机上的rhel6,必须把rhel6上的防火墙关掉。setup命令--->Firewall Configuration--->去掉Enable。

嵌入式系统开发环境实验

嵌入式系统开发环境实验 一实验目的与要求 1.熟悉Linux系统环境。 2.了解实验板的结构组成。 3.了解嵌入式系统开发的基本知识。 4. 熟悉嵌入式Linux交叉编译环境的建立过程,并通过一个HelloWorld程序的编写、编译、下载运行及调试过程,了解嵌入式开发的基本方法和流程。 二实验设备与软件环境 1.硬件:SemitARM9200开发板,PC机PIII800MHz,256MB以上,串口线(公母)1条,网线1条,7.5V 电源1个。 2.软件:RedHat 9.0以上Linux操作系统. 三实验原理 1.宿主机开发环境 绝大多数的Linux软件开发都是以Native方式进行的,即本机(Host)开发、调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为嵌入式系统没有足够的资源在本机(即板子上系统)运行开发工具和调试工具。通常的嵌入式系统的软件开发采用一种交叉编译调试的方式,交叉编译调试环境建立在宿主机(即一台PC机)上,对应的开发板叫做目标板。如下图所示。 开发时使用宿主机上的交叉编译、汇编及链接工具形成可执行的二进制代码,(这种可执行代码不能在宿主机上执行,而只能在目标板上执行)然后把可执行文件下载到目标机上运行。一般调试的方法包括串口调试和以太网口调试。对于本实验板,目前可采用串口调试,操作系统经过修改可以实现以太网口调试。宿主机和目标板的处理器一般都不相同,宿主机为Intel或AMD处理器,而目标板如本实验板的处理器为ATMEL AT91RM9200 。GNU编译器提供这样的功能,在编译时可以选择开发所需的宿主机和目标机从而建立开发环境。所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC机作宿主开发机,宿主机上的操作系统一般要求安装Linux,但Linux由多个发行版本,在此,我们推荐使用Redhat 9.0作为本实验板的宿主机PC操作系统(https://www.wendangku.net/doc/048758536.html,可以下载)。然后要在宿主机上建立交叉编译调试的开发环境。环境的建立需要许多的软件模块协同工作,这将是一个比较繁杂的工作,但现在只要安装我们提供的光盘,开发软件包及GNU编译工具已完全自动完成了。 当开发环境安装完毕后,会在根目录下生成两个目录:工作目录/home/arm和交叉编译环境目录/usr/local/arm。

实验三(ARM编程环境的熟悉及寻址方式实验)

实验三ARM编程环境熟悉及寻址方式实验 注意:本实验在模拟环境下进行!! 一、实验目的: 1、进一步熟悉ARM的编程工具MDK; 2、深刻理解ARM汇编指令中标号的本质; 3、熟悉ARM寻址方式(寄存器寻址、寄存器间接寻址等); 二、实验步骤: 1、参照实验二的步骤,建立工程exp 2、设置工程、建立源文件 exp2.s并将其添加到工程,在exp2.s中输入如下代码(可复制):;广州大学华软软件学院 ;文件名:exp2.s ;功能: ;作者: ;日期: ;修改: area init,code,readonly entry ldr r0,=data1;将标号data1的值送给r0 ldr r1,=data2; ldr r2,=data3 ldr r0,[r0]

ldr r1,[r1] add r0,r0,r1 str r0,[r2] b .;相当于while(1) data1 dcd 12;定义一个字,初值为12 data2 dcd 13;定义一个字,初值为13 data3 dcd 0;定义一个字,初值为0 end 2、编译正确后调试(可参照实验二),注意Ro_Base设置为 0x30000000,点击下图菜单中的菜单项,调出内存单元观察窗口。

会弹出如下界面:

点击current,就会看到当前模式下的寄存器 按F10进行单步调试,同时观察寄存器中的变化; 反汇编界面: 出现如下界面:鼠标右键,如图选中,即可看到源代码的反汇编窗口。

我们发现data1代表的地址是0x30000020,data2代表的地址是0x30000024,data3代表的地址是0x30000028。好,我们现在通过memory窗口来查看这些内存单元的内容: 在存储单元窗口输入0x30000020(如下图所示),观察存储单元中的 值,是不是我们程序所运行的结果呢?

嵌入式软件开发流程图

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

实验1(嵌入式开发环境实验)

实验1:嵌入式Linux开发环境 一、实验目的 熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。 二、实验内容 1、在linux系统下,利用C语言来编写应用程序,并进行交叉编译,生成可在目标实验台上运行的目标文件。 2、建立宿主机与目标实验台仿真终端连接,为目标实验台建立Linux系统终端窗口。 3、建立宿主机与目标实验台的共享连接,以便下载和运行最终可执行文件。 三、预备知识 C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。 四、实验设备及工具(包括软件调试工具) 硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。 软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境 五、主要实验步骤: 1、打开PC宿主机电源,选择进入Linux系统。在PC宿主机的/arm2410s/exp/Basic目录中创建用户个人工作目录,例如“cao”。 2、单击鼠标右键选择“新建终端”,建立宿主机Linux命令终端窗口,在[root@localhost root]#命令提示符下进入个人工作目录“cao”中。 即:[root@localhost root]#cd /arm2410s/exp/basic/cao 3、利用“vi”编辑hello应用程序,并保存为hello.c文件。 即:#cd /arm2401s/exp/Basic/cao #vi hello.c 进入vi编辑窗口,编辑hello.c文件…… 4、利用“gcc –o”命令对hello.c文件进行编译,生成可在PC宿主机上执行的目标文件hello.pc。 即:#gcc –o hello.pc hello.c, 为了验证结果正确性,可在PC宿主机上执行hello.pc文件。 即:#./hello.pc 5、为了在实验台上下载运行hello文件,需要对hello源文件进行交叉编译,以便生成能够在实验台上运行的目标文件。利用“armv4l-unknown–Linux-gcc –o命令”进行交叉编译,生存目标文件hello.o。 即:# armv4l-unknown-Linux-gcc -o hello.o hello.c (注意:这里的“armv4l-unknown–Linux-gcc –o”交叉编译命令输入方法是使用键盘输

ARM实验报告

湖南科技学院ARM嵌入式设计实验报告题目:基于ARM嵌入式系统跑马灯的设计 专业:电子信息工程 班级:电信1102班 姓名:段相辉 学号:201106002232 指导教师:陈光辉 2014年11 月

目录 摘要............................................. 错误!未定义书签。ABSTRACT .......................................... Ⅰ错误!未定义书签。 1 题目要求 (1) 2 设计软件的安装 (2) 3 开发平台的搭建 (22) 4 项目设计 (23) 4.1 设计思路概述 (2) 4.1.1 设计层次介绍 (2) 4.1.2 设计模块介绍 (3) 5总结 (6) 致谢 (25) 参考文献 (26) 附录 (27)

引言 随着生活水平的提高和IT技术的进步,8位处理器的处理能力已经不能满足嵌入式系统的需要了;而16位处理器在性能和成本上都没有很大的突破。并且在8位机的开发中,大多使用汇编语言来编写用户程序。这使得程序的可维护性、易移植性等都受到了极大的挑战。正是基于此,ARM公司适时的推出了一系列的32位嵌入式微控制器。目前广泛使用的是ARM7和ARM9系列,ARM7TDMI内核的ARM7处理器广泛应用于工业控制、仪器仪表、汽车电子、通讯、消费电子等嵌入式设备。

1、题目要求 构建嵌入式Linux开发环境,熟悉linux的命令操作,并在嵌入式Linux 开发环境中设计跑马灯。 2、设计软件的安装 2.1 VMware Player简介 (a) VMware Workstation是一个“虚拟机”软件.它使用户可以在一台机 器上同时运行多个操作系统. (b) VMware Player是VMware Workstation的精简版,最初只是虚拟机的“播放机”, 但最新版本的已经具有创建虚拟机的功能.具有体积小,使用灵活,免费等特点. (c) 多个操作系统在主系统的平台上,可像Windows应用程序那样切换.而且每个操作系统都可以进行虚拟的分区、配置而不影响真实硬盘的数据. (d) 利VMware Player创建虚拟机

嵌入式Linu 系统开发教程很完整的习题答案

参考答案 第一章 一、填空题。 1、嵌入式系统主要融合了计算机软硬件技术、通信技术和微电子技术,它是将计算机直接嵌入到应用系统中,利用计算机的高速处理能力以实现某些特定的功能。 2、目前国内对嵌入式系统普遍认同的定义是:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、嵌入式系统一般由嵌入式计算机和执行部件组成,其中嵌入式计算机主要由四个部分组成,它们分别是:硬件层、中间层、系统软件层以及应用软件层。 4、嵌入式处理器目前主要有ARM、MIPS、Power PC、68K等,其中arm

处理器有三大特点:体积小、低功耗、的成本和高性能,16/32位双指令集,全球合作伙伴众多。 5、常见的嵌入式操作系统有:Linux、Vxworks、WinCE、Palm、uc/OS-II 和eCOS。 6、嵌入式系统开发的一般流程主要包括系统需求分析、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最后得到最终产品。 二、选择题 1、嵌入式系统中硬件层主要包含了嵌入式系统重要的硬件设备:、存储器(SDRAM、ROM等)、设备I/O接口等。(A) A、嵌入式处理器 B、嵌入式控制器 C、单片机 D、集成芯片 2、20世纪90年代以后,随着系统应用对实时性要求的提高,系统软件规模不断上升,实时核逐渐发展为,并作为一种软件平台逐步成

为目前国际嵌入式系统的主流。(D) A、分时多任务操作系统 B、多任务操作系统 C、实时操作系统 D、实时多任务操作系统 3、由于其高可靠性,在美国的火星表面登陆的火星探测器上也使用的嵌入式操作系统是。(B) A、Palm B、VxWorks C、Linux D、WinCE 4、嵌入式系统设计过程中一般需要考虑的因素不包括:(D) A、性能 B、功耗 C、价格 D、大小 5、在嵌入式系统中比较流行的主流程序有:(A)

ARM开发环境搭建 eclipse for arm实验报告

实验报告 实验题目 ARM开发环境搭建 eclipse for arm 姓名: 学号: 课程名称: 所在学院: 专业班级: 任课教师:

一、实验目的与要求: 1、掌握 ARM 汇编语言的基本使用和一些伪指令的使用; 2、熟悉 eclipse 开发工具建立汇编工程和仿真;

四、实验过程、步骤及内容 1、win7环境安装FS_JTAG工具 (1)安装GCC 编译工具 双击安装“华清远见-CORTEXA9 资料\工具软件\Windows\FS-JTAG\Yagarto 工具包”目录下的文件:yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.190_gdb-7.3.1_eabi_20111119.exe (2)装Yagarto 工具包 双击安装“华清远见-CORTEXA9 资料\工具软件\Windows\FS-JTAG\Yagarto 工具包”目录下的文件:yagarto-tools-20100703-setup.exe (3)安装FS_JTAG调试软件 双击“x包”下的setup.exe安装 FS_JTAG工具 (4)安装FS_JTAG驱动

将FS_JTAG通过USB线与PC连接,右键点击“我的电脑”选择“管理”,在左侧栏里选择“设备管理”选择“其他设备”右键点击选择“更新驱动” 选择“浏览计算机以查询驱动程序软件(R)”; 点击浏览选择“FS-JTAG 调试工具(安装包)\DRIVER”目录主要“包括子文件夹”必须选择,点击“下一步”。 安装过程出现上图提示,点击“始终安装此驱动程序软件(I)“继续安装

点击“关闭“完成安装 注意:此安装过程需要进行 3 次,直到设备管理器中没有叹号标记或未知设备。这是设备管理器中会出现如下选项:如果下面选项没有全部出现,右键点击有黄色叹号的选项更新驱动,过程同上。 (5)安装JRE 双击安装“华清远见-CORTEXA9 资料\ 工具软件\Windows\FS-JTAG\JRE ”目录下的文件: jre-6u7-windows-i586-p-s.exe

ARM嵌入式系统实验实验一参考答案(ADS1.2集成开发环境练习实验)

ARM嵌入式系统实验实验一参考答案(ADS1.2集成开发环境练习实验) 1.实验目的 了解ADS1.2 集成开发环境的使用方法。 2.实验设备 硬件:PC机一台 软件:Windows98/XP/2000 系统,ADS1.2集成开发环境 3.实验内容 (1)建立一个新的工程。 (2)建立一个汇编文件,并添加到工程中。 (3)设置文本编辑器支持中文。 (4)设置编译链接控制选项。 (5)编译链接工程。 (6)调试工程。 4.实验步骤 (1)在D:\新建一个目录,目录名为experiment。启动ADS1.2 IDE集成开发环境,选择【File】-> 【New...】,使用ARM Executalbe Image工程模板建立一个工程,工程名称为ADS,工程目录为D:\experiment。 (2)选择【File】-> 【New…】建立一个新的文件test1.s,设置直接添加到项目中。输入实验程序并保存,此时在工程窗口中可以看到test1.s文件了。 (3)由于ADS安装以后默认字体是Courier New,对于中文支持不完善,因此建议修改字体。选择【Edit】-> 【Perferences…】,在其中的Font选项中设置字体为Fixedays,Script 是CHINESE_GB2312,另外由于Tab在不同文本编辑器解释不同,建议在Tab Inserts Spaces 前打勾,使Tab键插入的是多个空格。 (4)选择【Edit】->【DebugRel Settings…】,在弹出的对话框的左边选择ARM Linker 项,然后在Output页设置链接地址为Simple,其中Ro Base为0x40000000,RW Base为0x40003000;并设置Option页中Image entry Point地址为0x40000000. (5)选择【Project】-> 【Make】,编译链接整个工程,如果编译成功,则Errors&Warnings 对话框会报告编译错误为0,那么就可以对工程进行仿真了。 (6)选择【Project】-> 【Debug】,或者按下F5。IDE环境将会启动AXD调试软件,接着便可以执行单步、全速运行调试。注意,要在AXD的Choose Target窗口中选用ARMUL 软件仿真。断点调试方法:首先设置断点,只需要在第6行灰色区域双击鼠标即可,如果出现红色实心圆点,那么表示断点设置成功,然后选择【Execute】-> 【Go】全速运行可以发现程序停止在第6行。还有一种比较方便的调试方法就是Run to Cursor,单击鼠标第8行灰色区域,如果AXD将第8行高亮就表示设置成功,然后选择【Execute】-> 【Run to Cursor】运行到光标,可以发现程序停止在第8行。 5.实验程序 AREA EXAMPLE1,CODE,READONLY ;声明代码段EXAMPLE1 ENTRY ;标识程序入口 CODE32 ;声明32位ARM指令 START MOV R0,#15 ;设置参数 MOV R1,#8 ; ADDS R0,R0,R1 ;R0=R0+R1 B START END

ARM嵌入式-ADS-1.2-集成开发环境练习实验报告

专业班级: 学号: 实验名称: 姓名: 实验所属课程: 实验室(中心): 指导教师: 实验完成时间:年月日

一、实验目的: 了解ADS 1.2 集成开发环境的使用方法。 二、实验设备: 1.硬件:PC 机一台 2.软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境 三、实验容: 1.建立一个新的工程; 2.建立一个C 源文件,并添加到工程中; 3.设置文本编辑器支持中文; 4.设置编译控制选项; 5.编译工程; 6.调试工程。 四、实验预习要求: 仔细阅读产品光盘附带文档《ADS 集成开发环境及仿真器应用》或其它相关资料,了解ADS 工程编辑的容。 五、实验步骤: 1. 启动ADS1.2 IDE 集成开发环境,选择【File】->【New…】,使用ARM Executable Image 工程模板建立一个工程,工程名称为ADS,见图 2.1。 图2.1 建立ARM 指令代码的工程

2.选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中,见图2.2。输入如程序清单2.1 所示的代码,并保存,见图2.3。 图2.2 新建文件TEST1.S 程序清单2.1 TEST1.S 文件代码 AREA Example1,CODE,READONLY ; 声明代码段Example1 ENTRY ; 标识程序入口 CODE32 ; 声明32 位ARM 指令START MOV R0,#15 ; 设置参数 MOV R1,#8 ADDS R0,R0,R1 ; R0 = R0 + R1 B START END 图2.3 添加了TEST1.S 的工程管理窗口

实验二 ARM环境下汇编语言实验

实验二ARM环境下汇编语言实验 一、实验目的 1、掌握基本的ARM汇编语言编程方法; 2、深入理解ARM开发环境的体系结构; 3、巩固使用AXD调试的方法 二、实验内容 1、单独使用ARM汇编语言编写一个工程,在AXD下调试,观察结果 三、实验设备 1、硬件:DM2410B+实验系统,PC机 2、软件:PC机操作系统(WINDOWS 2000),ARM Developer Suite v1.2 四、预备知识 1、掌握在ADS开发环境下建立工程与调试程序的方法(参考“ADS开发环境实验”与“JTAG 下载和调试实验”); 2、熟悉ARM汇编语言; 3、熟悉S3C2410芯片结构系统和实验系统的硬件资源(参考《DM2410实验系统使用手册》) 五、基础知识 ADS IDE开发坏境集成了CodeWarri or编译器和AXD Debugger调试器。在ADS IDE开发环境中编写的程序必须遵循CodeWarrior编译器所支持的语法规则 1、基于CodeWarrior的汇编语言语法及规则: 一个完整的汇编语句代码由3部分组成: 1)代码的行号:行号后面不用“:”结尾; 2)汇编指令或伪指令部分; 3)注释部分:以“;”开头 2、基于CodeWarrior的汇编语言伪操作 1) AREA伪指令 2)ENTRY伪指令 3)END伪指令 4)EQU指令 3、指令的条件域 当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。 每一条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。 在1 6种条件标志码中,只有1 5种可以使用,第16种(1111)为系统保留,暂时不能使用。 4、存储器访问指令 ARM微处理器支持加载/存储指令用于在寄存器和存储器之间传送数据,加载指令用于将存储器中的数据传送到寄存器,存储指令则完成相反的操作。 常用的加载存储指令如下: ——LDR 字数据加载指令 ——LDRB 字节数据加载指令 ——LDRH 半字数据加载指令 ——STR 字数据存储指令 ——STRB 字节数据存储指令

1嵌入式系统实验环境介绍

《嵌入式系统》课程实验指导书 第一部分实验教学系统硬件介绍 第二部分Embest IDE集成开发环境使用说明 第三部分实验指导

第一部分实验教学系统硬件介绍 1.1教学系统的硬件电路 Embest S3CEV40开发板是实验系统的主要硬件平台,它是英蓓特公司开发的一款全功能ARM开发板,基于Samsung公司的S3C44B0X处理器(ARM7TDMI),资源丰富。硬件系统包含了嵌入式系统开发应用所需的大部分设备,如串口、以太网口、USB口、音频输出、LCD及TSP触摸屏、4*4的小键盘、固态硬盘、大容量的Flash和SDRAM等等。用户不仅可以在该硬件平台上完成实验系统提供的实验例子,还可以参考该平台设计自己的目标系统。 该硬件平台如下图所示: 图1-1 实验系统硬件平台 Embest S3CEV40开发板的基本资源如下: ●电源:外部5V电源供电或者由USB接PC供电,电源指示LED以及500mA保 险丝 ●1M×16bit Flash ●4×1M×16bit SDRAM ●4Kbit IIC BUS的串行EEPROM ●2个串口,其中一个为简单接口,一个为全接线接口,可跳接RS232 MODEM ●复位开关

●两个中断按钮,两个LED ●外部IDE硬盘接口 ●LCD及TSP触摸屏接口 ●20针JTAG接口 ●USB连接器 ●4×4键盘接口 ●4个2×20PIN CPU扩展接口 ●10M 以太网接口 ●8段数码管 ●MICROPHONE输入口 ●IIS音频信号输出口,可接双声道SPEAKER ●固态硬盘16M×8bit ●320*240 带触摸功能的显示屏 Embest ARM教学系统主要功能模块如图1-2 所示:

几种Linux下嵌入式开发环境的简单介绍

几种Linux下嵌入式开发环境的简单介绍 做Linux嵌入式系统的对常见的几种嵌入式开发环境一定不会陌生,由于主要接触网络相关产品的一些系统设计,因此,将可能用到的嵌入式开发环境简要总结一下。主要涉及下面的几个东西: emDebian emDebian基于将Debian用于嵌入式系统的目的而开发。Debian是一个发展很快的项目,良好的在线软件升级系统是Debian成功的原因之一。目前Debian已经支持11个体系的系统,包括X86、PPC、MIPS、ARM、SH等,并包含了大量的软件。这些要归功于Debian 的开发团队,正因为有许多人使用和支持,因此,不是比较偏门的软件,基本上不需要从源码来安装。 这样好的一个系统,当然有人愿意将其用到嵌入式系统中去。emDebian基于一个很简易的嵌入式系统开发的想法来构造嵌入式系统,即从一个成熟的系统中去除不需要的部份(如文档和不需要的工具),精简出一个小的系统,这与下面要介绍的几个工具的想法刚好相反(下面几个都是基于from scratch 即从无到有,从头构建的方式)。emDebian提供一些工具来协助完成从现有的系统或安装包(deb文件,类似Redhat的rpm)中提取需要的东西,并协助完成完整系统的构建,当然也支持交叉构建了,比如你可以在X86 的PC上构建一个基于ARM的嵌入式系统,而整个过程不需要编译任何一行源代码。 buildroot emDebian实际上并不一定适合于资源非常紧缺的超小型系统,比如只有2M Flash的小型控制系统。另外发行版的软件通常会以通用代码来编译,例如,为了尽可能在各种X86平台上都能够安装,大多数发行版通常会以i686甚至i386代码集来编译软件,可以使文件的通用性很强,但CPU的性能却不能发恢到最好(这就是为什么有时会看到一些厂商或爱好者发布PIII、PIV、athlon等优化系统的原因),这对于嵌入式系统来说也不会是一件好事情。另外,没有源码的控制权,一些需要定制的东西也会变得难以实现,因此,从源码开始构建仍然有必要。 嵌入式Linux开发中使用的CPU速度往往向对不会太高,因此,尽可能提高代码的性能就非常必要。通常开发人员应该对该CPU的具体型号有一定的了解,以便启用编译器中对该型号的优化,以ARM为例,我们可以通过-march=armv5te 和-mtune=arm9tdmi 来对代码在ARM9上的运行进行优化。 这种幅度的提升可能只是一个特例,这个算法有大量的复杂浮点运算,使用i386或i686指令集和使用更先进的PIV指令集编译出来的机器代码对于同一个运算的解释可能采用完全不同的指令来完成,因此性能提升较大就不足为奇了。同样这种代码,在ARM上通过ARM4和ARM5来优化后在ARM9上运行,却没有那么大的提升。 那么又如何控制可执行文件的大小呢?除了却除软件中不需要的部份外,我们还应该考虑软件所引用的库文件。GNU的Glibc是一个非常宠大而完整的库,至少对于嵌入式系统来说,其体积显得过于大了一些。uClibc的提出较好的解决了这样一个问题。uClibc尽可能的兼容Glibc,大多数应用程序可以在很小或完全不修改的情况下就可能使用uClibc替代glibc。通过uClibc来代替Glibc,可以在不改变应用程序功能的前提下,大大减少发布文件的大小,无论应用程序以静态链接来编译,还是以动态链接形式编译。 不过使用uClibc代替并不是简单的设置一两个参数就行了,通常需要使用一个不同的工具集(gcc/binutils等)来编译代源码。手工的构造这样一个环境,对于大多数普通程序员

arm开发环境实验

ARM开发环境实验 实验目的 了解ADT IDE集成开发环境。 了解ADT IDE集成开发环境中基本的工程设置及程序编译方法。 掌握ADT IDE集成开发环境中基本的程序调试方法。 实验内容 熟悉ADT IDE集成开发环境。 建立一个基本的leddemo工程。 设置并编译leddemo工程。 调试leddemo工程。 基础知识: 本实验以leddemo程序为例,讲述在ADT IDE集成开发环境下,怎么编写、编译和调试程序。关于ADT IDE的更加详细的说明,可以参考ADT IDE用户手册。 1.连接调试器 本实验箱使用内置的简易调试模块,将计算机并口与实验箱简易JTAG接口通过并口延长线实现连接,并将JP5跳线通过跳线帽短接。 2.编辑编译调试。 建立工程。打开ADT IDE,选择菜单项File->New,弹出New对话框。 选择Project页,在Project页中选择调试设备。对于本实验箱使用简易调试器,选择ARM9SIMPLE。在Project name和Location编辑框中输入工程名称和路径,注意路径和工程名中不能包含空格。在Project type中选择EXEC。 新建一个文件并保存为d:\leddemo\leddemo.c,编辑该文件,添加如下代码: /***************************************************************** ***********/ /*文件名称:LEDSEG7.C */ /*实验现象:数码管依次显示出0、1,2、……9、a、b、C、d、E、F */ /***************************************************************** ***********/ #define U8 unsigned char unsigned char seg7table[16] = { /* 0 1 2 3 4 5 6 7*/ 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, /* 8 9 A B C D E F*/ 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e, }; void Delay(int time);

嵌入式开发环境搭建

第一章开发环境搭建 要想进行嵌入式开发,首先,必须搭建一套完整的嵌入式开发环境。本章讲解在windows xp + Vmware虚拟机(安装Ubuntu10.04)环境下嵌入式开发环境的搭建。 1.1 交叉编译工具链的安装 嵌入式开发必须使用交叉编译工具链。你可以使用里仁提供的交叉编译工具(arm-linux-gcc-3.4.5和arm-linux-gcc-4.3.2),也可以使用crosstool-0.43或crosstool-ng自己编译交叉编译工具链。如何用工具自己编译交叉编译工具链,请参考其他资料。本节只讲解如何使用里仁提供的交叉编译工具链。 交叉编译工具链的安装步骤主要包括拷贝、解压和设置环境变量三部分。 1)拷贝 在主目录中建立工作目录liren,将交叉编译工具链拷贝到该目录下。 在/opt目录下建立virt.arm目录,将交叉编译工具解压到该目录下。操作时注意权限问题,需要加sudo执行命令。 其中,-C参数是制定解压后的存放目录。若不制定默认为当前目录。 查看/opt/virt.arm目录下的交叉编译工具。 arm-linux-gcc-3.4.5和arm-linux-gcc-4.3.2是两个版本的交叉编译器,以备以后使用。其中,arm-linux-gcc-3.4.5将在编译U-boot、文件系统及应用程序时使用;arm-linux-gcc-4.3.2将在编译内核时使用。 2)设置环境变量 把交叉编译工具解压到/opt/virt.arm目录后,编译程序时需要制定交叉编译工具的全路径。例如,在~/liren/test目录下编译“helloworld”。

不能够像gcc那样,直接使用arm-linux-gcc来编译,这是因为还没有设置环境变量。 在~/liren/sh/目录下创建两个脚本文件arm-linux-gcc-3.4.5.sh和arm-linux-gcc-4.3.2.sh。 分别为以下内容: arm-linux-gcc-3.4.5.sh arm-linux-gcc-4.3.2.sh 这两个脚本文件是用来设备环境变量的。 例如,执行source arm-linux-gcc-3.4.5.sh就会把交叉编译器arm-linux-gcc-3.4.5的路径加到PATH环境中。这样,就可以直接使用使用arm-linux-gcc编译程序了。 但是,用这种方法只能临时改变环境变量,退出终端后就失效,因此,在下次使用时需要重新设置。要想让设置长期生效,可以修改/etc/profile文件,在最后一行加上“export PATH=$PATH:/opt/virt.arm/arm-linux-gcc-x.x.x/bin”保存退出即可。不用重启系统,在终端运行“source /etc/profile”设置立即生效。 2.2 网络服务器的安装 在进行嵌入式开发时常常需要目标板和宿主机进行通信。因此,就会用到宿主机的网络服务。常用的网路服务有TFTP和NFS。下面介绍在Ubuntu10.04环境下安装TFTP和NFS 的方法。 2.2.1 安装配置TFTP服务 安装TFTP服务的步骤为: 安装tftp-hpa(客户端)和tftpd-hpa(服务器); 修改配置文件; 根据配置文件的路径,建立tftp目录,并修改目录权限; 重启tftp服务; 本地传输测试。

相关文档