当前位置:文档之家› 嵌入式Linux系统设计报告

嵌入式Linux系统设计报告

嵌入式Linux系统设计报告
嵌入式Linux系统设计报告

嵌入式Linux系统设计报告

一、硬件设备介绍

此次实验用的板子是韦东山的JZ2440V2,JZ2440V2是一款基于ARM9的开发板,采用Samsung S3C2440 芯片,并采用专业稳定的CPU 内核电源芯片和复位芯片来保证系统运行时的稳定性。在进行器件地址说明之前,有一点需要注意,nGCS0 片选的空间在不同的启动模式下,映射的器件是不一样的。

在NAND Flash启动模式下,内部的4KBytes BootSram被映射到nGCS0 片选的空间;在Nor Flash启动模式下( 非Nand Flash 启动模式) ,与nGCS0 相连的外部存储器Nor Flash 就被映射到nGCS0 片选的空间SDRAM 地址空间:0x30000000 ~ 0x34000000。

嵌入式Linux系统的移植主要有U-Boot、Linux内核、文件系统这三部分。Uboot是在系统上电时开始执行,初始化硬件设备,准备好软件环境,然后才调用Linux操作系统内核。文件系统是Linux操作系统中用来管理用户文件的内核软件层。文件系统包括根文件系统和建立于Flash内存设备之上文件系统。根文件系统包括系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件,并作为存储数据读写结果的区域。

二、Linux系统移植步骤

1. 准备工作,包括下载源码、建立交叉编译环境等。交叉开发是指在开发主机上安装开发工具,编辑、编译目标板的引导程序、内核和文件系统,使其能在目标板上运行。

2. 配置和编bootloader(引导装载程序)。通过这段小程序,可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统硬件环境,为最终调用操作系统内核做好准备。

3.配置和编译Linux内核,对其进行相应的裁剪,修改内核以支持相关的硬件设备。

4. 为大容量NAND Flash移植YAFFS文件系统,并将该文件系统加入Linux 内核中。

5.制作RAMdisk来挂载根文件系统。Linux系统中的文件和设备是通过文件系统来组织的。文件系统的存在使得数据和设备可以被有效而透明地存取访问。一个linux的最简根文件系统应该包括支持linux系统正常运行的基本内容,包括系统使用的软件和库,以及所有用来为用户提供基本支持的架构和指令。

6. 烧写、调试系统;如果调试出错,则需要重新配置,返回上述步骤(2)。

三、U-Boot移植

3.1.U-Boot简介

U-Boot全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。其目前要支持的目标操作系统是OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS。这是U-Boot 中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。就目前来看,U-Boot对PowerPC系列处理器支持最为丰富,对Linux的支持最完善。其它系列的处理器和操作系统基本是在2002年11月PPCBOOT改名为U-Boot后逐步扩充的。从PPCBOOT向U-Boot的顺利过渡,很大程度上归功于U-Boot的维护人德国DENX软件工程中心Wolfgang Denk[以下简称W.D]本人精湛专业水平和持着不懈的努力。当前,U-Boot项目正在他的领军之下,众多有志于开放源码BOOT LOADER移植工作的嵌入式开发人员正如火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入,以支持更多的嵌入式操作系统的装载与引导。

3.2. U-Boot移植的方法

U-Boot移植方法当前,对于U-Boot的移植方法,大致分为两种。一种是先用BDI2000创建目标板初始运行环境,将U-Boot镜像文件u-boot.bin下载到目标板RAM中的指定位置,然后,用BDI2000进行跟踪调试。其好处是不用将U-Boot镜像文件烧写到FLASH中去。但弊端在于对移植开发人员的移植调试技能要求较高,BDI2000的配置文件较为复杂。另外一种方法是用BDI2000先将U-Boot镜像文件烧写到FLASH中去,然后利用GDB和BDI2000进行调试。这种方法所用BDI2000的配置文件较为简单,调试过程与U-Boot移植后运行过程相吻合,即U-Boot先从FLASH中运行,再重载至RAM中相应位置,并从那里正式投入运行。唯一感到有些麻烦的就是需要不断烧写FLASH。但考虑到FLASH 常规擦写次数基本为10万次左右,作为移植U-Boot,不会占用太多的次数,应

该不会为FLASH烧写有什么担忧!U-Boot移植要点①BDI2000的配置文件。如果采用第二种移植方法,即先烧入FLASH的方法,配置项只需很少几个,就可以进行U-Boot的烧写与调试了。对PPC 8xx系列的主板,可参考DULG文档中TQM8xx的配置文件进行相应的修改。

3.3. 移植U-Boot的常见问题

在移植U-Boot的过程中会遇到很多问题,最主要的是一开始无法启动U-Boot。代码中很多地方设置有误都会导致无法启动,对于Stage1的代码来说,系统的出错信息是无法打印到串口或者其他设备的,此时可以使用JTag调试器调试目标开发板。对于汇编编写的代码,一般都与系统硬件息息相关,在编写的时候需要非常仔细。最好准备好ARM体系结构手册和S3C2440A芯片手册,并且认真阅读编程模型相关的章节,对硬件的初始化流程要细心分析。

四、Linux内核移植

4.1.内核简介

Linux 内核主要由5个模块构成,它们分别是:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。

进程调度模块用来负责控制进程对CPU资源的使用。所采取的调度策略是各进程能够公平合理地访问CPU,同时保证内核能及时地执行硬件操作。内存管理模块用于确保所有进程能够安全地共享机器主内存区,同时,内存管理模块还支持虚拟内存管理方式,使得Linux支持进程使用比实际内存空间更多的内存容量。并可以利用文件系统把暂时不用的内存数据块交换到外部存储设备上去,当需要时再交换回来。文件系统模块用于支持对外部设备的驱动和存储。虚拟文件系统模块通过向所有的外部存储设备提供一个通用的文件接口,隐藏了各种硬件设备的不同细节。从而提供并支持与其他操作系统兼容的多种文件系统格式。进程间通信模块子系统用于支持多种进程间的信息交换方式。网络接口模块提供对多种网络通信标准的访问并支持许多网络硬件。

4.2. 内核移植要点

Linux的代码完全开放以及其良好的结构设计非常适于嵌入式系统。移植Linux系统包括内核、程序库和应用程序,其中最主要的就是内核移植。由于Linux 内核的开放性,出现了许多针对嵌入式硬件系统的内核版本,其中著名的包括μcLinux、RT-Linux等。Linux本身对内存管理(MMU)有很好的支持。因此,在移植的时候首先要考虑到目标硬件平台是否支持MMU。以ARM平台为例,ARM7内核的CPU不支持MMU,无法直接把Linux内核代码移植到ARM7核

