嵌入式系统实验一

嵌入式系统实验一
嵌入式系统实验一

嵌入式系统实验一

实验一嵌入式系统开发环境搭建嵌入式虚拟开发环境的搭建以及内核编译一、实验目的和要求1.熟悉ARM虚拟平台Skyeye的搭建2.熟悉交叉编译开发环境的搭建3.熟悉编译ARM-Linux 4.熟悉在Skyeye平台上仿真ARM-Linux 5.拓展:尝试移植其他版本的Linux,并且在Skyeye上运行二、实验内容和原理本实验是通过在PC机上搭建嵌入式开发环境虚拟环境,熟悉嵌入式交叉编译开发环境以及ARM-Linux 系统移植的主要步骤。实验虚拟平台SMDK2410 ? CPU三星S3C2410,核心频率为,I-Cache 16K,D-Cache 16K ? 内存32MB,内存频率实验软件介绍SkyEye是一个开源软件项目,中文名字是“天目”,SkyEye 的目标是在通用的Linux和Windows平

台上实现一个纯软件集成开发环境,模拟常见的嵌入式计算机系统;可在SkyEye上运行u CLinux以及u C/OS-II 等多种嵌入式操作系统和各种系统软件,并可对它们进行源码级的分析和测试。SkyEye是一个指令级模拟器,可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过SkyEye 调试操作系统和系统软件。于SkyEye的目标不是验证硬件逻辑,而是协助开发,调试和学习系统软件,所以在实现上SkyEye与真实的硬件环境相比还是有一定差别的。编译ARM-Linux内核,熟悉ARM-Linux的移植过程。编译成功后,同学们需要将ARM内核在SkyEye 的ARM硬件模拟环境运行测试。具体步骤见后文。三、主要仪器设备硬件: a. PC机软件: a. VMware b. Ubuntu c. _ d. e. f.

g. __ h. g++-__ i. __ j. __ k. libstdc++__

四、操作方法与实验步骤 1. 安装虚拟机VMware 2. 安装ubuntu10 A.可以选用Typical Install方式建立ubuntu B.安装VMTool C.设置host computer共享的目录 3. 安装使用版本编译器 A.在安装之前先看看的gcc是哪个版本 B.下载相关文件a. __ b. g++-__ c. __ d. __ e. libstdc++__ 执行命令sudo dpkg -i *.deb就可以安装好 C.设置默认gcc版本update ls /usr/bin/gcc* sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/ 40 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.? 20 update-alternatives --config gcc update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++- 40 4. 安装SKyeye a. 键入tar -xzvf _ 解压 b. 依次键入cd _REL回车,./configure回车,make 回车,sudo make install 回车5. 测试Skyeye a. 键入tar -xvjf 回车

b. 键入cd /linux/s3c2410//回车

c. 键入skyeye -e vmlinux回车6. 安装交叉编译环境 a. 键入tar -xvjf 回车 b. 记住arm-gcc的目录,即/usr/local/arm//bin 7. 编译内核 a. 键入tar -xzvf 回车 b. 键入cd 回车 c. 键入vi Makefile 回车修改Makefile: ARCH?=$(SUBARCH) CROSS_COMPILE ?= ARCH?=arm CROSS_COMPILE ?=/usr/local//bin/arm-linux-

d. 生成默认的内核配置文件,键入cp arch/arm/configs/smdk2410_defconfig .回车,继续键入sodu make smdk2410_defconfig回车改为:

e. 参照/Linux 修改内核文件①修改include/asm-arm/arch-s3c2410/ #define S3C2410_CS6(0x30000000) 改为:#define S3C2410_CS6(0xC0000000) 键入vi include/asm-arm/arch-s3c2410/ ②修改

include/asm-arm/arch-s3c2410/ #define PHYS_OFFSET(0x30000000UL) 改为:#define PHYS_OFFSET(0xC0000000UL) 键入vi include/asm-arm/arch-s3c2410/ f. 裁剪/定制内核1) 键入sodu make menuconfig回车2) 设置内核启动参数Boot option--->Default kernel command string: mem=32M console=ttySAC0

root=/dev/ram

initrd=0xc0800000,0x00800000

ramdisk_size=8192rw 3) 设置initrd的支持Device Drivers--->Block devices---> [*]RAM disk support (4096)Default RAM disk size (kbytes)改为:8192 [*]Initial RAM disk (initrd) support 4) 设置ROM file system 的支持File system--->[*]ROM file system support 5) 设置ext2的支持File system--->[*]Second extended fs suppord g. 编译,键入make 键编译完成后会有vmlinux在当前目录下,这

就是我们要的arm-linux内核了h. 验证? 将/linux/s3c2410/中的skyeye.conf和复制到目录中? 键入skyeye -e vmlinux 出现了ARMLinux 字样说明成功!五、实验结果与分析

六、讨论、心得通过本次实验完成了内核的编译,这次实验没有什么太大的难度,只要按照实验指导书的步骤并且细心的话,实验是很快就可以完成的。嵌入式程序的开发与根文件系统的搭建一、实验目的和要求1.熟悉利用busybox建立ARM-Linux根文件系统2.熟悉修改现有根文件系统的方法3.熟悉利用交叉编译环境编译简单的C 语言程序4.将自己写好的C 语言程序,进行交叉编译,写入根文件系统,并在实验一中搭建的虚拟环境中运行,显示正确的结果5.回答后面遇到的4个问题二、实验内容和原理

