嵌入式原理实验上机实验四

合集下载

嵌入式系统原理与应用实验报告(实验四 环境的搭建)

嵌入式系统原理与应用实验报告(实验四 环境的搭建)

实验四环境的搭建一.实验目的和要求1了解嵌入式交叉编译的相关知识2能够搭建嵌入式Linux开发环境二.实验环境Windows XP的PC机,虚拟机,ARM开发板三,实验步骤(一)设置超级终端1.启动:开始->程序->附件->通讯->超级终端.2.是否将HyperTerminal作为默认的telnet程序?“否”3,位置信息窗口:“取消”4.需要拨号位置的电话信息,确实要取消吗?“是”“确定”。

5.为新的连接取名:sst6.连接实验箱的串口:“COM1”7.端口设置(即串口COM1的设置)8.进入vivi启动界面,“文件—>另存为”保存该连接设置(二)Xshell1)连接ARM开发板2)连接虚拟机1. XP的本地IP地址为192.168.1.11,子网掩码255.255.2555.0;默认网关192.168.1254.虚拟机改为自动获得IP地址。

2.Linux虚拟机内运行命令ifconfig,,查看虚拟机的网络设置3.启动Xshell后,点击左上角图标,新建一个会话连接虚拟机。

如下:8.在虚拟机的红帽菜单中“系统设置”->“服务器设置”->“samba”10.在XP的地址栏中输入\\192.168.1.12,即可访问Linux虚拟机的/home/uptech(三)将XP中的文件夹共享给虚拟机1.在虚拟机菜单中选择“虚拟机—>设置”2选择“选项” ”文件夹共享”;总是启用,可以添加想要共享的文件夹。

(四)NFS共享:将虚拟机中的文件夹共享给ARM开发板(五)测试U-Boot1.连接好串口,网线,断开关口;2.重新启动ARM开发板;3.在Xshell中随便按键,即可看到u-boot启动成功;4.常用命令:printenv (用于查看环境变量)Setenv 环境变量名环境变量值(用于修改环境变量)Saveenv (用于保存环境变量)Ping 192.168.1.12Help 得到帮助只要运行这些命令,说明u-boot成功!。

《嵌入式接口技术》实验报告4-LED点阵显示

《嵌入式接口技术》实验报告4-LED点阵显示
这个实验和实验二数码管的实验差不多,只是把接受数据的一段换成了led点阵,所以难度不是很大,复习一下实验二就能够做出来。
六、教师评语
签名:
日期:
日期:
成绩
PINSEL0=0x00000000;
IO0DIR=0x3f;
while(1)
{
screen();
}
return 0;
}
效果图:
五、分析与讨论
这个实验和实验二数码管的实验差不多,只是把接受数据的一段换成了led点阵,所以难度不是很大,复一下实验二就能够做出来。
这个实验和实验二数码管的实验差不多,只是把接受数据的一段换成了led点阵,所以难度不是很大,复习一下实验二就能够做出来。
Senddata_Row(ROW[j+1]);
Senddata_Line(LINE[j+1]);
Delay(50);
Senddata_Row(0xff);
Senddata_Line(0x00);
j=j+2;
Delay(1000);
}
}
int main (void)
{// add user source code
#define DS2 0x08
#define SH_CP1 0x02
#define ST_CP1 0x04
#define SH_CP2 0x10
#define ST_CP2 0x20
uint32 const ROW[]={0xc3,0xdb,0x87,0xb7,0x0f,0x6f,0x87,0xb7,0xc3,0xdb,0xe1,0xed,0xf0,0xf6,0xe1,0xed};
else
IO0SET=DS1;

嵌入式μCOS-II内核实验四(哲学家就餐问题的实现)

嵌入式μCOS-II内核实验四(哲学家就餐问题的实现)
嵌入式μcos-ii内核实验四
目录
• 引言 • 哲学家就餐问题概述 • μcos-ii内核任务管理 • 哲学家就餐问题的μcos-ii实现 • 实验结果与分析 • 总结与展望
01
引言
嵌入式系统与μcos-ii内核简介
嵌入式系统
是一种专用的计算机系统,主要用于控制、监视或帮助操作 机器设备。它通常具有实时性、可靠性和低功耗等特点,广 泛应用于工业控制、智能家居、医疗设备等领域。
任务优先级与调度
任务优先级
在μcos-ii内核中,每个任务都有自己 的优先级。优先级高的任务会优先获 得CPU的使用权。
任务调度
μcos-ii内核使用基于优先级的抢占式任务 调度算法。当一个高优先级的任务就绪时, 内核会立即抢占当前正在运行的任务,并切 换到高优先级的任务上运行。
任务同步与通信
任务同步
解决方案的分类与比较
解决方案分类
解决哲学家就餐问题的方案可以分为两类:静态方案和动态方案。静态方案在 系统启动时分配固定的资源,而动态方案则在运行时动态地分配资源。
解决方案比较
静态方案实现简单,但可能导致死锁或饥饿问题。动态方案可以更好地解决这 些问题,但实现起来较为复杂,需要更多的系统资源和时间。在实际应用中, 需要根据具体需求和系统限制选择合适的解决方案。
05
实验结果与分析
实验环境与配置
01
硬件平台
ARM Cortex-M4微控制器 (具体型号为
STM32F407ZGT6)
02
开发环境
Keil uVision5
03
04
实验任务
实现基于μcos-ii内核的多任务 切换
配置参数
任务优先级、任务堆栈大小、 任务状态等

嵌入式微处理器实验指导(实验一、二、三、四、五)

嵌入式微处理器实验指导(实验一、二、三、四、五)

实验一、Linux常用命令及工具【实验目的】熟悉Linux常用命令及工具的使用,特别是常用命令的关键选项及用法需要熟悉。

【实验内容】1. 在老师讲解下掌握Linux常用命令和工具的用法;2. 打开虚拟机ubuntu的Terminal,进行命令的练习和熟悉;3. 截图保存相关界面;【实验准备】1. 熟悉Ubuntu虚拟机的安装和使用。

2. 熟悉Linux常用命令和工具。

【实验报告要求】1. 分别叙述Linux常用命令、ctags+vim工具的功能和一般用法,包括常用选项。

2. 需要有实验记录。

【实验步骤】一、常用命令用法:1、对于不熟悉的命令请查看网页:/2、ls的功能及常用选项,当以长格式显示目录下的内容列表时,输出的信息从左到右依次包括文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间、文件名等,对于文件类型和权限模式需要熟悉;3、cd的功能及常用选项:-、/、~、.、..各表示什么意思?4、mkdir、cp、mv、rm、pwd的功能及常用选项;5、chmod的功能及常用选项;6、find的功能及常用选项;7、grep的功能及常用选项;8、tar的功能及常用选项。

二、常用工具的安装和熟悉1、下载ctags-5.8.tar.gz和vim-6.4.tar.bz2文件,复制到虚拟机的root目录下,用tar解压缩,然后安装。

安装方法如下:1)进入源代码根目录执行./configure,2)然后执行make,3)编译成功后执行make install。