的硬件平台上。μcLinux是专门针对ARM7这类没有MMU的硬件平台上设计的,它精简了MMU部分代码。本实验的目标平台是S3C2440A,该处理器基于ARM9核,支持MMU,可以直接移植Linux 2.6版本的内核代码。

4.3.移植Linux内核对硬件的要求

1.目标平台

目标平台包括了嵌入式处理器和周围器件,处理器可能整合了一些周围器件,如中断控制器、定时器、总线控制器等。在移植之前需要确定被移植系统对外部设备和总线的支持情况。本书的ARM开发板采用JZ2440V2平台,在S3C2440A外围连接了许多外围设备,包括NOR Flash存储器、NAND Flash存储器、网络接口芯片、USB控制器等。在S3C2440A处理器内部集成了许多常用的控制器以及嵌入式领域常用的总线控制器。对于移植Linux内核来说,操作处理器内部的控制器要比外部的设备容易得多。

2.内存管理单元(MMU)

前面提到过MMU,对于现代计算机来说,MMU负责内存地址保护、虚拟地址和物理地址相互转换工作。在使用MMU的硬件平台上,操作系统通过MMU 可以向应用程序提供大于实际物理内存的地址空间,使应用程序获得更高性能。Linux的虚拟内存管理功能就是借助MMU实现的。在移植的时候要考虑目标平台的MMU操作机制,这部分代码是较难理解的,最好能在相似代码基础上修改,降低开发难度。

3. 内存映射

嵌入式系统大多都没有配备硬盘,外部存储器只有Flash,并且系统内存也非常有限。内存控制器(Memory Controller)负责内部和外部存储器在处理器地址空间的映射,由于硬件预设的地址不同导致每种平台内存映射的地址也不同。在移植时需要参考硬件的用户手册,得到内存地址的映射方法。

4.存储器

由于嵌入式系统多用Flash存储器作为存储装置。对于文件系统来说,在PC 流行的ext2、ext3文件系统在嵌入式系统无法发挥作用。幸好Linux支持许多文件系统,针对Flash存储器可以使用JFFS2文件系统。在移植的时候,不必要的文件系统都可以裁剪掉。

五、文件系统移植

5.1. 文件系统简介

文件系统是Linux操作系统的重要组成部分,Linux文件具有强大的功能。

文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。

Linux和Windows文件类型最显着的区别就是Linux对目录和设备都当着文件来进行处理,这样就简化了对各种不同类型设备的处理,提高了效率。Linux 文件类型最主要的有四种:

(1)普通文件:包括文本文件,Shell脚本,二进制可执行程序和各类型的数据

(2)目录文件:在Linux中,目录也是文件,它们包含文件名和子目录名以及指向那些文件和子目录的指针。目录文件时Linux中存储文件名的唯一地方,当把文件和目录相对应起来,也就是用指针将其连接起来之后,就构成了目录文件,因此,在对目录文件进行操作时,一般不涉及文件内容的操作,而只是对目录名和文件名的对应关系进行操作。另外,在Linux系统中的每个文件都被赋予一个唯一的值,而这个数值被称作索引节点。索引节点存储在一个称作索引节点表中,该表在磁盘格式化时没分配。一个索引节点包含文件的所有信息,包括磁盘数据的地址和文件类型。

(3)链接文件:链接文件相当于Windows的“快捷方式”,但是它有更强大的功能。可以实现对不同的目录、文件系统甚至是不同的机器上的文件直接访问,并且不必重新占用磁盘。

(4)设备文件:Linux把设备都当着文件一样来进行操作,这样就大大方便了用户的使用。在Linux下与设备相关的文件一般都在/dev下,包括两种:块设备和字符设备。块设备是指数据读写时,他们是以块(如由柱面和扇区编址的块)为单位的设备,最简单的如硬盘(/dev/hda1)等。

5.2.文件系统移植的方法

文件系统是基于被划分的存储设备上的逻辑上单位上的一种定义文件的命名、存储、组织及取出的方法。如果一个Linux没有根文件系统,它是不能被正确的启动的。因此,我们需要为Linux创建根文件系统,我们将其创建在K9S1208 NAND FLASH上。

Linux的根文件系统可能包括如下目录(或更多的目录):

(1)/bin (binary):包含着所有的标准命令和应用程序;

(2)/dev (device):包含外设的文件接口,在Linux下,文件和设备采用同种地方法访问的,系统上的每个设备都在/dev里有一个对应的设备文件;

(3)/etc (etcetera):这个目录包含着系统设置文件和其他的系统文件,例如/etc/fstab(file system table)记录了启动时要mount 的filesystem;

(4)/home:存放用户主目录;

(5)/lib(library):存放系统最基本的库文件;

(6)/mnt:用户临时挂载文件系统的地方;

(7)/proc:linux提供的一个虚拟系统,系统启动时在内存中产生,用户可以直接通过访问这些文件来获得系统信息;

(8)/root:超级用户主目录;

(9)/sbin:这个目录存放着系统管理程序,如fsck、mount等;

(10)/tmp(temporary):存放不同的程序执行时产生的临时文件;

(11)/usr(user):存放用户应用程序和文件。

采用BusyBox是缩小根文件系统的好办法,因为其中提供了系统的许多基本指令但是其体积很小。在根文件系统中,为保护系统的基本设置不被更改,可以采用cramfs格式,它是一种只读的闪存文件系统。制作cramfs文件系统的方法为:建立一个目录,将需要放到文件系统的文件copy到这个目录,运行"mkcramfs 目录名image名"就可以生成一个cramfs文件系统的image文件。

我们使用下面的命令可以mount生成的rootfs.ramfs文件,并查看其中的内容:mount -o loop -t cramfs rootfs.ramfs /mount/poin.对于cramfs闪存文件系统,如果没有ramfs的支持则只能读,而采用jfss2(The Journalling Flash File System version 2)文件系统则可以直接在闪存中读、写数据。jfss2 是一个日志结构(log-structured)的文件系统,包含数据和原数据(meta-data)的节点在闪存上顺序地存储。jfss2记录了每个擦写块的擦写次数,当闪存上各个擦写块的擦写次数的差距超过某个预定的阀值,开始进行磨损平衡的调整。调整的策略是,在垃圾回收时将擦写次数小的擦写块上的数据迁移到擦写次数大的擦写块上以达到磨损平衡的目的。

为使Linux支持yaffs文件系统,我们需要将其对应的驱动加入到内核中fs/yaffs/,并修改内核配置文件。使用我们使用mkyaffs工具可以将NAND FLASH 中的分区格式化为yaffs格式(如/bin/mkyaffs /dev/mtdblock/0命令可以将第1个MTD块设备分区格式化为yaffs),而使用mkyaffsimage(类似于mkcramfs、mkfs.jffs2)则可以将某目录生成为yaffs文件系统镜像。嵌入式Linux还可以使用NFS(网络文件系统)通过以太网挂接根文件系统,这是一种经常用来作为调试使用的文件系统启动方式。通过网络挂接的根文件系统,可以在主机上生成ARM 交叉编译版本的目标文件或二进制可执行文件,然后就可以直接装载或执行它,而不用频繁地写入flash。如广州友善之臂的demo提供如下三种启动方式:(1)从cramfs挂接根文件系统:root=/dev/bon/2();