根文件系统就是一种目录结构,根文件系统就是要包括Linux 启动时所必须的目录和关键性的文件,例如Linux 启动时都需要有init目录下的相关文件,在Linux 挂载分区时Linux一定会找/etc/fstab 这个挂载文件等,根文件系统中还包括了许多的应用程序bin 目录等,任何包括这些Linux系统启动所必须的文件都可以成为根文件系统。利用BusyBox搭建根文件系统。BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。这样的集合可以替代大部分常用工具比如的GNU fileutils ,shellutils等工具,BusyBox提供了一个比较完善的环境,可以适用于任何小的或嵌入式系统。将自己编译的程序保存到根文件系统中的目录下,就可以在嵌入式虚拟环境中运行。三、主要仪器设备硬

件: a. PC机软件: a. 实验一搭建好的嵌入式虚拟平台 b. c.

四、操作方法与实验步骤 1. 编译busybox a. 修改Makefile中的arch 和编译工具链头为:ARCH?=arm CROSS_COMPILE ?=/usr/local//bin/arm-linux- b. make menuconfig 修改编译配置选项选择动态编译busybox Busybox Setting-----> build option--> [ ] Build BusyBox as a static binary (no shared libs) [*] Build shared libbusybox [*] Produce a binary for each applet, linked against libbusybox [*] Produce additional busybox binary linked against libbusybox [ ] Build with Large File Support (for accessing files > 2 GB) General Configuration--> [*] Don’t use /usr installation option--> Applets links (as soft-links) ---> (./_install) BusyBox installation prefix c. 键入make d. 编译键入make install e. 修改busybox 的属性键入chmod