2、进入/opt/WXL/wxl210/linux2.6.35wxl210exp20131202路径下,运行命令:ctags –R *然后运行:vi –t WXL_hello_init就能定位到WXL_hello_init函数定义的代码处,熟悉此文档中的代码并理解。

注意Ctrl + ]和Ctrl + T的用法。

3、将vimrc文件复制到虚拟机/root目录下,改名为.vimrc。

嵌入式实验四实验报告

嵌入式实验四实验报告

嵌入式实验四实验报告实验四:嵌入式编程设计
实验设计目的:
1. 学习使用嵌入式开发工具进行编程设计;
2. 学习使用C语言编写嵌入式程序;
3. 学习使用GPIO模块进行输入输出;
4. 学习使用中断处理函数。

实验器材:
1. 嵌入式开发板;
2. USB数据线;
3. 电脑;
4. LED灯;
5. 电阻;
6. 蜂鸣器;
7. 其他必要的电路元件。

实验步骤:
1. 连接开发板和计算机,安装开发板驱动程序;
2. 打开嵌入式开发工具,创建一个新的工程;
3. 在工程中添加一个C文件,编写程序;
4. 编写程序实现以下功能:
- 使用GPIO模块控制LED灯的亮、灭;
- 使用GPIO模块读取按键状态;
- 使用GPIO模块控制蜂鸣器的开、关;
- 使用Timer模块计时;
- 使用中断处理函数处理外部中断;
- 其他必要的功能;
5. 编译程序,下载到开发板;
6. 运行程序,测试功能是否正常。

实验结果与分析:
实验结果应当是LED灯、蜂鸣器、按键正常工作,可以通过按键控制LED灯的亮、灭、蜂鸣器的开、关。

实验总结:
通过本次实验,我学会了使用嵌入式开发工具进行编程设计,掌握了使用C语言编写
嵌入式程序的方法。

通过实验,我深入理解了嵌入式系统的原理和实现方法,对嵌入
式系统的应用有了更加深入的了解。

在今后的学习和工作中,我将能够更好地运用嵌
入式技术解决实际问题。

嵌入式实训课实验报告

嵌入式实训课实验报告

一、实验背景嵌入式系统在现代工业、消费电子、智能家居等领域扮演着越来越重要的角色。

为了让学生深入了解嵌入式系统的设计原理和开发过程,提高学生的实践能力和创新精神,我们开设了嵌入式实训课程。

本次实验报告将针对实训课程中的部分实验进行总结和分析。

二、实验目的1. 掌握嵌入式系统的基本原理和开发流程。

2. 熟悉嵌入式开发工具和环境。

3. 熟练使用C语言进行嵌入式编程。