(2)从移植的yaffs挂接根文件系统:root=/dev/mtdblock/0;

(3)从以太网挂接根文件系统:root=/dev/nfs。

把生成的文件系统烧到开发板中,当看到上图信息,这说明yaffs2 已经移植成功。

六、结论

通过本实验详细的进行了u-boot、内核、根文件系统的移植,成功的配置成了自己想要的Linux系统,更加清楚的诠释了Linux可移植性高的特性。使得自

己对JZ2440V2更加深入的了解,也更加熟练了系统移植的过程。

嵌入式linux基本操作实验一的实验报告

实验一linux基本操作实验的实验报告 一实验目的 1、熟悉嵌入式开发平台部件,了解宿主机/目标机开发模式; 2、熟悉和掌握常用Linux的命令和工具。 二实验步骤 1、连接主机和目标板;(三根线,网线直接连接实验箱和PC机,实验箱UART2连接主机的UART口)。 2、Linux命令的熟悉与操作 PC端:在PC机的桌面上打开虚拟机,并启动Linux系统,打开命令终端,操作Linux基本命令,如:查看:ls,进入目录:cd,创建文件:mkdir,删除文件:rmdir,配置网络:ifconfig,挂载:mount,设置权限:chmod,编辑器:vi,拷贝:cp等命令,要求能熟练操作。 使用方法: 1.查看:ls Ls列出文件和目录 Ls–a 显示隐藏文件 Ls–l 显示长列格式ls–al 其中:蓝:目录;绿:可执行文件;红:压缩文件;浅蓝:链接文件;灰:其他文件;红底白字:错误的链接文件 2.进入目录:cd 改变当前目录:cd 目录名(进入用户home目录:cd ~;进入上一级目录:cd -) 3.创建文件:mkdir 建立文件/目录:touch 文件名/mkdir目录名 4.删除文件:rmdir 删除空目录:rmdir目录名 5.配置网络:ifconfig 网络- (以太网和WIFI无线) ifconfig eth0 显示一个以太网卡的配置 6.挂载:mount mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘- 确定目录'/ mnt/hda2' 已经存在 umount /dev/hda2 卸载一个叫做hda2的盘- 先从挂载点'/ mnt/hda2' 退出fuser -km /mnt/hda2 当设备繁忙时强制卸载 umount -n /mnt/hda2 运行卸载操作而不写入/etc/mtab文件- 当文件为只读或当磁盘写满时非常有用 mount /dev/fd0 /mnt/floppy 挂载一个软盘 mount /dev/cdrom /mnt/cdrom挂载一个cdrom或dvdrom mount /dev/hdc /mnt/cdrecorder挂载一个cdrw或dvdrom mount /dev/hdb /mnt/cdrecorder挂载一个cdrw或dvdrom mount -o loop file.iso /mnt/cdrom挂载一个文件或ISO镜像文件

实习报告_嵌入式(DOC)

学 生 实 习 报 告 实 习 名 称 院 部 名 称 专 业 班 级 学 生 姓 名 学 号 实 习 地 点 指 导 教 师 实习起止时间:2011年 7月 4日至2011年 7月29日

实习报告 前言 中软国际有限公司(中软国际)是根植中国、服务全球的IT服务提供商,致力于为遍及全球的客户提供全面的服务,打造中国智造综合平台。中软国际总部位于北京,在美国、日本、香港以及中国大陆25个主要城市设有35家分子公司或办事处,员工突破10000人。年营业额逾10亿元人民币(2007财年)。2007年和2008年中软国际对欧美软件外包业务位列全国第一(IDC统计数据)。 集团业务涵盖以咨询为驱动的解决方案、以专业化为准则的ITO和BPO外包服务和以人才供链为导向的培训服务,包括咨询服务、软件开发、系统集成、软件测试、软件本地化、企业应用平台建设与维护、IT服务外包以及业务流程外包。 凭借集团的全球分布,中软国际能够充分运用全球资源和自身领先的技术实力帮助客户应对不断快速变化的商业挑战。凭借中软国际在中国市场所拥有的独特领导地位和全球提交能力,除能为客户提供“传统”外包服务及信息解决方案外,还能以其国内、海外市场的互动能力帮助客户在中国或海外开拓新的业务机会。 一、实习目的 1、掌握嵌入式微处理器的结构与原理 2、熟悉并掌握嵌入式Linux操作系统的操作 3、熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。 二、实习时间

三、实习地点 江苏省无锡市无锡新区新安镇震泽路5号江苏软件外包产业园处子座B座四、实习单位和部门 实习单位:无锡中软国际信息技术培训有限公司 实习部门:无锡中软国际信息技术培训有限公司 五、实习内容 来到中软国际,主要实习方向为嵌入式开发,细化为LCD驱动开发。 所谓嵌入式系统是一台特殊用途的计算机,该计算机由它控制的设备完全封装。驱动这些系统的软件称为嵌入式软件。通用个人计算机可以执行多个任务,接受新的任务,并可由用户编程;而嵌入式系统有特定的需求,只能执行有限数量的预定义任务,嵌入式系统的优势在于,它们可以进行优化来进一步改善性能,并可以减小规模和成本。由于存在这些优势,嵌入式系统的使用越来越普及,因而使日常生活的各个方面(包括通讯、娱乐和工业控制系统)得到充分的改善。 为了成功的进行嵌入式开发,我们做了如下准备:C语言的强化,linux系统下的操作。 linux常用命令: cd【目录】: 切换到指定的目录,可以是相对路径或者是绝对路径。绝对路径是以“ / ”开头,从目录的最顶层开始列出目录路径。相对路径不用“ / ”开头,只列出当前工作目录以下的目录路径。 ls【选项】【文件目录列表】:显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。 mkdir【选项】路径: “路径”可以是一系列,此时若路径中的目录不存在,则系统自动创建那些不存在的目录。

《嵌入式系统与开发》构建嵌入式Linux系统-实验报告