4755 ./_install/bin/busybox 注意:必须要修改属性,否则在busybox中很多命令会受限制:比如:$su su:must be suid to work properly f. 查看busybox需要的动态库 2. 制作 a. 创建映像文件并挂到initrd 目录? 键入mkdir initrd ? 键入dd if=/dev/zero of= bs=1k count=8192 ? 键入mke2fs -F -v ? 键入mount -o loop initrd b. 将添加busybox 到此映像文件? 键入cd initrd ? 键入cp -r ../_install/* . c. 拷贝busybox 需要的动态库arm-linux/lib ? mkdir proc lib etc dev root home var tmp ? 键入cp /usr/local/arm//arm-linux/lib/ld* lib ? 键入cp /usr/local/arm//arm-linux/lib/ lib ? 键入cp /usr/local/arm//arm-linux/lib/ lib ? 键入cp /usr/local/arm//arm-linux/lib/libm * lib ? 键入cp /usr/local/arm//arm-linux/lib/libcrypt* lib d. 建立必要的文件? 键入chmod

777 tmp ? 建立设备文件,键入cd dev回车mknod -m 644 console c 5 1 mknod -m 644 null c 1 3 mknod -m 640 ram b 1 1 mknod -m 644 mem c 1 1 cd .. ? 创建脚件etc/inittab并且改变权限chmod 644 etc/inittab ? 创建脚件etc//rcS并且改变权限chmod 755 /rcS e. 将文件经过交叉编译后复制到home 目录下交叉编译过程如下:/usr/local/arm//bin/arm-linuc-gcc -o helloworld cp helloworld initrd/home/ f. 最后,生成cd .. umount initrd 3. 测试 a. 将生成文件复制到实验一的目录下,执行skyeye -e vmlinux b. Skyeye启动成功后,在home目录下执行./helloworld c. 出现Hello ARM World 表示成功五、实验结果与分析在对busybox进行make时会遇到很多问题,以下是具体的解决方法: 1. 出现如下图错误

解决方法:继续键入

make menuconfig Busybox Setting-----> Miscellaneous Utilities ---> [ ] ionice 修改之后继续键入make 2.出现如下错误解决方法:在当前目录下的include目录下建立一个mtd目录,把事先下载好的拷贝到mtd目录下。具体操作如下:cp /home/yewanjaly/busybox/ include/mtd(注意先下载) 修改之后继续键入make 3.出现如下错误解决方法1:键入make menuconfig Busybox Settings---> Busybox Library Tuning--> Support infiniband HW 修改之后继续键入make 解决方法2:通过查看内核源代码目录中的“include/linux/”文件可知“ARPHRD_INFINIBAND”的值为“32”,然后修改“networking/”文件,在其中添加:#define ARPHRD_INIFINIBAND 32。在本实验中采用的是解决方法1,但是做过之后第二种解决的方法较好! 4.出现如下错误解决方法:键入vi /usr/local/arm//arm-linux/sys-include

/linux/ 在最开始加上#include 修改之后继续键入make 5.出现错误如下解决方法:键入make menuconfig Linux System Utilities ---> [ ] mkfs_ext2 修改之后继续键入make 6.出现如下错误解决方法:键入make menuconfig Linux System Utilities ---> [ ] mkfs_vfat 修改之后继续键入make 以下是实验过程中的其他截图部分六、讨论、心得本次实验对于我个人而言,还是很难的,而且很复杂,就在改正busybox的make是遇到的问题,废了很多的时间,开始时不知道要怎么修改,把提示出错的文件的代码从头到尾看了一遍,没有什么进展,后来才知道只要关闭相关的功能即可,但是找这个功能在什么地方也是很费事的。总之,这次实验完成后,感觉自己学到了很多。ARM-Linux添加网络驱动程序与实现NFS访问一、实验目的和要求1.熟悉虚拟平台添加网卡驱动程序的步

骤2.通过在虚拟机下实现SkyEye 虚拟平台的NFS 访问,验证添加的驱动程序正确性二、实验内容和原理通过在ARM-Linux中添加CS8900a网卡驱动程序,实现嵌入式虚拟环境具备网络功能。验证网卡工作是否正常。在虚拟机中增加NFS Server,并且添加共享目录。通过ARM-Linux映射NFS Server的共享目录,实现读、写和执行等操作。如果读、写以及执行操作正常说明网卡驱动程序添加成功。NFS 是一种使用于分散式文件系统的协定,SUN Microsystems 公司开发,于1984年向外公布。NFS 的功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据。通过NFS,应用和程序可以像访问本地文件一样访问远端系统上的文件。实现NFS 对于调试嵌入式环境下的应用程序有很大帮助。

三、主要仪器设备硬件: a. PC 机软件: a. VMware b. Ubuntu c. _ d.

e. f. g. __ h. g++-__ i. __ j. __ k. libstdc++__ l.

四、操作方法与实验步骤1、内核的编译过程已在前面的实验中进行过,这里就不在叙述了。 D.为内核添加cs8900(见附件) 网卡驱动,以支持NFS 挂接1) 复制cs8900 驱动到drivers/net/arm 目录#cp drivers/net/arm #cp drivers/net/arm 2) 修改drivers/net/arm 目录下的Kconfig 文件3) 修改drivers/net/arm 目录下的Makefile文件4) 修改arch/arm/mach-s3c2410/ 5) 在include/asm-arm/arch-s3c2410 目录下创建文件 E.参照/Linux修改内核文件 F.裁剪/定制内核1) 键入make menuconfig 2) 设置内核启动参数3) 设置CS8900 的支持Device Drivers ---> Network device support ---> Ethernet (10 or 100Mbit) ---> [*] CS8900 support 4) 设置initrd的支持5) 设置

NFS 的支持File systems ---> Network File Systems ---> [*] NFS file system support [*] Provide NFSv3 client support 6) 设置ROM file system 的支持7) 设置ext2的支持G.编译键入make 编译完成后会有个vmlinux 在当前目录下, 这就是我们要的arm-linux 内核了2、制作跟文件系统3、虚拟机中ubuntu添加NFS Server 1) 在arm-linux 的宿主机里配置NFS Server #apt-get install nfs-kernel-server #apt-get install nfs-common 2) 编辑文件/etc/exports, 内容如下(具体需求你而定) /test *(rw,sync,no_root_squash) 3) 配置主机ip #ifconfig eth1 down #ifconfig eth1 netmask up 4) 重启nfs server #/usr/sbin/exportfs -r #/etc//nfs-kernel-server restart #/etc//portmap restart 注:可用showmount -e 来验证你的配置是否成功。5) 管理员身份启动skyeye,运行

arm-linux,为其配置ip 6) NFS 挂接a. 在NFS挂接之前先互相ping,看看是否可以ping通 b. NFS挂接#mount -o nolock :/test /tmp #cd /test #arm-linux-gcc -o helloworld #cd /tmp #./helloworld 五、实验结果与分析六、讨论、心得本次实验的难点在于最开始的文件修改和脚本的创建,一不小心就容易编写错误,而且错误有时还不容易发现,比如0和o。如果这些都安全通过了,那么这个实验就没有什么难的地方了,部分步骤是实验一和实验二的内容,这加深了对实验一和实验二的熟练程度。

嵌入式系统综合实验一

嵌入式系统综合实验一

学号: 装 订 线 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一dht11和人体感应传感器 实验类型:验证型 同组学生姓名:孙凡原 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握字符设备驱动程序的基本结构和开发方法 2.掌握用户空间调用设备驱动的方法 3.掌握用户和内核的交互 二、实验内容和原理 专业:测控技术与仪器 姓名:颜睿

装订 线1.编写温湿度传感器DHT11驱动,传输打印温湿度信息 2.编写人体感应传感器驱动,控制LED灯亮灭 原理: 温湿度传感器DHT11: 1.引脚图 实际使用传感器没有NC引脚 2.数据采集 a.数据总时序 用户主机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发送响应信号,送出40bit 的数据,幵触发一次信采集。

b.主机发送起始信号 连接DHT11的DATA引脚的I/O口输出低电平,且低 电平保持时间不能小于18ms,然后等待DHT11 作出 应答信号。 装 线 订 c.检测从机应答信号 DHT11 的DATA 引脚检测到外部信号有低电平时, 等待外部信号低电平结束,延迟后DHT11 的DATA 引脚处于输出状态,输出80 微秒的低电平作为应答信 号,紧接着输出80 微秒的高电平通知外设准备接收数 据。

装 订线 d.接收数据 (1)数据判定规则 位数据“0”的格式为:50 微秒的低电平和26-28 微秒的高电平,位数据“1”的格式为:50 微秒的低电平加70微秒的高电平。 接收数据时可以先等待低电平过去,即等待数据线拉高,再延时60us,因为60us大于28us且小于70us,再检测此时数据线是否为高,如果为高,则数据判定为1,否则为0。 (2)数据格式 一次传送40 位数据,高位先出 8bit 湿度整数数据+ 8bit 湿度小数数据+8bit 温度整

嵌入式系统及应用 实验大纲

《嵌入式系统及应用》课程实验 一、实验课程的性质、目的和任务 性质:《嵌入式系统及应用》课程是自动化专业的专业基础课程,本实验课是该课程教学大纲中规定必修的实验教学内容。 目的和任务:通过实验环节来巩固和加深学生对嵌入式系统的理解,使学生掌握MCS51单片机和ARM的基本原理和应用技术。通过熟悉MCS51开发环境和ARM集成开发环境,使学生掌握嵌入式系统开发的一般规律和方法。在集成开发环境下,进行系统功能程序的编写和调试的训练,掌握嵌入式系统软硬件调试的一般方法和系统设计的能力。 二、实验内容、学时分配及基本要求

三、考核及实验报告 (一)考核 本课程实验为非独立设课,实验成绩占课程总成绩的15%,综合评定实验成绩。(二)实验报告 实验报告应包括: 实验名称 实验目的 实验内容与要求 设计思路(如:分析、程序流程图等) 实验步骤 实验代码(含必要注释) 实验结果分析 实验小结(本题调试过程中遇到的问题和解决方法、注意事项、心得体会等)注:综合型实验需写出系统功能、设计过程 实验报告的要求: 实验报告以文本形式递交,实验报告要书写规范、文字简练、语句通顺、图表清晰。 四、主要仪器设备 硬件:微型计算机;嵌入式系统开发平台。 软件:Keil C51;ADT 五、教材及参考书 教材

[1] 高锋.单片微型计算机原理与接口技术(第二版).北京:科学出版社,2007 [2] 自编.嵌入式系统及应用 参考书 [1] 王田苗.嵌入式系统设计与实例开发.北京:清华大学出版社,2003 [2] 陈赜.ARM9 嵌入式技术及Linux高级实践教程.北京:北京航空航天大学出版社,2005 [3] 李忠民等.ARM嵌入式VxWorks实践教程.北京:北京航空航天大学出版社,2006

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

嵌入式实验报告

课题:按键控制流水灯 专业:物联网工程 班级:01 学号:14154951 姓名:李政 指导教师:何建军 设计日期:2016.12.21—2016.12.30 成绩: 重庆大学城市科技学院电气学院

嵌入式设计报告 一、设计目的作用 通过编程实现对LED灯项目的改变,加深对stm32芯片的理解,对keil软件的熟悉掌握,工程的搭建以及头文件的使用。掌握外部设备的接入以及外部中断的实现。 二、设计要求 用四个按键控制8个流水灯的流水显示 (1).按键A按下时候流水灯按从左往右的流水显示。 (2).按键B按下时候流水灯按从右往左的流水显示。 (3).按键C按下时候流水灯按中心开花的方式流水显示:从中间向两边流水显示 (4).按键D按下时候流水灯按从两边到中心移动的方式流水显示。(5).(选做)引入时针中断: 默认的流水方式: (1)对时钟中断的次数进行计数 (2)当时钟中断的次数除以4的余数为0时:按从左到右的顺序流水显示(3)当时钟中断的次数除以4的余数为1时:按从右到左的顺序流水显示(4)当时钟中断的次数除以4的余数为2时:按中心开花的方式流水显示(5)当时钟中断的次数除以4的余数为3时:从两边到中心移动的方式流水显示。 系统启动时按默认的流水方式显示,当按下A、B、C、D四个按键时,按指定的方式流水显示,当按下按键E时恢复按默认的流水方式。 三、设计的具体实现 1、设计原理 这次使用的是stm32f103系列芯片,芯片引脚如下图

Stm32内部资源

GPIO原理及应用: 有7个16位并行I/O口:PA、PB、PC、PD、 PE、PF、PG 都是复用的,最少有2种 功能,最多有6种功能

嵌入式系统设计实训报告

上海海洋大学 嵌入式系统设计项目实训报告 (2016- 2017第_1_学期) 专业:______计算机科学与技术_________________ 实训项目:____嵌入式应用——电子相册______ __ 实训时间:__2016_______年__12___月___26___日 实训成员:_________孙嘉晨1351127____________ _________周力1351137______________ __________________________________ __________________________________ 指导老师:________池涛_____________________ 计算机科学技术系 2015年11月制

一、实训目的 通过电子相册的制作,了解S3C2440芯片的构造,了解外围SDRAM及NANDFLASH 的存储结构。学会运用定时器中断及通过LCD显示图片,加强自身对嵌入式的理解,提升自身的实践能力。 二、实训内容 以S3C2440芯片为核心,通过外围SDRAM及NANDFLASH存储实现照片的存储,结合定时器中断,实现LCD显示图片,完成简易电子相册的设计。 三、实训设备 硬件:mini2440硬件平台 软件:bmp2h.exe软件进行图片转换 CodeWarrior for ARM Developer Suite软件 四、实训设计方案 (包括项目功能需求分析,方案设计,完成时间规划) 需求分析: 在上世纪末本世纪初,电子相册呈现迅速发展的势头,普及型数码相机的分辨率由200万象素增长到现在的800—1500万象素,价格也由300美元左右下降到现在的120美元左右。随着数码相机的日益普及,作为一种以数字照片的保存、回放和浏览为核心功能的产品——电子相册自然迎合了消费者的需求。 方案设计: 软件设计:代码包含2个模块,LCD模块包含两个文件,进行图片的显示与编辑;Timer 模块包含6个文件,其中timer.c和timer.h文件完成定时器的初始化,interrupt.h和interrupt.c 文件完成定时器中断函数的初始化,isrservice.h和isrservice.c文件完成定时器中断处理,pic.c 和pic.h等文件是由图片生产的C语言数组文件 硬件方面选择了S3C2440为核心的架构。基于ARM的微处理器具有低功耗、低成本、高性能等特点,ARM采用RISC(精简指令集计算机)架构和流水线结构,使用了大量的寄存器,具有极高的工作效率。其中,RISC架构具有如下特点:固定长度的指令格式,指令归整、简单,基本寻址方式只有2~3种,使用单周期指令,便于流水线操作。因此选择此硬件方案的优势有如下: (1)系统芯片功能强大,实现的功能多,对于新的多媒体格式支持性好,只需要安装更新的软件; (2)硬件电路简单,可采用标准电路,不需耗费过多的资源(人力,资金等); (3)可以在硬件上增加模块,留作二次开发使用,极为方便; (4)S3C2440是一个比较成熟的芯片,技术积累齐全; (5)S3C2440支持丰富的存储卡接口。 完成时间规划:第一天分析实训项目实现过程,完成软件方面内容,编写代码。 第二天实现硬件分析,完成硬件连接,对项目进行测试。 第三天完成实训内容,提交报告。 五、实训项目实现

嵌入式系统实验报告

实验报告 课程名称:嵌入式系统 学院:信息工程 专业:电子信息工程 班级: 学生姓名: 学号: 指导教师: 开课时间:学年第一学期

实验名称:IO接口(跑马灯) 实验时间:11.16 实验成绩: 一、实验目的 1.掌握 STM32F4 基本IO口的使用。 2.使用STM32F4 IO口的推挽输出功能,利用GPIO_Set函数来设置完成对 IO 口的配置。 3.控制STM32F4的IO口输出,实现控制ALIENTEK 探索者STM32F4开发板上的两个LED实现一个类似跑马灯的效果。 二、实验原理 本次实验的关键在于如何控制STM32F4的IO口输出。IO主要由:MODER、OTYPER、OSPEEDR、PUPDR、ODR、IDR、AFRH和AFRL等8个寄存器的控制,并且本次实验主要用到IO口的推挽输出功能,利用GPIO_Set函数来设置,即可完成对IO口的配置。所以可以通过了开发板上的两个LED灯来实现一个类似跑马灯的效果。 三、实验资源 实验器材: 探索者STM32F4开发板 硬件资源: 1.DS0(连接在PF9) 2.DS1(连接在PF10) 四、实验内容及步骤 1.硬件设计 2.软件设计 (1)新建TEST工程,在该工程文件夹下面新建一个 HARDWARE文件夹,用来存储以后与硬件相关的代码。然后在 HARDWARE 文件夹下新建一个LED文件夹,用来存放与LED相关的代码。 (2)打开USER文件夹下的test.uvproj工程,新建一个文件,然后保存在 LED 文件夹下面,保存为 led.c,在led.c中输入相应的代码。

(3)采用 GPIO_Set 函数实现IO配置。LED_Init 调用 GPIO_Set 函数完成对 PF9 和 PF10 ALIENTEK 探索者 STM32F407 开发板教程 119 STM32F4 开发指南(寄存器版) 的模式配置,控制 LED0 和 LED1 输出 1(LED 灭),使两个 LED 的初始化。 (4)新建一个led.h文件,保存在 LED 文件夹下,在led.h中输入相应的代码。 3.下载验证 使用 flymcu 下载(也可以通过JLINK等仿真器下载),如图 1.2所示: 图1.2 运行结果如图1.3所示:

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 :安磊 班级:计科0901 学号: 0909090310 指导老师:宋虹

目录 课程设计容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------ 6 文件系统的层次结构和功能模块 --------------------- 6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录 -------------------------------------------------- 12

课程设计容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小核可编译至 2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统核,它仅仅包含了任务调度,任务管理,时间管理,存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时核,并在这个核之上提供最基本的系统服务,如信号量,,消息队列,存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

嵌入式实验报告

嵌入式技术 实验报告 系别:计算机与科学技术系 班级:计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)

嵌入式系统设计实验四

实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:实验四C 语言裸机编程 实验类型:验证型 同组学生姓名:__孙凡原_______ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 ? 初步了解C 运行库 ? 初步了解gcc arm 常用编译选项 ? 了解ARM 中断处理过程 二、实验内容和原理 ? 编写C 裸机代码实现跑马灯,通过控制Timer 中断实现 ? 通过控制uart 串口进行调试打印 三、主要仪器设备 树莓派、PC 机 四、操作方法和实验步骤 1 通过定时器产生中断,控制gpio ,实现跑马灯 2 控制uart 控制器,产生调试打印。 五、实验数据记录和处理 1.主程序arm.c 注释 //包含头文件 #include #include #include #include "rpi-aux.h" #include "rpi-armtimer.h" #include "rpi-gpio.h" #include "rpi-interrupts.h" #include "rpi-systimer.h" #include "rpi-led.h" /** Main function - we'll never return from here */ void kernel_main( unsigned int r0, unsigned int r1, unsigned int atags ) 专业:测控技术与仪器 姓名:颜睿 学号:3130103850 日期:2018.3.28 地点:创客空间