4. 学会调试和优化嵌入式程序。

三、实验内容本次实训课程共安排了五个实验,以下是每个实验的具体内容和实验步骤:实验一:使用NeoPixel库控制RGB LED灯带1. 实验目的:学习使用NeoPixel库控制RGB LED灯带,实现循环显示不同颜色。

2. 实验步骤:(1)搭建实验平台,连接NeoPixel LED灯带。

(2)编写程序,初始化NeoPixel库,设置LED灯带模式。

(3)通过循环,控制LED灯带显示不同的颜色。

实验二:使用tm1637库控制数码管显示器1. 实验目的:学习使用tm1637库控制数码管显示器,显示数字、十六进制数、温度值以及字符串,并实现字符串滚动显示和倒计时功能。

2. 实验步骤:(1)搭建实验平台,连接tm1637数码管显示器。

(2)编写程序,初始化tm1637库,设置显示模式。

(3)编写函数,实现数字、十六进制数、温度值的显示。

(4)编写函数,实现字符串滚动显示和倒计时功能。

实验三:使用ds18x20库和onewire库读取DS18B20温度传感器的数据1. 实验目的:学习使用ds18x20库和onewire库读取DS18B20温度传感器的数据,并输出温度值。

2. 实验步骤:(1)搭建实验平台,连接DS18B20温度传感器。

(2)编写程序,初始化ds18x20库和onewire库。

(3)编写函数,读取温度传感器的数据,并输出温度值。

实验四:使用ESP32开发板连接手机热点,并实现LED1作为连接指示灯1. 实验目的:学习使用ESP32开发板连接手机热点,并通过LED1指示灯显示连接状态。

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

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

实验一熟悉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 hello2、编写程序源代码在Linux下的文本编辑器有许多,常用的是vim和Xwindow界面下的gedit等,我们在开发过程中推荐使用vim,用户需要学习vim的操作方法,请参考相关书籍中的关于vim的操作指南。

Kdevelope、anjuta软件的界面与vc6.0 类似,使用它们对于熟悉windows环境下开发的用户更容易上手。

实际的hello.c源代码较简单,如下:#include <stdio.h>main(){printf(“hello world \n”);}我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:[root@zxt hello]# vi hello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc键进入命令状态,再用命令“:wq”保存并退出。

嵌入式实验报告数码管显示实验

嵌入式实验报告数码管显示实验

实验报告课程名称嵌入式系统编程实践实验仪器清华同方辰源嵌入式系统实验箱实验名称实验四:数码管显示实验系别__计算机学院_专业 _班级/学号学生姓名实验日期 2013年10月11日成绩___________________指导教师实验四:数码管显示实验一、实验问题回答(1)如何设置功能3,4中的循环速度?答:利用系统SysTick Handler中断,控制循环速度void SysTick_Handler (void){Event = 1;}(2)若是想实现类似实验(三)通过键盘动态控制循环速度,考虑一下应该如何设计?答:SysTickPeriodSet(SysCtlClockGet() / X)//设置x的大小就可以控制循环的速度。