《嵌入式数据库sqlite移植及使用》 实验报告 学生姓名:陈彤 学号:13004405 专业班级:130044 指导教师:孙国梓 完成时间:2016.5.31 实验3 嵌入式数据库sqlite移植及使用 一.实验目的 理解嵌入式软件移植的基本方法,掌握sqlite数据库软件移植的步骤,掌握sqlite开发的两种方式—命令模式和C代码开发模式的使用方法,并编程实现简单通讯录查询实验。 二.实验内容 实验3.1 移植嵌入式数据库sqlite 实验3.2 简单通讯录查询实例设计和测试 三.预备知识 Linux使用、数据库相关知识等 四.实验设备及工具(包括软件调试工具) 硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、串口线。 软件:WinXP或UBUNTU开发环境。 五.实验步骤 5.1 移植嵌入式数据库sqlite 步骤【参看教材103页】: 第一步,解压缩sqlite源码,命令tar zxvf sqlite-autoconf-3080900.tar.gz,在解压后的文件夹下,可以看到源码文件有shell.c 和sqlite3.c文件,生成Makefile的配置脚本文件configure.ac ,并检查当前文件夹下__A__(A.存在 B.不存在)Makefile文件。 第二步利用configure脚本文件生成基于ARM实验台的Makefile,具体命令为./configure CC=arm-linux-gcc –prefix=/opt/sqlite –host=arm-linux(假设安装目录为/opt/sqlite),并检查当前文件夹下___A__(A.存在 B.不存在)Makefile文件。 第三步,编译sqlite,命令为_make_,编译过程中使用的编译器为_ arm-linux-gcc _。 第四步,安装sqlit,命令为_make install_。安装完成后到_/opt/sqlite_文件夹下去查看相关文件,可以看到该文件夹下有_bin_、_include_、__lib__和share文件夹,其中可执行文件sqlite3位于_./bin_文件夹,库位于_./lib_文件夹。 第五步,将sqlite3拷贝到开发板bin目录下,将库下的文件拷贝到开发板的lib目录下【注意链接文件的创建】 第六步,数据库的使用 方式1:命令操纵数据库 在超级终端环境下创建数据库stucomm.db,命令为_sqlite3 stucomm.db_; 创建数据表stutable,字段包括id 整型,name 字符型,phoneNum 字符型,具体命令为_sqlite> create table stutable (id int(20),name char(20),phoneNum char(20));_; 插入2条记录,记录信息如下 001,zhangsan,10086 002,lisi,10000

嵌入式实验报告

嵌入式技术 实验报告 系别:计算机与科学技术系 班级:计12-1班 姓名:刘杰 学号:12101020128 总成绩: 评语: 日期:

2.在弹出的对话框中依次选择“cedevice emulator emulator kdstub”。 3.选择“Build OS”菜单的“sysgen”开始构建平台。 1.1.4连接,下载和运行平台 1.选择“Target”菜单下的“Connection option”菜单项。 2.在新的对话框中,配置连接关系 3.选择“Target”菜单下的“attach”菜单项,开始下载。 ?实验结果 操作系统定制成功,能正常运行。 ?结果截图 ?问题总结 由于对实验平台了解不够,致使操作过程中添加和删除组件时不知道该如何下手,影响整个实验进度。 实验1.2: 1.打开Platform Builder,并且打开实验1的工程,在实验1的工程基础上做本实验。

进程显示 IE信息查看

报文监测 实验1.3使用Platform Builder开发应用程序 简单实验步骤 1.打开Platform Builder。 2.选择“File”菜单下的“Open Workspace…”,然后打开实验1中创建的平台,本实验要基于 上面的实验的基础上做。 3.选择“File”菜单下的“New Project or File…”,打开“New Project or File”对话框。 4.在“Projects”选项页中选择“WCE Application”;在“Project Name”中输入项目的名字,例 如“MyApp”。 5.在“New Project Wizard – step 1 of 1”中选择“A typical Hello World Application”,点击“Finish” 按钮。 6.选择“Build”菜单中的“Build MyApp.exe”来编译应用程序。

南邮嵌入式系统B实验报告2016年度-2017年度-2

_* 南京邮电大学通信学院 实验报告 实验名称:基于ADS开发环境的程序设计 嵌入式Linux交叉开发环境的建立 嵌入式Linux环境下的程序设计 多线程程序设计 课程名称嵌入式系统B 班级学号 姓名 开课学期2016/2017学年第2学期

实验一基于ADS开发环境的程序设计 一、实验目的 1、学习ADS开发环境的使用; 2、学习和掌握ADS环境下的汇编语言及C语言程序设计; 3、学习和掌握汇编语言及C语言的混合编程方法。 二、实验内容 1、编写和调试汇编语言程序; 2、编写和调试C语言程序; 3、编写和调试汇编语言及C语言的混合程序; 三、实验过程与结果 1、寄存器R0和R1中有两个正整数,求这两个数的最大公约数,结果保存在R3中。 代码1:使用C内嵌汇编 #include int find_gcd(int x,int y) { int gcdnum; __asm { MOV r0, x MOV r1, y LOOP: CMP r0, r1 SUBLT r1, r1, r0 SUBGT r0, r0, r1 BNE LOOP MOV r3, r0 MOV gcdnum,r3 //stop // B stop // END } return gcdnum; } int main() { int a; a = find_gcd(18,9);

printf("gcdnum:%d\n",a); return 0; } 代码2:使用纯汇编语言 AREA example1,CODE,readonly ENTRY MOV r0, #4 MOV r1, #9 start CMP r0, r1 SUBLT r1, r1, r0 SUBGT r0, r0, r1 BNE start MOV r3, r0 stop B stop END 2、寄存器R0 、R1和R2中有三个正整数,求出其中最大的数,并将其保存在R3中。 代码1:使用纯汇编语言 AREA examp,CODE,READONL Y ENTRY MOV R0,#10 MOV R1,#30 MOV R2,#20 Start CMP R0,R1 BLE lbl_a CMP R0,R2 MOVGT R3,R0 MOVLE R3,R2 B lbl_b lbl_a CMP R1,R2 MOVGT R3,R1 MOVLE R3,R2 lbl_b B . END 代码2:使用C内嵌汇编语言 #include int find_maxnum(int a,int b,int c)

嵌入式程序设计实验报告

实验一开发环境的搭建与配置 【实验目的】 1)熟悉嵌入式Linux开发平台。 2)掌握嵌入式Linux开发平台的开发环境搭建与配置。 3)了解minicom配置串口通信参数的过程。 4)了解嵌入式Linux的启动过程。 5)掌握程序交叉编译运行及调试的一般方法。 【实验内容】 1)连接实验开发板与宿主机。 2)在虚拟机中的CentOS(宿主机)搭建开发环境。 3)在宿主机中配置minicom。 4)分析嵌入式Linux的启动过程。 5)在宿主机上编写简单的C语言程序并用交叉编译工具进行编译,然后传输到目标机上运行。 6)在宿主机上编写简单的C语言程序并用交叉编译工具进行编译,用gdbserver进行远程调试。 【实验步骤】 连接实验开发板,对虚拟机进行设置 1)首先把实验开发板打开,用网线和串口线连接宿主机,并连接电源(注意这时不要拨动实验 开发板的开关按钮)。 2)在桌面上点击打开vmware 软件,选择“编辑虚拟机设置”,如下图所示:

图1 3)进入虚拟机配置界面后把网络连接方式设置为“桥接方式”,如图2所示: 图2

4)添加串口,如下图所示: 图3 5)完成串口的添加后,选择“OK”,完成对虚拟机的设置。如下图所示:

图4 6)选择虚拟机的“Edit”、“Virtual Network Editor...”,如下图所示:

图5 7)进入虚拟机网络参数设置界面后对VMnet0进行设置(注意这里桥接的网卡应选择与实验开 发板相连接的那块儿网卡),然后点击“Apply”、“OK”如下图所示:

图6 8)上述设置完成后启动CentOS(CentOS的用户名为“root”,密码为“xidianembed”)。 工具链的配置 1)在CentOS的根目录下创建一个名为“EELiod”的目录,把实验中要用到的文件(主要是一 些rpm包)拷贝到该目录下。(可以用U盘、WinSCP等工具进行,此处不再做详细说明)。 2)交叉编译工具链位于/opt/buildroot-2011.02/output/host/usr目录下,进入工具链的bin目录下, 可以看到一些编译工具,这些工具将会在之后的交叉编译过程中使用到。

嵌入式实训报告

嵌入式实训报告 班级:电子信息1301 :钟海明 学号:3138702144 同组人:胡晓海 指导老师:韦龙新 目录: 一、实训目的---------------------3

二、实训要求---------------------3 三、实训容---------------------3 1、嵌入式系统开发环境的搭建----------3 2、嵌入式程序的编译与下载------------3 3、uboot的移植----------------------4 4、linux核的移植------------------4 5、NFS网络文件挂载------------------5 6、FTP和TFTP的运用-----------------6 7、试验箱镜像的烧写-----------------7 8、串口实验和TCP实验同时传送AD值--7 四、实训心得体会及体会----------8 一、实训目的: 学习和掌握ARM嵌入式Linux系统的体系结构和基本指令,熟悉Linux下的设计流程和编程流程,能够实现一定功能的嵌入式的设计,为之前的理论课程实践验证和为今后的学习及将来从事的技术工作打下一定的基础。

二、实训要求: 1、嵌入式系统开发环境的搭建 2、嵌入式程序的编译与下载 3、uboot的移植 4、linux核的移植 5、NFS网络文件挂载 6、FTP和TFTP的运用 7、试验箱镜像的烧写 8、串口实验和TCP实验同时传送AD值 三、实训容: 1、嵌入式系统开发环境的搭建: 首先在笔记本电脑下安装虚拟机VMware,安装成功后拷贝安装好的Fedora到本机上在虚拟机上找到路径打开。打开虚拟机进入Fedora选择用户为root密码为123456。交叉环境的安装,下载好arm-linux-gcc的编译包,解压安装到/opt下。 2、嵌入式程序的编译与下载: 用vi编辑一个(.C)的文件,保存退出后使用(arm-linux-gcc -o 编译后的文件名编译文件名)的指令编译,编译成功后用FTP 或TFTP将可执行文件拷贝到实验开发板中,chmod +x 文件名修改权限(./文件名)执行编译文件。 3、uboot的移植 下载U-boot的安装包,解压到/opt路径下进入u-boot。修改

嵌入式系统实验报告

郑州航空工业管理学院 嵌入式系统实验报告 (修订版) 20 – 20第学期 赵成,张克新 院系: 姓名: 专业: 学号: 电子通信工程系 2014年3月制

实验一ARM体系结构与编程方法 一、实验目的 了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。 二、实验内容 1.ADS1.2 IDE的安装、环境配置及工程项目的建立; 2.ARM汇编语言程序设计(参考附录A): (1)两个寄存器值相加; (2)LDR、STR指令操作; (3)使用多寄存器传送指令进行数据复制; (4)使用查表法实现程序跳转; (5)使用BX指令切换处理器状态; (6)微处理器工作模式切换; 三、预备知识 了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。 四、实验设备 1. 硬件环境配置 计算机:Intel(R) Pentium(R) 及以上; 内存:1GB及以上; 实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器; 2. 软件环境配置 操作系统:Microsoft Windows XP Professional Service Pack 2; 集成开发环境:ARM Developer Suite (ADS) 1.2。 五、实验分析 1.安装的ADS1.2 IDE中包括和两个软件组件。在ADS1.2中建立类型的工程,工程目标配置为;接着,还需要对工程进行、及链接器设置;最后,配置仿真环境为仿真方式。 2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名:

嵌入式系统GPIO输入输出实验报告

实验四GPIO 输入实验 一、实验目的 1、能够使用GPIO的输入模式读取开关信号。 2、掌握GPIO相关寄存器的用法和设置。 3、掌握用C语言编写程序控制GPIO。 二、实验环境 PC机一台 ADS 1.2集成开发环境一套 EasyARM2131教学实验平台一套 三、实验内容 1.实验通过跳线JP8 连接KEY1与P0.16,程序检测按键KEY1 的状态,控制蜂鸣 器BEEP 的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。(调通实验后,改为KEY3键进行输入)。 2.当检测到KEY1有按键输入时点亮发光二极管LED4并控制蜂鸣器响,软件延时 后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键没有输入。(键输入改为键KEY4,发光管改为LED6)。 3.结合实验三,当按下按键Key1时,启动跑马灯程序并控制蜂鸣器响,软件延时 后关掉发光管并停止蜂鸣,然后循环这一过程直到检测按键再次按下。 四、实验原理 当P0 口用于GPIO输入时(如按键输入),内部无上拉电阻,需要加上拉电阻,电路图参见图 4.2。 进行GPIO 输入实验时,先要设置IODIR 使接口线成为输入方式,然后读取IOPIN 的值即可。

图4.2按键电路原理图 实验通过跳线JP8 连接KEY1_P0.16,程序检测按键KEY1 的状态,控制蜂鸣器BEEP 的鸣叫。按下KEY1,蜂鸣器鸣叫,松开后停止蜂鸣。 在这个实验中,需要将按键KEY1 输入口P0.16 设为输入口而蜂鸣器控制口P0.7 设置为输出口。蜂鸣器电路如图 4.3 所示,当跳线JP6 连接蜂鸣器时,P0.7 控制蜂鸣器,低电平时蜂鸣器鸣叫。LED灯电路如图4.4所示,低电平时灯亮。 图4.3 蜂鸣器控制电路

linux嵌入式实验2