嵌入式系统综合实验一

实验名称: 姓名: 学号: 装 订 线 P.1 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一dht11和人体感应传感器 实验类型:验证型 同组学生姓名:孙凡原 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握字符设备驱动程序的基本结构和开发方法 2.掌握用户空间调用设备驱动的方法 3.掌握用户和内核的交互 二、实验内容和原理 1.编写温湿度传感器DHT11驱动,传输打印温湿度信息 2.编写人体感应传感器驱动,控制LED 灯亮灭 原理: 温湿度传感器DHT11: 1.引脚图 实际使用传感器没有NC 引脚 2.数据采集 a.数据总时序 用户主机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发 专业:测控技术与仪器 姓名:颜睿 学号:3130103850 日期:2018.4.28 地点:创客空间

装订线送响应信号,送出40bit 的数据,幵触发一次信采集。 b.主机发送起始信号 连接DHT11的DATA引脚的I/O口输出低电平,且低电平保持时间不能小于18ms,然后等待DHT11 作出应答信号。 c.检测从机应答信号 DHT11 的DATA 引脚检测到外部信号有低电平时,等待外部信号低电平结束,延迟后DHT11 的DATA引脚处于输出状态,输出80 微秒的低电平作为应答信号,紧接着输出80 微秒的高电平通知外设准备接收数据。 d.接收数据 (1)数据判定规则 位数据“0”的格式为:50 微秒的低电平和26-28 微秒的高电平,位数据“1”的格式为:50 微秒的低电平加70微秒的高电平。 接收数据时可以先等待低电平过去,即等待数据线拉高,再延时60us,因为60us大于28us且小于70us,再检测此时数据线是否为高,如果为高,则数据判定为1,否则为0。