void Reset_Counter_Speed(int x){SysTickIntDisable();SysTickDisable();SysTickPeriodSet(SysCtlClockGet() / x);// 设置x,控制计数频率,值与频率成正比SysTickEnable();SysTickIntEnable();},达到预期的效果。

二、实验目的和效果(效果即是否达到实验目的,达到的程度如何)学习、了解和掌握数码管工作原理和使用方法实验结果及检查(1)默认在在OLED屏幕上分行显示自己的学号、姓名、项目序号、时间,如“2010011001”、“zhangsan”、“work4”、“2012-11-”(2)首先在屏幕上显示四个功能选单,通过键盘A-F键选择不同功能,选择后屏幕显示相关功能提示,接受键盘输入的数字键0-9并在数码管上显示。

如:开始显示:“please choose the function:”“A: …”“B: …”“C: …”“D: …”按下“A”键后,显示”now you choose function A”(3)按下键盘后,根据不同功能在数码管上显示按键字符。

嵌入式系统原理与应用实验指导书(合稿+习题)

嵌入式系统原理与应用实验指导书(合稿+习题)

嵌入式系统原理与应用实验指导书南航金城学院2013.2目录目录 (1)第一部分试验箱硬件结构 (2)第二部分实验 (11)实验一ADS1.2集成开发环境练习 (11)实验二汇编指令实验1 (17)实验三汇编指令实验2 (20)实验四汇编指令实验3 (23)实验五ARM微控制器工作模式实验 (28)实验六 C语言程序实验 (33)实验七 C语言调用汇编程序实验 (36)实验八GPIO输出控制实验 (39)实验九GPIO输入实验 (46)实验十外部中断实验 (50)实验十一UART通讯实验 (56)实验十二I2C接口实验 (64)实验十三定时器实验 (75)实验十四PWM DAC实验 (81)实验十五ADC实验 (87)实验十六RTC实验 (94)实验十七步进电机控制实验 (101)实验十八直流电机控制实验 (105)附录1 DeviceARM2410 专用工程模板 ..................................................... 错误!未定义书签。

第一部分试验箱硬件结构MagicARM2410教学实验开发平台是一款可使用μC/OS-II、Linux和WinCE操作系统、支持QT、MiniGUI图形系统、集众多功能于一身的ARM9教学实验开发平台。

采用Samsung公司的ARM920T内核的S3C2410A微处理器,扩展有充足的存储资源和众多典型的嵌入式系统接口。

MagicARM2410实验箱参考如图1.1所示。

图1.1 MagicARM2410实验箱外观图MagicARM2410实验箱功能框图如图1.2所示。

图1.2 MagicARM2410实验箱功能框图1.1 S3C2410A芯片简介S3C2410A是Samsung公司推出的16/32位RISC处理器(ARM920T内核),适用于手持设备、POS机、数字多媒体播放设备等等,具有低价格、低功耗、高性能等特点。

嵌入式系统基础实验报告

嵌入式系统基础实验报告

本科实验报告课程名称:嵌入式系统基础实验项目:实验一双字节加法实验二数据排序程序实验三定时/计数器实验四外部中断实验地点:跨越机房专业班级:通信0903 学号:2009001385 学生姓名:指导教师:武娟萍2012年 5 月18 日实验一双字节加法一实验目的(1)熟悉MCS-51指令系统,掌握程序设计方法。

(2)掌握双字节加法的程序算法。

二实验设备计算机一台。

操作系统:Windows 98/2000/XP应用软件:WAVE 6000或其他。

三实验内容编写并调试一个双字节加法程序,设9930H存在R1R0中,6083H存在R2R3中,计算R1R0+R3R2,结果存在R5R4中。

四实验原理两数的低位相加后保留进位位,高位数相加时,将低位的进位加上。

五WAVE6000操作过程一、新建文件:选择菜单【文件/新建文件】功能,出现一个文件名为NONAME1的源程序窗口,在此窗口中输入编好的程序。

二、保存文件:输完程序后,选择菜单【文件/保存文件】或【文件/另存为】功能,给出文件要保存的位置保存文件,保存文件为MY.ASM。

三、新建项目选择菜单【文件/新建项目】功能,1)加入模块文件,选择刚才保存的文件,按打开键,可以打开多个文件2) 加入包含文件,选择所要加入的包含文件,如果没有包含文件,按取消键3)保存项目为MY,无需后缀。

将用户项目存盘,用户在编译项目时,自动存盘。

注意:当用项目仿真时,系统要求,项目文件,模块文件包含文件在同一个目录(文件夹)下五、项目复制复制项目,用户可以将项目中的所有模块(用户程序)备份到另一个地方。

在多模块项目中,用复制项目功能,可以避免用户因少复制某些模块,而造成编译不能通过,方便用户对程序进行管理六、项目设置选择菜单【设置/仿真器设置】,在仿真器设置栏中1)点击语言栏选择伟福汇编器。

2)仿真器选择栏选择80313)通信设置选择使用伟福软件模拟器七、编译程序:选择菜单【项目/编译】功能编译项目。

嵌入式实验报告四

嵌入式实验报告四

嵌入式实验报告四实验时间2015.6.16 报告人一、实验目的:1.嵌入式文件烧写;2.通过上机实验,使学生验证、巩固和充实所学理论知识,加深对相关内容的理解,了解嵌入式操作系统的镜像文件固化方法。

二、实验要求:1.安装flash编程软件;2.针对具体flash闪存芯片烧写vivi、kernel、文件系统。

3.观察嵌入式系统不同阶段的运行。

三、问题:1.简述嵌入式开发中bootloader、kernel、filesystem的功能。

答:bootloader:Bootloader是系统启动后首先运行的程序,对于嵌入式linux操作系统的Bootloader,其最基本的功能是加载linux的内核并运行。

Bootloader一般还具有以下的功能:通讯功能、FLASH相关功能、用户接口功能、Linux内核配置和编译的流程、Linux内核配置、Linux内核的编译Kernel:操作系统内核,通常运行进程,并提供进程间的通信;与系统结构相关的核心代码,内核管理代码,在系统崩溃的时候,可以进行一定的工作。

Filesystem:系统文件,主要由以下几项:Quota support:Quota可以限制每个用户可以使用的硬盘空间的上限,在多用户共同使用一台主机的情况中十分有效。

DOS FAT fs support:DOS FAT文件格式的支持,可以支持FAT16、FAT32。

ISO 9660CD-ROMfile system support:光盘使用的就是ISO9660的文件格式。

NTFS file system support:NTFS是NT使用的文件格式。

/proc file system support:/proc文件系统是Linux提供给用户和系统进行交互的通道。

2.简述NORflash和NANDflash的区别。