嵌入式实验报告(二) 姓名:董辰辰 学号:111180031 专业:电子信息与科学 一、 实验目的 1、 了解Linux 内核源代码的目录结构以及各个目录的相关内容。 2、 了解Linux 内核各配置选项内容和作用。 3、 掌握Linux 内核的编译过程。 4、 了解嵌入式操作系统中文件系统的类型和作用。 5、 了解JFFS2文件系统的优点以及在嵌入式系统中的作用。 6、 掌握利用busybox 软件制作嵌入式文件系统的方法。 7、 掌握嵌入式Linux 文件系统的挂载过程。 二、实验内容和要求 1、配置完整的内核,尽可能理解配置选项在操作系统中的作用。 2、以 Busybox 为基础,构建一个合适的文件系统。 3、制作ramdiak 文件系统映像。 4、将自己编译生成的内核和文件系统下载进开发板。 5、讨论自己的嵌入式系统所具备的的功能。 6、比较romfs 、ext2fs/ext3fs 、JFFS2等文件系统的优缺点。 三、实验设计和分析 实验分为两个部分:Linux 内核配置编译和文件系统构建。本次实验的目的 就是自己搞一个内核和文件系统。当然自己编写代码是不太可能啦,而是根据 linux 提供的源代码自己配置编译出一个自己的内核,在构建一个自己需要的文 件系统。实验室用的内核版本是2.6.35.7 实验室的开发板有了内核和文件系统 才能够对其进行开发。内核是操作系统最基本的部分,可以说是一个软件,实验 室的开发板有处理器、内存、Flash 闪存等硬件组成,可以说内核是调度它们的 软件,有了内核各种应用程序才能够调用硬件资源,总的来说内核文件是操作系 统的核心,负责系统的进程管理,内存管理,设备和文件管理等,决定着系统的 性能和稳定性。文件系统是操作系统的一个重要组成部分,通过对操作系统所管 理的存储空间的抽象,向用户提供统一的、对象化的访问接口,屏蔽对物理设备 的直接操作和资源管理。我觉得内核的本质其实是程序,而文件系统是设置一些 规则来用来管理存储的,在一个完整的操作系统中两者都是不可或缺的,内核在 加载的时候需要有很多的挂载指令,应该挂载的就是文件系统的文件夹,比如将 proc 文件系统挂载到proc 文件夹,这就是为什么在开发板启动时内核和文件系 本页已使用福昕阅读器进行编辑。福昕软件(C)2005-2009,版权所有,仅供试用。

嵌入式实习报告

嵌入式课程设计与总结报告 一、设计实习任务 1. 焊接ARM7(LPC2132)最小系统PCB。要求仔细认真焊接,并调试使其能正常工作(提供最简易测试程序)。 2. 设计数码管动态扫描显示电路,三个按键的键盘电路,模拟电压取样电路等。要求原理图设计合理,要求有与最小系统板的接口,正确焊接,调试后能正常工作。 3. 控制软件设计 在嵌入式控制系统的设计中,系统控制软件的设计是一项非常重要且艰巨的工作,系统能否正常可靠的工作,成败在此一举。因此要求同学们认真仔细的设计、调试控制软件。要求软件语句精炼,整体健壮,有一定的抗干扰能力。 二、数码管动态扫描显示电路控制软件设计 要求显示电路能正常显示数据,数码管无闪烁,明亮,可随时刷新显示的数据,参考流程图见图1。

图 1 三.键盘识别软件设计 嵌入式控制系统一般的是配备简易键盘,即根据需要设3~4按键基本能满足使用要求,因此键盘控制软件也是必须的,参考下图 四、ADC控制软件设计

图 3 五、电路与程序 六、程序源代码 #include "LPC2294.h" typedef unsigned int U32; //无符号32位整型变量typedef unsigned char U8; //无符号8位整型变量 //typedef signed char int8; //有符号8位整型变量typedef unsigned short U16; //有符号8位整型变量 #define Fpclk 11059200 #define DIS_1 0x06 //个位选通 #define DIS_2 0x05 //十位选通 #define DIS_3 0x03 //百位选通

淮阴工学院嵌入式系统开发与应用实验报告实验四嵌入式Linux开发环境的搭建

实验四嵌入式Linux开发环境的搭建 一、实验目的 1、了解嵌入式Linux开发环境的作用 2、掌握相关服务器的安装 二、实验准备 硬件:JXARM9-2410教学实验箱,PC机 软件:Windows XP操作系统,ADS集成开发工具 三、实验过程 1、tftp网络配置 (1) 虚拟机网络配置 a. 点击虚拟机-设置,将网络适配器设置为自定义,并 指定虚拟网络为VMnet0。 b. 点击编辑-虚拟机网络参数-主机虚拟网络映射,并 且指定其桥接的网卡

c. Red Hat IP配置 ●点击系统设置-网络,双击eth0配置IP信息如下: 地址:172.20.11.243 子网掩码:255.255.255.0 默认网关地址:172.20.11.254 DNS: 210.29.152.4 ●点击激活,在弹出的对话框点击是按钮 ●

测试网络连接是否正常 方法一:在linux下,点击系统工具-终端,输入命令ping 172.20.11.243 方法二:在主系统中打开命令提示符,输入ping 172.20.11.243 (2)修改tftp的配置文件 a.在终端下输入gedit /etc/xinetd.d/tftp b.修改”disable=yes”为”=no”,点击保存,关闭gedit

c.重启xinetd服务,使刚才的更改生效,在终端里输入, /etc/init.d/xinetd restart d.进入tftpboot文件夹创建一个测试文件testfile e.取得tftpboot文件夹的所有权限,命令chmod 777 /tftpboot f.启动tftp测试上传和下载 2配置NFS服务器 a.设置:开始->系统设置->服务器设置->NFS服务器打开配置对话 框 第一步:点击添加nfs共享 第二步:输入目录/tftpboot 第三步:输入主机172.20.11.243 第四步:基本权限为读/写

嵌入式实习报告

嵌入式实习报告 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

电子工艺 实习报告 班级 学号 姓名 同组人 指导教师 2010年 1 月 13 日 一、嵌入式的概述: 随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术(3C)合一的趋势正在逐步形成,无所不在的网络和无所不在的计算(everything connecting, everywhere computing)正在将人类带入一个崭新的信息社会。