嵌入式实验报告

目录 实验一跑马灯实验 (1) 实验二按键输入实验 (3) 实验三串口实验 (5) 实验四外部中断实验 (8) 实验五独立看门狗实验 (11) 实验七定时器中断实验 (13) 实验十三ADC实验 (15) 实验十五DMA实验 (17) 实验十六I2C实验 (21) 实验十七SPI实验 (24) 实验二十一红外遥控实验 (27) 实验二十二DS18B20实验 (30)

实验一跑马灯实验 一.实验简介 我的第一个实验,跑马灯实验。 二.实验目的 掌握STM32开发环境,掌握从无到有的构建工程。 三.实验内容 熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现跑马灯工程。通过ISP 下载代码到实验板,查看运行结果。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。 四.实验设备 硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。 五.实验步骤 1.熟悉MDK KEIL开发环境 2.熟悉串口编程软件ISP 3.查看固件库结构和文件 4.建立工程目录,复制库文件 5.建立和配置工程

6.编写代码 7.编译代码 8.使用ISP下载到实验板 9.测试运行结果 10.使用JLINK下载到实验板 11.单步调试 12.记录实验过程,撰写实验报告 六.实验结果及测试 源代码: 两个灯LED0与LED1实现交替闪烁的类跑马灯效果,每300ms闪烁一次。七.实验总结 通过本次次实验我了解了STM32开发板的基本使用,初次接触这个开发板和MDK KEILC 软件,对软件操作不太了解,通过这次实验了解并熟练地使用MDK KEIL软件,用这个软件来编程和完成一些功能的实现。作为STM32 的入门第一个例子,详细介绍了STM32 的IO口操作,同时巩固了前面的学习,并进一步介绍了MDK的软件仿真功能。