答:NOR比较适合存储程序代码,其容量一般较小(比如小于32MB),价格较高,而NAND容量可达1GB以上,价格也相对便宜,适合存储数据。

嵌入式系统实验4

嵌入式系统实验4

Date:18 June 2014
嵌入式系统应用教程
21
实验源代码put()
void put(struct prodcons * b, int data) { pthread_mutex_lock(&b->lock); while ((b->writepos + 1) % BUFFER_SIZE == b->readpos) { printf(“wait for not full\n”); pthread_cond_wait(&b->notfull, &b->lock); } /* 等待直到缓冲不满*/ b->buffer[b->writepos] = data; /* 写入数据到缓冲区*/ b->writepos++; /* 缓冲区指针加1*/ if (b->writepos >= BUFFER_SIZE) b->writepos = 0; /*写入指针回卷*/ pthread_cond_signal(&b->notempty); /* 发缓冲区不空信号 */ pthread_mutex_unlock(&b->lock); }
线 程 1 线 线 程 …… 程 2 n
进程1
进程2
……
进程n
进程I
多个进程处于不同地址空间
同一进程的多个线程共 享相同地址空间
Date:18 June 2014
嵌入式系统应用教程
6
Linux操作系统实现了Posix线程标准,头文件pthread.h提供 了多线程方面的系统调用的声明。 ①线程标识符 数据类型 pthread_t。唯一地标识一个线程。

嵌入式系统开发实验四

嵌入式系统开发实验四
(7) 测试该设备
3.2 linux 下字符设备的驱动开发实例----LED 驱动
(可参考 FS2410P 实验指导手册 v2.1.2.pdf,302-313)
(1)实验内容:4 个 LED 灯轮流闪烁
本节要求实现在一个字符设备驱动里面实现对 GPIO 端口的操作。
● 在模块加载的时候跑马灯运行起来
●#vi gpio_test.c
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcnt1.h> #include <errno.h> #include <linux/delay.h> #include <sys/ioctl.h> int main(int argc, char **argv) {
表 1 用户指示灯占用 CPU 资源列表
序号
名字
CPU 端口资源
1
LED1
GPF4
2
LED2
GPF5
3
LED3
GPF6
4
LED4
GPF7
图 1 LED 原理图
(3) LED 驱动源代码及说明
◆在/s3c2410 下新odrv
●#cd /s3c2410/gpiodrv
printk("magic_leds_init\n");
result = register_chrdev(IOPORT_MAJOR, "gpio", &magic_leds_fops); if (result < 0) {
printk( "Failed to register major.\n"); return result; }

嵌入式系统原理实验四蜂鸣器

嵌入式系统原理实验四蜂鸣器

实验四蜂鸣器实验实验目的:控制ALIENTEK战舰STM32开发板上的蜂鸣器发出:“嘀”…“嘀”…的间隔声,进一步熟悉 STM32 IO 口的使用内容要点:1.硬件介绍蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

蜂鸣器主要分为压电式蜂鸣器和电■磁式蜂鸣器两种类型。

战舰STM32开发板板载的蜂鸣器是电磁式的有源蜂鸣器这里的有源不是指电源的“源”,而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声STM32的单个IO最大可以提供25mA电流(来自数据手册),而蜂鸣器的驱动电流是30mA 左右,两者十分相近,但是全盘考虑,STM32整个芯片的电流,最大也就150mA,如果用IO 口直接驱动蜂鸣器,其他地方用电就得省着点了…所以,我们不用 STM32的IO直接驱动蜂鸣器,而是通过三极管扩流后再驱动蜂鸣器,这样STM32的10只需要提供不到1mA的电流就足够了。

IO 口使用虽然简单,但是和外部电路的匹配设计,还是要十分讲究的,考虑越多,设计就越可靠,可能出现的问题也就越少。

蜂鸣器在硬件上也是直接连接好了的,不需要经过任何设置,直接编写代码就可PBS 139图1 蜂鸣器与STM32连接原理图当PB.8输出高电平的时候,蜂鸣器将发声,当PB.8输出低电平的时候,蜂鸣器停止发声2.软件设计可以直接打开本实验工程,也可以按下面的步骤在实验 1的基础上新建蜂鸣器实验工程。

复制上一章的 LED 实验工程,然后打开USER 目录,把目录下面工程 LED.uvprojx 重命 名为BEEPuvprojx 。

,然后在 HARDWARE 文件夹下新建一个 BEEP 文件夹,用来存放与蜂鸣器相关的代码将beep.h 头文件的路径加入到工程里面一般的头文件有固定的格式, 多个地方调用头文件会重复引用, 为了避免头文件内容重复引用,一般通过预编译的方式来写头文件。

嵌入式实验指导书

嵌入式实验指导书

上机一Linux 系统下的C语言编译环境(验证型4学时)一上机目的1 学习Linux 环境,熟悉Linux下C语言程序的运行环境,了解所用计算机系统软、硬件配置。