二、实习目的 学习和了解了嵌入式在生活中的重要作用和发展过程,熟练掌握ARM硬件体系结构,熟悉linux下的嵌入式编程流程,积累自己的软件编写经验,能够参与并实现一个真实和完整的嵌入式项目,为今后的学习和将从事的技术工作打下坚实的基础 三、实习任务 第一阶段Linux操作和编程基础 主要介绍Linux的基本命令和基础编程知识,包括Linux 的文件操作和目录操作命令,VI编辑器,GCC编译器,GDB调试器和Make项目管理工具等知识。 第二阶段嵌入式C语言编程基础 主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识。第三阶段Linux上C强化编程训练 主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用C库函数编程接口实践,强化学员对Linux下基本编程开发的理解和编码调试的能力。 第四阶段 Linux环境高级编程及项目开发编程实践 主要包括系统编程(信号/系统调用/管道/FIFO/消息队列/共享内存等),文件I/O编程(文件描述符/文件读写接口/原子操作/阻塞与非阻塞IO等,多任务和多线程编程(进程标识/ 用户标

嵌入式linux实验指导书

目录 实验一 linux常用指令练习 (3) 1、在线帮助指令 (3) 2、linux开关机及注销指令。 (3) 重启指令: (3) 1)、reboot命令 (3) 2)、init 6命令 (3) 关机指令: (3) 1)、halt命令 (3) 2)、poweroff命令 (4) 3)、init 0命令 (4) 4)、shutdown命令 (4) 注销指令: (4) 3、用户管理命令 (4) 1)、用户切换su命令 (4) 2)、添加用户命令adduser/useradd (5) 3)、删除用户及更改用户属性 (5) 4)、设置用户密码 (6) 5)、查看用户信息 (6) 4、文件目录操作指令 (7) 1)、改变当前工作目录命令(cd) (7) 2)、显示当前路径pwd (7) 3)、查看当前目录下的文件命令ls (7) 4)、新建目录指令mkdir (8) 5)、删除目录命令rmdir (8) 6)、新建文件命令touch (8) 7)、删除文件指令rm (8) 8)、文件和目录的复制命令cp (8) 9)、文件和目录的移动命令mv (9) 10)、更改文件或目录的使用权限chmod (9) 11)、查看文件的命令cat (9) 12)、文件链接命令ln (9) 13)、文件压缩解压命令 (10) 5、网络相关命令 (11) 6、磁盘管理命令 (11) 7、挂载文件命令mount (12) 8、其他系统命令 (12) 练习1: (13) 练习2: (15) 练习3: (16) 练习4: (21) 实验二 VI文本编辑器的使用 (24) 1、练习使用VI指令 (24) 2、利用VI编写一个hello.c文件 (24)

嵌入式基础实验报告

嵌入式基础实验报告 ——Linux下编译环境的设置 姓名:张耀丹 学号:131012692 班级:13级网络工程二班

一、实验目的 1、熟悉嵌入式Linux 开发环境,学会基于UP-CUP IOT-4412-II 型网关部分平台的Linux 开 发环境的配置和使用 2、利用arm-none-linux-gnueabi-gcc 交叉编译器编译程序,使用基于NFS 的挂载方式进行 实验,了解嵌入式开发的基本过程 二、实验环境 1、硬件:UP-CUP IOT-4412-II 型网关部分嵌入式实验平台,PC 机Pentium 500 以上, 硬盘 40G 以上,内存大于256M 2、软件:Vmware Workstation + Fedora Core 14 + 超级终端/Xshell + ARM-LINUX 交叉编译开 发环境 三、实验内容 1、本次实验使用Fedora14 操作系统环境,安装ARM-Linux 的开发库及编译器。创建一个新 目录,并在其中编写hello.c 和Makefile 文件。 2、学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。将已 经编译好的文件通过NFS 方式挂载到目标开发板上运行 四、实验步骤 实验目录:/UP-CUP4412/SRC/exp/basic/Cortex/ 1、编译源程序 (1)在宿主机端任意目录下建立工作目录CortexA9,实际光盘目录中已经给出本次实验所需全面文件及代码,存放在Cortex目录下。 [root@localhost ~]# mkdir CortexA9 [root@localhost ~]# cd CortexA9 (2)编写程序源代码 在Linux 下的文本编辑器有许多,常用的是vim 和Xwindow 界面下的gedit 等,我们在开发过程中推荐使用vim,用户需要学习vim 的操作方法,请参考相关书籍中的关于vim 的操作指南。Kdevelope、anjuta 软件的界面与vc6.0 类似,使用它们对于熟悉windows 环境下开发的用户更容易上手。 实际的CortexA9.c 源代码较简单,如下: #include main() { printf(“**********\n” ); printf(“CortexA9 \n”); printf(“**********\n” ); return 0; }

嵌入式实训报告

嵌入式实训报告 一、实习时间 20xx年4月12日-20xx年4月26日 二、指导教师姓名 陈xx 三、实习地点 XX市牛耳服务外包实训基地 四、实习目的与内容 对于嵌入式项目进行学习培训,掌握嵌入式的主要项目及相关技术 五、实习收获与体会 一转眼半个月的实习生活过去了,现在我已经回到学校,回想起半个月的实习生活,自己学到了很多,懂得了很多。 真的说不出是什么感觉,伴着时间,就像是在和自己的影子赛跑,不可能从真实的两面去看清它,只是经意不经意的感受着有种东西在过去,也许更适合的只有那句话:时不待我,怎可驻足。原以为实习对于我来说会是很长,但实际

却不同。想象收获的东西,真的很多,看看我的工作笔记,一篇又一篇,记别人的事情比自己的还多,也许……实习,并不像我想象中的那样轻松惬意,而是充满了挑战和艰辛。我给自己敲响了警钟:“不要半途而废,做事情切忌三分热度。”我信心十足的回答到:“我一定会坚持到底!” 天下英雄皆我辈,一入江湖立马催。”从学校到社会的大环境的转变,身边接触的人也完全换了角色,老师变成老板,同学变成同事,相处之道完全不同。在这巨大的转变中,我们可能彷徨,迷茫,无法马上适应新的环境,但在同学、同事的帮助和自己摸索的情况下,我还是完成了这次实习。但我发现,以我们的经验,不学到一定的深度和广度是难以在实际工作中应付自如的。因此反映出学习的还不够,缺点疏漏。需在加以刻苦钻研及学习,不断开拓视野,增强自己的实践操作技能,我们也许看不惯企业之间残酷的竞争,无法忍受同事之间漠不关心的眼神和言语。很多时候觉得自己没有受到领导重用,所干的只是一些无关重要的杂活,自己的提议或工作不能得到老板的肯定。 做不出成绩时,会有来自各方面的压力,老板的眼色同事的嘲讽。而在学校,有同学老师的关心和支持,每日只是上上课,很轻松。常言道:工作一两年胜过十多年的读书。两个月的实习时间虽然不长,但是我从中学到了很多知识,

嵌入式Linux系统开发教程实验报告

嵌入式实验报告 : 学号: 学院: 日期:

实验一熟悉嵌入式系统开发环境 一、实验目的 熟悉Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。 二、实验容 本次实验使用Redhat Linux 9.0 操作系统环境,安装ARM-Linux 的开发库及编译器。创建一个新目录,并在其中编写hello.c 和Makefile 文件。学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。 三、实验设备及工具 硬件::UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。 软件:PC 机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+AMR-LINUX 开发环境。 四、实验步骤 1、建立工作目录 [rootlocalhost root]# mkdir hello [rootlocalhost root]# cd hello 2、编写程序源代码 我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码: [rootlocalhost hello]# vi hello.c 按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc 键进入

命令状态,再用命令“:wq!”保存并退出。这样我们便在当前目录下建立了一个名为hello.c的文件。 hello.c源程序: #include int main() { char name[20]; scanf(“%s”,name); printf(“hello %s”,name); return 0; } 3、编写Makefile 要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译。Makefile源程序: CC= armv4l-unknown-linux-gcc EXEC = hello OBJS = hello.o CFLAGS += LDFLAGS+= –static all: $(EXEC) $(EXEC): $(OBJS) $(CC) $(LDFLAGS) -o $ $(OBJS) clean: -rm -f $(EXEC) *.elf *.gdb *.o 下面我们来简单介绍这个Makefile 文件的几个主要部分: CC 指明编译器 EXEC 表示编译后生成的执行文件名称 OBJS 目标文件列表

嵌入式Linux应用程序开发实验报告期末作业

软件学院大作业设计报告课程名称: 题目:专业:班级:姓名学号: 基于UP-CUP2440平台的驱动程序开发和QT程序开发 计算机软件 计算机软件111班 鲁飞8000611038 卢惠民8000611021 戚成林8000611032 慕一聪8000611018 刘备8000611006 李岚职称:副教授 2014年6月11日 嵌入式Linux应用程序开发 任课教师: 完成时间:

一、小组成员分工 二、实验任务 三、主要仪器设备及耗材 四、实验步骤 、驱动 1. 基本知识: 2. 实验原理: 3. 具体实现: 二、QT计算器 1.QT程序设计 2. 虚拟机下进行编译: 3. 下载到开发板上运行: 六、实验数据及处理结果10 15 17 18 七、思考讨论题或体会或对改进实验的建议18 19 八、参考资料:

、小组成员分工 分工: 鲁飞:QT设计与设计报告卢惠民:QT设计与设计报告戚成琳:驱动与设计报告慕一聪、刘备:设计报告 二、实验任务 1?编写基于UP-CUP2440硬件平台的GPIO驱动程序 必选功能:使中断按键按下后,开发板上的LED灯能作如下闪动: a)连续性闪动,跑马灯:如:1-2-3-1-2-3…或3-2-1-3-2-1 b)间隔性闪动:如:1-3-2-1-3-2…或3-1-2-3-1-2… 进阶功能:改变中断按键的控制功能,使中断按键按下后,LED灯不断闪亮,再 次按下后,LED灯灭。 2.QT计算器 三、主要仪器设备及耗材 PC, Windows Xp , H-JTAG,H-Flasher,DNW,开发实验箱。 四、实验步骤 、驱动 思路: 前后台思想: 在中断模块中设置一个计数的变量,每一次中断计数器加一。 然后在GP10驱动模块的ioctIO函数中分情况使跑马灯按要求闪动或熄灭。

嵌入式系统实验报告

实验一系统认识实验 一、实验目的 学习Dais软件的操作,熟悉程序编写的操作步骤及调试方法。 二、实验设备 PC计算机一台,Dais-52PRO+或Dais-PRO163C实验系统一套。 三、实验内容 编写程序,将80h~8Fh共16 个数写入单片机内部RAM 的30h~3Fh空间。 四、实验步骤 1.运行Dais软件,进入集成开发环境,软件弹出设置通信端口对话框(如图2-1-1), 请确保实验装置与PC正确连接,并已打开实验装置电源,使其进入在待命状态。 这里选择与实验装置实际相连的通信端口,并单击“确定”。如通信正确则进入Dais 软件主界面,否则弹出“通信出错”的信息框(如图2-1-2),请检查后重试。 图2-1-1设置通信端口对话框图2-1-2通信错误信息框 2.通信成功后,单击菜单栏“设置”→“仿真模式”项打开对话框,选择需要设置型 号、程序/数据空间。这里我们将型号设置为“MCS-51实验系统”,外部数据区 设置为“系统RAM”,用户程序区设置为“片外(EA=0)”,如图2-1-3所示,最 后单击“确定”按钮保存设置。

图2-1-3设置工作方式对话框 3.工作方式设置完毕后,单击菜单栏“文件”→“新建”项或按Ctrl+N组合键(建 议单击工具栏“”按钮)来新建一个文件,软件会出现一个空白的文件编辑窗口。 4.在新窗口中输入程序代码(A51\2_1.ASM): ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R1,#30H ;片内RAM首地址 MOV A,#80H ;写入数据初值 MOV R7,#16 ;循环变量 LOOP1: MOV @R1,A ;写数据到片内RAM INC R1 ;地址增量 INC A ;数据+1 DJNZ R7,LOOP1 ;循环变量-1,不为0继续 SJMP $ ;结束 END 5.单击菜单栏“文件”→“保存”项(建议单击工具栏“”按钮)保存文件。若 是新建的文件尚未命名,系统会弹出文件保存对话框(如图2-1-4),提示用户选择文件保存的路径和文件名,再单击“保存”按钮。

嵌入式系统实验内容(全)

实验一熟悉Linux开发环境 一、实验目的 1.熟悉Linux开发环境,学习Linux开发环境的配置和使用,掌握Minicom 串口终端的使用。 2.学习使用Vi编辑器设计C程序,学习Makefile文件的编写和 armv4l-unkonown-linux-gcc编译器的使用,以及NFS方式的下载调试方法。 3.了解UP-NETARM2410-S嵌入式实验平台的资源布局与使用方法。 4.初步掌握嵌入式Linux开发的基本过程。 二、实验内容 本次实验使用Redhat Linux 9.0操作系统环境,安装ARM-Linux的开发库及编译器。创建一个新目录,并在其中编写hello.c和Makefile文件。学习在Linux 下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。 三、预备知识 C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。 四、实验设备及工具(包括软件调试工具) 硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上, 硬盘10G 以上。 软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境 五、实验步骤 1、建立工作目录 [root@zxt smile]# mkdir hello [root@zxt smile]# cd hello 2、编写程序源代码 在Linux下的文本编辑器有许多,常用的是vim和Xwindow界面下的gedit等,我们在开发过程中推荐使用vim,用户需要学习vim的操作方法,请参考相关书籍中的关于vim的操作指南。 Kdevelope、anjuta软件的界面与vc6.0 类似,使用它们对于熟悉windows环境下开发的用户更容易上手。 实际的hello.c源代码较简单,如下: #include main() {

相关主题
文本预览
相关文档 最新文档