嵌入式系统——实验1

《嵌入式系统设计(实验课)》内容安排 《嵌入式系统设计(实验课)》是《嵌入式系统设计》课程的一个重要环节。通过实验,学生可以对嵌入式系统的设计与开发过程有更深地体会。实验课共八次,每次2学时,实验内容结合课程内容,介绍一般的实验开发流程和软件硬件开发环境,并辅之以典型的嵌入式程序设计实例,使学生掌握基本的嵌入式软件开发技能。大量的具有实际应用背景的实验,更将理论与实践结合起来,使实验内容更加生动。 实验报告要求 一、实验名称: 说明:本次实验的名称 二、实验目的: 说明:本次实验的主要目的,参考每次的实验指导书 三、实验环境: 说明:实验用到的硬件软件环境。 四、实验内容与步骤: 说明:实现实验目的而进行的实验内容,如果有步骤要求则简要列出步骤 五、实验报告总结: 说明:对本次实验的总结, 1.画出主函数的程序流程图, 2.重写主程序.或者:自拟一个新的应用,参照本次实验的主程序,重新设计主程序并给出详尽注释。 3.其他,本次实验得到了什么?收获是什么?有些什么别的想法? 六、建议与意见: 说明:对于此次实验内容或在实验过程中有任何问题或建议,以及对于改善实验效果有什么建议,均可提出。 在书写实验报告的过程中,主要是帮助自己回顾和总结实验。重点放在第五部分,前四项可以十分简要地列写,第六项有则提出,无则不写。