2 初步了解在该集成环境下如何编辑、编译、连接和运行一个C程序,即运行一个C程序的全过程。

3 通过运行简单的C程序,初步了解C程序的基本结构及特性。

二上机内容1 建立自己的文件夹,以备存放文件。

进入Linux系统环境,选择合适的编辑器和编译工具。

输入简单C程序(可用教科书上的例题),了解C程序运行的全过程。

1、计算整数m的n次幂.2、打印最长的输入行运行结果:1 每次上机前,认真预习本次上机实验内容,按老师的要求,需编写的程序,应书写整齐。

2 上机输入和调试程序,调试通过后,打印出程序清单并把运行结果记录下来(在条件允许下)。

3 上机结束后,按照上机指导书的具体要求,整理出上机报告(字迹工整),下次上机交给指导教师。

4 上机报告应包括以下内容:(1)上机题目;(2)算法说明(复杂的可用流程图表示);(3)程序清单(有条件用打印机打印出来);(4)运行结果;(5)对运行情况作分析,以及本次实验所取得的经验。

如程序未能通过,应分析错误原因。

以下题目三选一。

1已知三角形的三边a、b、c(通过键盘输入),编写一个程序求三角形的面积。

2 编写程序实现求一元二次方程式的根,ax2+bx+c=0中的a、b、c从键盘输入。

3 编写程序实现求任意三个数的平均值。

上机二 C语言基本语法实验一上机目的1 进一步掌握运行一个C语言程序的方法和步骤。

2 分清C语言的符号、标识符、保留字的区别。

3 掌握C语言的数据类型,会定义整型、实型、字符型变量以及对它们的赋值方法。

4 学会数据输入方式和数据输出格式及各种格式转意符。

5 学会使用C的运算符以及用这些运算符组成的表达式。

三上机内容1 输入并运行下面程序,分析其运行结果。

main(){ char c1,c2;c1=46;c2=47;printf(“%3c%3c”, c1,c2);printf(“%3d%3d”, c1,c2);}将程序第二行改为:int c1,c2;再运行,分析其结果。

嵌入式实验四

嵌入式实验四

仲恺农业工程学院实验报告纸实验四内存管理单元实验一、实验目的1.了解虚拟地址和物理地址的关系2.了解MMU的内存访问权限机制3.掌握如何通过设置MMU来控制虚拟地址到物理地址的转化二、实验内容1. 设置好存储控制器,使外接的SDRAM可用;2. 开启MMU前使用物理地址寻址,开启MMU后使用虚拟地址寻址。

三、实验设备1. EL-ARM-830教学实验箱,PentiumII以上的PC机,仿真调试电缆,串口电缆。

2. PC操作系统WIN98或WIN2000或WINXP,MDK集成开发环境,仿真调试驱动程序四、实验步骤1.本实验仅使用实验教学系统的CPU板,串口。

在进行本实验时,LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。

2.在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接公/母接头串口线。

3.检查连接是否可靠,可靠后,接入电源线,系统上电。

4.打开MDK开发环境,修改第7.2节:MMU使用实例中的head.s程序。

5. 修改init.c程序。

(注意P120页的内嵌汇编指令是gcc汇编,要改为ARM汇编)6 .修改leds.c程序7. 编译,生成可执行程序,使用JTAG工具烧入NANDFlash后,按复位键启动系统。

轮流点亮开发板上的两个led灯。