实验一嵌入式微处理器系统的开发环境 一、实验环境 PC机一台 软件: ADS 1.2集成开发环境一套 二、实验目的 1.了解嵌入式系统及其特点; 2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序 三、实验内容 1.嵌入式系统的开发环境、基本配置 2.使用汇编指令完成简单的加法实验 四、实验步骤 (1)在D:\新建一个目录,目录名为experiment。 (2)点击 WINDOWS 操作系统的“开始|程序|ARM Developer Suite v1.2 |Code Warrior for ARM Developer Suite”启动Metrowerks Code Warrior,或双击“ADS 1.2”快捷方式启动。启动ADS 1.2 如图1-1所示: 图1-1启动ADS1.2 (3) 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮, 也可以在“File”菜单中选择“New…”菜单。这样就会打开一个如图1-2 所示的对话框。选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。 图1-2 新建文件 在这个对话框中为用户提供了7 种可选择的工程类型:

嵌入式系统实验实验报告

嵌入式系统实验实验报告 一、实验目的 1.基本实验

. Word 资料搭建PXA270嵌入式LINUX开发软硬件环境;安装LINUX操 作系统;安装与配置建立宿主机端交叉编译调试开发环境;配置宿主机 PC 机端的minicom(或超级终端)、TFTP服务、NFS服务,使宿主PC机与PXA270开发板可以通过串口通讯,并开通TFTP 和NFS服务。 2.人机接口 键盘驱动;LCD控制;触摸屏数据采集与控制实验; 3.应用实验 完成VGA显示;Web服务器实验;网络文件传输实验;多线程应用实验。 4.扩展应用实验 完成USB摄像头驱动与视频采集;GPS实验;GSM/GPRS通讯;视频播放移植;USB蓝牙设备无线通讯;NFS文件服务器;蓝牙视频文件服务器。 5.QT实验 完成基本嵌入式图形开发环境搭建;“Hello world!”QT初探;创建一个窗口并添加按钮;对象通信:Signal和Slot;菜单和快捷键;工具条和状态栏;鼠标和键盘事件;对话框;QT的绘图;俄罗斯方块;基于QT的GSM手机在嵌入式LINUX下的设计与实现。 二、实验内容 1.人机接口实验 实验十九键盘驱动实验 ?实验目的:矩阵键盘驱动的编写

?实验内容:矩阵键盘驱动的编写 ?作业要求:完成键盘加减乘除运算 ?实验作业源码及注释: #INCLUDE #INCLUDE #INCLUDE #INCLUDE #INCLUDE #INCLUDE #DEFINE DEVICE_NAME “/DEV/KEYBOARD” INT MAIN(VOID){ INT FD; INT RET; UNSIGNED CHAR BUF[1]; INT I,F,J; DOUBLE X; INT A[2]={0}; CHAR PRE_SCANCODE=0XFF; FD=OPEN(DEVICE_NAME,O_RDWR); IF(FD==-1)PRINTF(“OPEN DEVICE %S ERROR\N”,DEVICE_NAME); ELSE{ BUF[0]=0XFF; I=0;F=0; WHILE(1){ READ(FD,BUF,1);

嵌入式综合实验报告

《嵌入式系统综合实验》报告 学号: 姓名: Shanghai University of Engineering Science School of Electronic and Electrical Engineering

基于STM32的GPS信息显示系统 ——嵌入式系统综合实验报告 班级:0211112 姓名:褚建勤学号:021111228 班级:0211112 姓名:于心忆学号:021111216 班级:0211112 姓名:乐浩奎学号:021111232 一、产品设计要求(产品规格描述) 1 、嵌入式产品名称 GPS信息显示系统 2 、嵌入式产品目的 在学校的生活中,你经常可能需要联系不是同一间宿舍的同学,但是你不能确定他现在在什么地方,这时候全球定位系统(GPS)就可以发挥作用了,但是传统的GPS系统只能提供经纬度信息,不能直观的显示你想要找到人在何处,我们的系统就在传统的GPS的基础上添加了对应位置显示的功能,方便你更方便更快捷的找到你想找的同学 3 、嵌入式产品功能 使用GPS输入用户位置信息 GPS将相关经纬度信息反馈给主处理器 主处理器处理相关位置信息并将信息转换为对应位置在LCD上显示出来 在LCD上输出用户状态信息 4 、嵌入式产品的输入和输出 输入设备:GPS系统 输出设备:LCD 二、产品方案设计(产品设计方案) 1 2 1 )处理器选择 本系统选用基于ARMCortex-M3内核的STM32F103RB嵌入式微控制器作为处理器。 ①选用原因 A 技术因素 工作频率: 最高72MHz。 内部和外部存储器: 128K字节的闪存程序存储器,用于存放程序及数据;多达20K字节的内置SRAM,CPU能以0等待周期访问(读/写)。

嵌入式系统设计性实验报告

嵌入式系统设计性实验报告 水温控制系统 院别:控制工程学院 专业:自动 学号:5090633 姓名:邱飒飒 指导老师:孙文义 2012年6月8日