五、实验程序(一)head.s程序:PRESERVE8IMPORT MainAREA RESET, CODE, READONL YEXPORT _start_startldr sp,=4096bl disable_watch_dogbl memsetupbl copy_2th_to_sdrambl create_page_tablebl mmu_initldr sp,=0xB4000000ldr pc,=0xB0004000halt_loop:b halt_loopEND(二)init.c程序:#define WTCON (*(volatile unsigned long *)0x53000000)#define MEM_CTL_BASE 0x4800000void disable_watch_dog(void){WTCON=0;}{unsigned long const mem_cfg_val[]={0x22011110, 0x00000700,0x00000700,0x00000700,0x00000700,0x00000700,0x00000700,0x00018005,0x00018005,0x008C07A3;0x000000B1,0x000000030,0x000000030,};int i=0;volatile unsigned long *p=(volatile unsigned long *)MEM_CTL_BASE;for(;i<13;i++)p[i]=mem_cfg_val[i];}void copy_2th_to-sdram(void){unsigned int *pdwSrc=(unsigned int *)2048;unsigned int *pdwDest=(unsigned int *)0x30004000;while (pdwSrc<(unsigned int *)4096){*pdwDest=*pdwSrc=pdwDest++;pdwSrc++;}}void create_page_table(void){#define MMU_FULL_ACCESS (3<<10)#define MMU_DOMAIN (0<<5)#define MMU_SPECIAL (1<<4)#define MMU_CACHEABLE (1<<3)#define MMU_BUFFERABLE (1<<2)#define MMU_SECTION (2)#define MMU_SECDESC (MMU_FULL_ACCESS|MMU_DOMAIN|MMU_SPECIAL|\MMU_SECTION)#define MMU_SECDESC_WB (MMU_FULL_ACCESS|MMU_DOMAIN|MMU_SPECIAL|\MMU_CACHEABLE|MMU_BUFFERABLE|MMU_SEC TION)#define MMU_SECTION-SIZE 0x00100000unsigned long virtuladdr,physcialaddr;unsigned long *mmu_tlb_base =(unsigned long *)0x30000000;virtulaadr=0;physicaladdr=0;*(*mmu_tlb_base+(virtulaadr>>20))=(physicaladdr&0xFFF00000)|\MMU_SECD ESC_WB;virtulaadr=0xA0000000;physicaladdr=0x56000000;*(*mmu_tlb_base+(virtulaadr>>20))=(physicaladdr&0xFFF00000)|\MMU_SECD ESC;virtuladdr = 0xB0000000;physicaladdr = 0x30000000;while(virtuladdr<0xB4000000){*(mmu_tlb_base+(virtuladdr>>20))=(physicaladdr&0xFFF000000)|\MMU_SECDESC_ WB;virtuladdr+=0x100000;physicaladdr+=0x100000;}}//???ˉMMUvoid mmu_init(void){unsigned long ttb =0x30000000;__asm__("mov r0,#0\n""mcr p15,0,r0,c7,c7,0\n""mcr p15,0,r0,c7,c10,4\n""mcr p15,0,r0,c8,c7,0\n""mcr r4,%0\n""mcr p15,0,r4,c2,c0,0\n""mcr r0,#0\n""mcr p15,0,r0,c3,c0,0\n""mrc p15,0,r0,c1,c0,0\n""bic r0,r0,#0x3000\n""bic r0,r0,#0x0300\n""bic r0,r0,#0x0087\n""orr r0,r0,#0x0002\n""orr r0,r0,#0x0004\n""orr r0,r0,#0x1000\n""orr r0,r0,#0x0001\n""mcr p15,0,r0,c1,c0,0\n":"r"(ttb) );}(三)leds.c程序:#indine GPBCON (*(volatile unsigned long *)0xA0000010)#indine GPBDAT (*(volatile unsigned long *)0xA0000014)#define GPB5_out (1<<(5*2))#define GPB6_out (1<<(6*2))#define GPB7_out (1<<(7*2))#define GPB8_out (1<<(8*2))static inline void wait(unsigned long dly){for(; dly>0;dly--);}int Main(void){unsigned long i=0;GPBCON=GPB5_out | GPB6_out | GPB7_out | GPB8_out;while (i){wait(3000000);GPBDAT=(~(i<<5));If(++i==16)i=0;}Return 0;}obis :=head.o init.o leds.ommu.bin:$(objs)arm-linux-ld-Tmmu.lds –o mmu-elf $^arm-linux-objcopy –O binary –S mmu_elf $@arm-linux-objjump –D –m arm mmu_elf > mmu.dis%.o:%.carm-linux-gcc –Wall –O2 –c –o $@ $<%.o:%.sarm-linux-gcc –Wall –O2 –c –o $@ $<clean:rm –f mmu.bin mmu_elf mmun.dis *.o六、实验总结本次实验目的在于了解虚拟地址和物理地址的关系,了解MMU的内存访问权限机制了解并掌握如何通过设置MMU来控制虚拟地址到物理地址的转化。

嵌入式实验报告 3 4 部分

嵌入式实验报告  3 4 部分

嵌入式控制系统及应用实验报告学期:2015-2016-1[第组] 嵌入式控制系统及应用实验报告基于ARM Cortex-M3 LPC1788目录实验一熟悉实验环境 (1)实验二嵌入式系统软件设计 (2)实验三矩阵键盘实验 (4)实验四RS-232串行通信实验 (8)实验四RS-232串行通信实验 (13)实验五A/D 转换实验 (16)实验六D/A 转换实验 (19)分数:实验一熟悉实验环境一、实验目的熟悉并掌握Keil μVersion 4开发环境,学会构建ARM Cortex-M3 LPC1788工程,学会使用JLINKv8下载器,编译与调试嵌入式系统软件。

二、实验内容1.熟悉Keil μVersion 4开发环境。

2. 阅读LPC1788芯片数据手册与用户手册,了解LPC1788的GPIO相关寄存器及其功能。

3.编程实现一个LED闪烁实验,使用JLINK下载灯闪烁代码到目标板。

三、实验设备硬件部分:PC计算机(宿主机)、LPC1788实验系统、JLINK仿真器。

软件部分:PC机WINDOWS系统、KEIL MDK μVersion 4软件、JLINK仿真调试驱动程序。

四、实验步骤1.启动PC机,进入keil环境。

2. 创建和打开项目。

3. 源程序编辑4 运行程序,观察并记录实验结果。

分数:实验二嵌入式系统软件设计一、实验目的1.了解实验系统的128*64液晶显示接口电路。

2.掌握LPC1788 GPIO口的使用方法。

3.掌握LPC1788的软件基本框架及设计技术。

二、实验内容1. 阅读128*64液晶显示模块的文档,掌握128*64液晶显示模块的工作原理。

2. 阅读SN74LVC4245A芯片文档,掌握SN74LVC4245A芯片的工作原理。

3. 完成128*64液晶显示模块程序的设计与调试。

三、实验设备硬件部分:PC机(宿主机)、LPC1788实验系统(目标板)、JLINK仿真器。

软件部分:PC机WINDOWS系统、MDK KEIL软件、JLINK仿真调试驱动程序。

嵌入式上机实验报告

嵌入式上机实验报告

嵌入式上机课程设计实验报告册班级: 13091201 学号: 13091139 姓名:胡轶为目录实验1 ARM板文件传送及基本操作实验2 ARM板读取文件及操作实验3 ARM板与电脑的网络连接实验4 ARM板图像界面的制作及QT软件的使用实验1实验目的A、掌握超级终端的基本操作B、熟悉ARM板的操作方法实验内容将利用linux下的gcc编译好的文件传送到ARM板然后读取实验步骤1、阅读指导老师下发的相关指导文档及ppt2、用linux下的gcc编译hello world.c文件3、利用vmware软件将编译好的hello world文件从虚拟机中传到windows系统下4、使用超级终端连接ARM板与windows系统,连接的时候注意将参数修改为"115200"以及“无”输入输出5、使用rz命令以及超级终端的文件传送功能将hello world 文件传送到ARM板上6、使用ls命令查看ARM板上的文件,利用chmod +x命令给hello world文件加上可执行权限7、使用./ 命令在超级终端中执行hello world 文件并得到最终结果下附实验1的过程截图实验2实验目的A、熟悉linux的操作B、熟悉使用ARM板的各种接口C、熟悉使用接口助手软件实验内容将由linux下的gcc编译好的文件com发送到ARM板上,然后由计算机输入内容来使用ARM板上的com文件实验步骤1、阅读指导老师下发的相关文档及ppt等2、将老师下发的com.c文件在linux下利用终端修改好所需的输入输出,然后使用gcc编译成com文件3、使用vmware软件将编译好的com文件传送到windows系统中4、使用超级终端连接好计算机与ARM板5、使用rz命令及超级终端的文件传送功能将com文件传送到ARM板6、使用ls命令查看ARM板中的文件并使用chmod +x命令给ARM板中的com文件加上执行权限7、使用./命令执行com文件8、关闭超级终端,打开接口助手软件,将参数调整为115200然后连接ARM板与接口助手9、使用接口助手软件手动上传之前修改好的输入内容,然后点手动传送,将com文件的输入内容传送到ARM板。

嵌入式处理器原理及应用上机实验PPT文档31页

嵌入式处理器原理及应用上机实验PPT文档31页

3.异常向量表 通常有两种方法将异常中断处理程序注册到异
常中断向量表中。一种是使用跳转指令 BL,另一种 使用数据读取指令 LDR。但由于跳转指令只能在 32MB 的范围内跳转,所受的局限较大。故我们只介 绍使用 LDR 的情况,这大体又可以分为用 c 语言安 装和用汇编语言安装两种。
在 LambdaEDU3 集成开发环境中,已经编写 好了针对华邦 W90P710 这块板子的异常向量表,使 用的是用汇编语言安装中断处理例程的方法,具体的 启动代码在 Lambda EDU3 安装目录下的 : LambdaEDU\target\tool\bsps\boards\arm\w90p710_ev b\start\redboot _debug\vectors.S 中。
这里简要介绍下另一种安装中断处理程序的方法, 它是用 C 语言实现的。下面给出实际代码:
其中 INT32U 是无符号整型数据类型,0xE59FF018 是 LDR PC,[PC,#0x18]指令的编码,读者可根据先前的 描述仔细分析。
电子科技大学嵌入式软件工程中心
4. W90P710 硬件中断控制 在 W90P710 微处理器中有一个叫中断控制器
观察该图可知,ARM 共有 37 个寄存器,每个寄存 器 32 位宽,无论何时,至多只有 18个寄存器对处理器是 可见的: •r0-r15,cpsr,spsr。 •R0-R12:通用寄存器,用于保存数据和指针。 •R13:通常被看作堆栈指针寄存器(SP) •R14:链接寄存器,通常用于保存返回地址 •R15:程序计数器(PC)
嵌入式处理器原理及应用 上机实验
电子科技大学嵌入式软件工程中心
电子科技大学嵌入式软件工程中心
电子科技大学嵌入式软件工程中心
电子科技大学嵌入式软件工程中心
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档