嵌入式系统设计性实验报告 作者:邱飒飒班级:50906 学号:5090633 摘要:在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而大大的提高产品的质量和数量。因此,单片机对温度的控制问题是工业生产中经常会遇到的控制问题.该实验设计基于飞思卡尔MC9S12DG128开发板平台,根据实验任务要求,完成了基于单片机的水温自动控制系统的设计该实验设计基于飞思卡尔MC9S12DG128开发板平台,根据实验任务要求,完成了水温自动控制系统的设计。 关键字:水温控制单片机MC9S12DG128 一、系统设计的功能 1.1 水温控制系统设计任务和要求 该系统为一实验系统,系统设计任务: 设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。 水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。同时满足以下要求: (1)温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。 (2)环境温度降低时(例如用电风扇降温)温度控制的静态误差≤1℃。 (3)用十进制数码管显示水的实际温度保留一位小数。 (4)采用适当的控制方法(如数字PID),当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。 (5)温度控制的静态误差≤0.2℃。 (6)从串口输出水温随时间变化的数值。 1.2 水温控制系统部分 水温控制系统是一个过程控制系统,组成框图如下所示,有控制器、执行器、被控对象及其反馈作用的测量变送组成。 图1 控制系统框图 1.3 系统总体功能分析 本系统是一个简单的单回路控制系统,为了实现温度的测量及自动控制,根据任务要求及要求,系统由单片机系统,前向通道,后向通道,及人机通话四个模块构成。总体框图如图2 所示。

嵌入式系统实验报告

郑州航空工业管理学院 嵌入式系统实验报告 (修订版) 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汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名:

嵌入式系统设计实验二

实验报告 课程名称:嵌入式系统设计指导老师:马永昌成绩:________________ 实验名称:嵌入式系统的启动实验类型:验证型同组学生姓名:__孙凡原_______ 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 ?初步了解嵌入式系统的开发流程 ?初步了解嵌入式系统的启动流程 ?掌握Linux内核编译 二、实验内容和原理 ?编译Linux内核 ?烧写内核镜像并启动 ?启动参数配置 三、主要仪器设备 树莓派、PC机 四、操作方法和实验步骤 1 安装编译内核的交叉编译工具链 2 配置内核,编译生成内核镜像文件。 3 替换SD卡中原先的内核镜像文件,启动树莓派。 五、实验数据记录和处理 1.创建root用户 sudo passwd root 输入密码,创建root用户密码 su root 切换到root用户

2.安装编译内核的交叉编译工具链 将交叉编译工具链压缩文件gcc-linaro-arm-linux-gnueabihf-raspbian-x64.tgz放入到虚拟机/home (从图形界面打开/home的方法:ubuntu侧栏Files->Devices->Computer->home, 注意不是“Home”)下,解压。 tar xzvf gcc-linaro-arm-linux-gnueabihf-raspbian-x64 设置环境变量 export PATH=$PATH:/home/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin 此时运行 arm-linux-gnueabihf-gcc --version 可以看到版本号表明交叉编译工具链安装完成。 3.配置内核并编译 将内核源代码压缩文件放入到虚拟机/home下,解压 tar xzvf linux.tgz 配置内核 cd linux KERNEL=kernel7 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig 编译内核 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

《单片机系统设计》实验报告

短学期实验报告 (单片机系统设计) 题目: 专业: 指导教师: 学生姓名: 学号: 完成时间: 成绩:

基于单片机的交流电压表设计 目录 1系统的设计要求 (2) 2系统的硬件要求 (2) 2.1真有效值转换电路的分析 (2) 2.2放大电路的设计 (3) 2.3A/D转换电路的设计 (3) 2.4单片机电路的分析 (4) 2.5显示电路 (4) 3 软件设计 (5) 3.1 软件的总流程图 (5) 3.2 初始化定义与定时器初始化流程图 (5) 3.3 A/D转换流程图 (6) 3.4 数据处理流程图 (6) 3.5 数据显示流程图 (7) 4 调试 (7) 4.1 调试准备 (7) 4.2 关键点调试 (7) 4.3 测试结果 (8) 4.4 误差分析 (8) 5结束语 (8) 5.1 总结 (9) 5.2 展望 (9) 附录1 总原理图 (10) 附录2 程序 (10) 附录3 实物图 (14)

基于单片机的交流电压表设计 ****学院 ****专业 姓名 指导老师:******* 1 设计要求 (1)运用单片机实现真有效值的检测和显示。 (2)数据采集使用中断方式,显示内容为有效值与峰值交替进行。 2 硬件设计 本系统是完成一个真有效值的测量和显示,利用AD737将交流电转换成交流电压的有效值,用ADC0804实现模数转换,再通过单片机用数码管来显示。系统原理框图如图2-1所示。系统框图由真有效值转换电路、放大电路、A/D 转换电路、单片机电路、数码管显示电路五部分。 图2-1 原理框图 2.1 真有效值转换电路 真有效值转换电路主要是利用AD737芯片来实现真有效值直流变换的,即将输入的交流信号转换成直流信号的有效值,其原理图如图2-2所示。 图2-2 真有效值转换电路 由于AD737最大输入电压为200mV, 所以需要接两个二极管来限制输入电压,起到限幅的作用。如图中D1、D2,由IN4148构成,电容C6是耦合电容,电阻R1是限流电阻。 2.2 放大电路设计 放大电路主要是利用运放uA741来进行放大,电路原理图如图2-3所示。 A/D 转换 单片机 电路 显示 电路 转换 电路 交流 信号 放大 电路

相关文档
最新文档