嵌入式实验报告二

合集下载

嵌入式实验报告二

嵌入式实验报告二

嵌入式实验报告二实验时间2013/6/9 报告人一、实验目的:1.学习cygwin;2.通过上机实验,使学生验证、巩固和充实所学理论知识,加深对相关内容的理解,了解嵌入式Linux的工具链,掌握基于Linux的C程序设计。

二、实验要求:1.安装cygwin;2.学习GCC的使用和Makefile的编写。

3.编程实现文件拷贝功能。

三、问题:1.简述Gcc的常用选项并举例说明。

Gcc基本使用格式:$ gcc [ 选项] <文件名>命令行中gcc表示我们是用gcc来编译我们的源程序,[选项]表示我们要求编译器给我们输出的文件为何种类型,相当于一种约束。

常见选项:-o :将源文件经过gcc处理过的结果输出,这个结果文件可能是预处理文件、汇编文件、目标文件或者最终的可执行文件。

比如:gcc hello.c –o hello 把源文件hello.c 经gcc编译后生成可执行的文件输出为hello-E :只激活源程序的预处理,这个不生成文件,你需要把它重新定向到一个输出文件里面。

比如:gcc –E hello.c –o hello.i 把源文件hello.c经gcc预处理后的文件输出为hello. i。

-c :只激活源程序的预处理,编译,和汇编,也就是他只把程序生成obj文件。

比如:gcc –c hello.c –o hello.o 把源文件hello.c经gcc 预处理,编译,和汇编后的文件输出为hello.o。

-S :只激活源程序的预处理和编译,就是指把文件编译成为汇编代码。

比如:gcc –S hello.c –o hello.s把源文件hello.c经gcc 预处理,编译后的文件输出为hello.s。

-g :表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息。

2.简述Makefile编写规则,举例说明。

makefile 编写规则:(1)以“#”开始的行为注释(2)文件依赖关系为:target: components //表示的是依赖关系TAB rule //编写规则,TAB表示那是一个TAB键例如有如下:/* main.c */#include "mytool1.h"#include "mytool2.h"int main(int argc,char **argv){mytool1_print("hello");mytool2_print("hello");}/* mytool1.c */#include "mytool1.h"void mytool1_print(char *print_str){printf("This is mytool1 print %s\n",print_str);}/* mytool2.c */#include "mytool2.h"void mytool2_print(char *print_str){printf("This is mytool2 print %s\n",print_str);}/* mytool1.h */#ifndef _MYTOOL_1_H#define _MYTOOL_1_Hvoid mytool1_print(char *print_str);#endif/* mytool2.h */#ifndef _MYTOOL_2_H#define _MYTOOL_2_Hvoid mytool2_print(char *print_str);#endif可以这样来编译gcc -c main.cgcc -c mytool1.cgcc -c mytool2.cgcc -o main main.o mytool1.o mytool2.o这样的话我们也可以产生main程序,而且也不时很麻烦在我们执行make之前,我们要先编写一个非常重要的文件——Makefile。

嵌入式实验报告2

嵌入式实验报告2

嵌入式系统设计实验报告1 问题描述在Linux操作系统和ARM嵌入式实验系统环境下,分析linux下的键盘、数码管驱动程序,编写一个应用程序,实现以下功能:在ARM开发板上按下数字键1、2、3、4时,对应启动模拟量开发板上的模拟量输入端AIN0、AIN1、AIN2、AIN3采样,并把模数转换的结果从终端输出和数码管显示。

数码管显示格式:通道号转换的电压值;例如:2灭灭3.251.1设计目标在ARM开发板上按下数字键1、2、3、4时,对应启动模拟量AIN0、AIN1、AIN2、AIN3采样,并把A/D转换的结果从终端输出和LED显示。

显示格式:通道号转换的电压值。

1.2设计思路根据设计目标,该问题可分为六个模块进行设计,分别为驱动程序加载、打开设备、键盘扫描、A/D转换、数码管显示,总体设计方案如图1所示。

图1 总体设计方案(1)驱动程序加载用户的应用程序以设备文件方式访问驱动程序,即Linux把设备当文件,通过文件系统对设备进行访问。

针对这个实验,需要用到ADC0809芯片,LED显示数码管,小键盘。

为此,用lsmod命令加载这三个对应的驱动程序adc0809.c、led.c和keybd.c,再以insmod的方式加入内核。

驱动程序主要是设置一些寄存器的内容来确定端口的引脚输入输出方式以及键盘的扫描部分代码,LED控制显示函数等。

(2)打开各个设备在Linux系统下,各个设备都是通过文件来进行描述的,因此用open函数打开需要用到的LED、键盘、ADC0809芯片。

并且要有对应的出错处理。

(3)键盘扫描驱动程序加载进去以后,运行可执行文件,代码就进入到了按键按下等待的代码中了。

对于用户而言,只是在键盘中按下了某个键,在计算机里,通过驱动得到按下的键值并通过read(fd_kb,&result_kb,1)函数把值赋给变量result_kb中(其中fd_kb为键盘的文件描述符)。

(4)A/D转换启动ADC0809芯片对应的通道进行数据转换,这里主要通过iotcl和read 这两个函数实现,并把转化后的结果赋给result_ad这个变量。

嵌入式系统 实验报告

嵌入式系统 实验报告

使能 IRQ 中断。
4 装载并使能外中断;
5 选用 DebugInExram 生成目标,然后编译连接工程。
6 选择【Project】->【Debug】,启动 AXD 进行 JTAG 仿真调试。
7 全速运行程序,LED 闪烁;
8 每一次按键 Key,蜂鸣器就会转换静音或鸣响状态。
四.测试数据及运行结果
1
五.总结
1.实验过程中遇到的问题及解决办法;
由于本次实验较简单,且我们之前学习的微机原理课程也进行了流水灯的设
计实验,所以对于本次实验,我完成地很顺利,在实验中没有遇到问题。
2.对设计及调试过程的心得体会。
本次实验是本学期该课程我们进行的第一次实验,总的来说,实验不是很难,
设计过程也相对简单,其主要目的是让我们熟悉一下实验环境,并且能在实验环
6
五.总结 1.实验过程中遇到的问题及解决办法;
实验第一次运行时,蜂鸣器一直处于鸣响状态,及时按了按键,蜂鸣器还是 一直鸣叫,不产生外中断。后来仔细检查了程序,发现原来是忘记使能 EINT0 中 断了,加上 VICIntEnable = 1<<0x0e 代码,程序就能正常运行了。 2. 对设计及调试过程的心得体会。
境下进行简单的实验操作,为之后的实验打下坚实的基础。
六.附录:源代码(电子版)
#include "config.h"
const uint32 LEDS8 = 0xFF << 18;//P1[25:18]控制 LED1~LED8,低电平点亮
const uint32 KEY = 1 << 16;
//P0.16 连接 KEY1
三.方案设计
① 启动 ADS1.2IDE 集成开发环境,选择 ARM Executable Image for lpc2131

嵌入式实训报告范文2篇

嵌入式实训报告范文2篇

嵌入式实训报告范文嵌入式实训报告范文精选2篇(一)嵌入式实训报告一、实训目的和背景嵌入式实训的目的是通过设计和实现一个嵌入式系统,培养学生的嵌入式系统开发才能和团队协作才能。

本次实训的背景是为了满足社会对嵌入式系统开发人才的需求,进步学生的实际动手才能。

二、实训内容1. 硬件平台的选择和搭建:选择了一款ARM开发板作为硬件平台,并搭建了相应的开发环境。

2. 系统设计和分析:根据实训要求,我们团队设计了一个智能门锁系统,包括用户认证、门锁控制和远程监控功能。

3. 软件开发:使用C语言和嵌入式开发工具进展软件开发,实现了用户认证、门锁控制和远程监控等功能。

4. 硬件连接和调试:将开发板和相关传感器、执行器等硬件设备进展连接和调试,确保系统可以正常运行。

5. 功能测试和调优:对系统进展全面测试,发现并修复了一些问题,并对系统进展了性能优化。

三、实训心得和体会通过本次实训,我深入认识到嵌入式系统开发的复杂性和挑战性。

在实训过程中,我们团队遇到了许多问题,比方硬件和软件的兼容性、性能优化等方面。

但是通过团队的努力和合作,我们成功解决了这些问题,并完成了一个功能完善的嵌入式系统。

此外,我还学到了许多软件开发和硬件调试的技巧,进步了自己的实际动手才能。

在团队协作方面,我们团队成员之间互相配合,共同解决问题,形成了良好的协作机制。

总结起来,本次嵌入式实训让我受益匪浅,学会了许多实际应用的技能和知识,并进步了自身的综合才能。

四、实训成果展示在实训完毕后,我们团队成功完成了一个智能门锁系统,具备用户认证、门锁控制和远程监控等功能。

系统的稳定性和可靠性得到了验证,并且在实际使用中得到了积极的反应。

附图:〔展示系统界面、硬件设备连接示意图等〕五、实训改良意见尽管本次实训获得了良好的成果,但仍有一些方面需要改良。

首先,实训的时间安排可以更合理一些,以便更充分地利用时间进展理论操作。

其次,可以增加一些真实场景的案例分析和解决方案的设计,以提升学生的实际应用才能。

嵌入式实习报告(共5篇)

嵌入式实习报告(共5篇)

嵌入式实习报告(共5篇)第一篇:嵌入式实习报告一、嵌入式系统开发与应用概述在今日,嵌入式ARM 技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM 的影子。

如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,ARM 嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。

本章节就是将你领入ARM 的学习大门,开始嵌入式开发之旅。

以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。

由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。

嵌入式的广泛应用可以说是无所不在。

嵌入式微处理器技术的基础是通用计算机技术。

现在许多嵌入式处理器也是从早期的PC 机的应用发展演化过来的,如早期PC 诸如TRS-80、Apple II 和所用的Z80 和6502 处理器,至今仍为低端的嵌入式应用。

在应用中,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。

嵌入式处理器目前主要有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM 等系列。

在早期实际的嵌入式应用中,芯片选择时往往以某一种微处理器内核为核心,在芯片内部集成必要的ROM/EPROM/Flash/EEPROM、SRAM、接口总线及总线控制逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A 等各种必要的功能和外设。

二、实习设备硬件:Embest EduKit-IV实验平台、ULINK2仿真器套件、PC机软件:μVision IDE for ARM集成开发环境、Windows 98/2000/NT/XP三、实习目的1.初步掌握液晶屏的使用及其电路设计方法;掌握S3C2410X处理器的LCD控制器的使用;掌握通过任务调用的方法把液晶显示函数添加到uC/OS-II中;通过实验掌握液晶显示文本及图形的方法与程序设计。

嵌入式实验报告二work2.

嵌入式实验报告二work2.

实验报告课程名称嵌入式系统编程实践实验仪器清华同方辰源嵌入式系统实验箱实验名称实验二:利用中断实现OLED动态显示实验系另寸计算机学院专业______________班级/学号__学生姓名__________________实验日期2013年9月22日成绩_________________________指导教师朱敏玲_______实验二:利用中断实现OLED动态显示实验一、实验问题回答(1)ISR是什么?简述一下中断的作用和使用方法答:ISR是中断服务程序。

作用是通过处理器执行事先编好的某个特定的程序。

使用方法就是在main中写一个中断程序,然后在startup.s中进行注册。

(2)嵌入式系统中有哪些应用有定时性循环处理的要求?举几个例子答:在各种网络的应用中,设计的一些部件,如计数器,时钟等。

(3)定时时间间隔如何修改?答:通过改变SysTickPeriodSet(SysCtlClockGet()/100后面的100 这个参数。

(4)选作内容5-8的编程思路是什么?若做的话应该怎样实现?答:编程思路:先画直线和竖线,组成一个正方形,将各个参数填写到函数RIT128x96x4lmageDraw(buf ,,,,);第6个选作:判断画的原点x,原点y,和画原点x+的长,画原点y+画宽的值要在0-128和0-96。

第7个选作:把RIT128x96x4StringDraw("hello",,,);就是把画的灰度定义为一个变量x。

最后就会出现由不同的亮度而形成的波浪。

第8个就是利用随机函数产生画的原点,随机的在屏幕上进行显示。

(5)拖影现象如何解决?计数值显示为什么没有拖影?答:在程序结束后执行清屏语句:计数显示是每次重新赋值,所以不会出现拖影。

二、实验目的和效果(效果即是否达到实验目的,达到的程度如何)(1)深入学习、理解、掌握OLED字符显示方法(2)深入学习、理解、掌握OLED图形显示方法(3)学习、理解、掌握中断使用方法实验效果图:、实验内容和步骤(重点阐述自己的思路及遇到的问题)(一) Keil 开发环境中对项目Project 配置(1)建立项目1、新建一个project;2、选择CPU 中的Luminary LM3S 8962 ;3、加载库文件;4、项目相关配置项修改。

嵌入式系统实验报告

嵌入式系统实验报告

嵌入式系统实验报告文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]大连理工大学本科实验报告课程名称:嵌入式系统实验学院(系):电子信息与电气工程学部专业:自动化班级: 0804学号:学生姓名:何韬2011年 11月 18日大连理工大学实验报告学院(系):电信专业:自动化班级: 0804 姓名:何韬学号:组: ___实验时间: 2011-11-12 实验室: d108 实验台:指导教师签字:成绩:实验二ARM的串行口实验一、实验目的和要求见预习报告二、实验原理和内容见预习报告三、主要仪器设备硬件:ARM嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC机Pentium100 以上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP 、ARM SDT 或集成开发环境、仿真器驱动程序、超级终端通讯程序。

四、实验步骤见预习报告五、核心代码在主函数中实现将从串口0接收到的数据发送到串口0()int main(void){char c1[1];char err;ARMTargetInit(); 通过调用OSTaskCreate()或OSTaskCreateExt()创建至少一个任务;.OSStart(); /ucos-ii/" /* uC/OS interface */#include "../ucos-ii/add/"#include "../inc/"#include "../inc/sys/"#include "../src/gui/"#include <>#include <>#pragma import(__use_no_semihosting_swi) .\n");.\n");.\n");于task2 挂起时间为3 秒,所以在task2 挂起期间task1 能执行两次,而当第三次时由于task1 与task2 同时处于就绪态,由优先级次序,还是先执行task1 在执行task2.然后就这样周而复始的循环下去。

嵌入式实习报告

嵌入式实习报告

嵌入式实习报告嵌入式实习报告(精选5篇)在生活中,报告的用途越来越大,我们在写报告的时候要注意逻辑的合理性。

相信许多人会觉得报告很难写吧,以下是店铺精心整理的嵌入式实习报告(精选5篇),希望对大家有所帮助。

嵌入式实习报告篇1一、实习时间20xx年4月12日-20xx年4月26日二、指导教师姓名陈xx三、实习地点长沙市牛耳服务外包实训基地四、实习目的与内容对于嵌入式项目进行学习培训,掌握嵌入式的主要项目及相关技术五、实习收获与体会一转眼半个月的实习生活过去了,现在我已经回到学校,回想起半个月的实习生活,自己学到了很多,懂得了很多。

真的说不出是什么感觉,伴着时间,就像是在和自己的影子赛跑,不可能从真实的两面去看清它,只是经意不经意的感受着有种东西在过去,也许更适合的只有那句话:时不待我,怎可驻足。

原以为实习对于我来说会是很长,但实际却不同。

想象收获的东西,真的很多,看看我的工作笔记,一篇又一篇,记别人的事情比自己的还多,也许实习,并不像我想象中的那样轻松惬意,而是充满了挑战和艰辛。

我给自己敲响了警钟:“不要半途而废,做事情切忌三分热度。

”我信心十足的回答到:“我一定会坚持到底!”天下英雄皆我辈,一入江湖立马催。

” 从学校到社会的大环境的转变,身边接触的人也完全换了角色,老师变成老板,同学变成同事,相处之道完全不同。

在这巨大的转变中,我们可能彷徨,迷茫,无法马上适应新的环境,但在同学、同事的帮助和自己摸索的情况下,我还是完成了这次实习。

但我发现,以我们的经验,不学到一定的深度和广度是难以在实际工作中应付自如的。

因此反映出学习的还不够,缺点疏漏。

需在加以刻苦钻研及学习,不断开拓视野,增强自己的实践操作技能,我们也许看不惯企业之间残酷的竞争,无法忍受同事之间漠不关心的眼神和言语。

很多时候觉得自己没有受到领导重用,所干的只是一些无关重要的杂活,自己的提议或工作不能得到老板的肯定。

做不出成绩时,会有来自各方面的压力,老板的眼色同事的嘲讽。

嵌入式实验报告二

嵌入式实验报告二

嵌入式实验报告二一、实验目的:1.学习cygwin;2.通过上机实验,使学生验证、巩固和充实所学理论知识,加深对相关内容的理解,了解嵌入式Linux的工具链,掌握基于Linux的C程序设计。

二、实验要求:1.安装cygwin;2.学习GCC的使用和Makefile的编写。

3.编程实现文件拷贝功能。

三、问题:1.简述Gcc的常用选项并举例说明。

Linux中gcc常用编译选项-x language filename设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定,C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是. pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用。

可以使用的参数有下面的这些:`c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `assembler-with-cpp'.看到英文,应该可以理解的。

例子用法: cd..gcc -x c hello.pig-x none filename关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型例子用法:gcc -x c hello.pig -x none hello2.c-c只激活预处理,编译,和汇编,也就是他只把程序做成obj文件例子用法:gcc -c hello.c他将生成.o的obj文件-S只激活预处理和编译,就是指把文件编译成为汇编代码。

例子用法gcc -S hello.c他将生成.s的汇编代码,你可以用文本编辑器察看-E只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面.例子用法:gcc -E hello.c > pianoapan.txtgcc -E hello.c | more慢慢看吧,一个hello word 也要预处理成800行的代码-o制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果你和我有同感,改掉它,哈哈例子用法gcc -o hello.exe hello.c (哦,windows用习惯了)gcc -o hello.asm -S hello.c-pipe使用管道代替编译中临时文件,在使用非gnu汇编工具的时候,可能有些问题gcc -pipe -o hello.exe hello.c-ansi关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一些asm inline typeof 关键字,以及UNIX,vax等预处理宏/* 注释中的不常用****************************************************-fno-asm此选项实现ansi选项的功能的一部分,它禁止将asm,inline和typeof用作关键字。

嵌入式实验报告

嵌入式实验报告

实验一二进制数相加AREA BcdAdd, CODE, READONL YENTRYstart ldr r0, =0x19345678 ;程序开始ldr r1, =0x49678901 ;将两个十六进制数分别送到r0,r1bl bcda ;程序跳转到bcdastop b stop ;程序结束bcda mov r8,r0 ;将r0中的数值送到r8中mov r9,r1 ;将r1中的数值送到r9中mov r0,#0 ;将r0置为0mov r4,#0 ;将r4置为0mov r7,#8 ;r7置为8,作为循环次数loop and r2,r8,#0xf ;取r8中的最低位存放到r2中and r3,r9,#0xf ;取r9中的最低位存放到r3中add r4,r4,r2add r4,r4,r3 ;将最低位相加之后的结果存到r4cmp r4,#0xa ;将结果与10进行比较addcs r4,r4,#6 ;若结果不小于10,则将结果加6mov r8,r8,lsr #4mov r9,r9,lsr #4 ;将r8,r9中的数右移4位mov r0,r0,lsr #4 ;将r0中的数右移四位orr r0,r0,r4,lsl #28 ;将r4中的数左移28位后存入r0mov r4,r4,lsr #4 ;将r4中的数右移4位,留下进位subs r7,r7,#1 ;循环次数减一bne loop ;跳出循环mov pc,lr实验结果:先取出最低位,做加法,结果若不小于10,则将结果修改位十进制(加6),并将进位存入r4的最低位。

一次循环结束后,循环计数r7减1。

下一次循环中,将做加法的两个数的次低位相加,并与低位的进位进行运算,依次循环下去,最终相加所得的结果存在r0中。

实验二数据块的复制AREA Block, CODE, READONLYnum EQU 17 ;定义num为17ENTRYstart LDR r0, =src ;将源地址存到r0LDR r1, =dst ;将目的地址存到r1MOV r2, #num ;将17存到r2blockc MOVS r3,r2, LSR #3 ;将r2中的17除以8后存入r3 BEQ cpw ;少于8个字节程序跳转到cpwSTMFD sp!, {r4-r11} ;保存工作寄存器Octcopy LDMIA r0!, {r4-r11} ;从r0保存的源地址取出8个字节放到r4-r11中STMIA r1!, {r4-r11} ;将r4-r11中的数据设置到目的地址SUBS r3, r3, #1 ;计数r3减1BNE octcopy ;r3不为0,继续拷贝LDMFD sp!, {r4-r11} ;恢复工作寄存器cpw ANDS r2, r2, #7 ;最多拷贝7个字BEQ stop ;拷贝完,跳转到stop wordcopy LDR r3, [r0], #4 ;从不到8个字的数据块中取出1个字存入r3中STR r3, [r1], #4 ;将r3中数据设置到目的地址SUBS r2, r2, #1 ;判断剩余的字是否拷贝完成BNE wordcopy ;r2不为0,继续拷贝stop B stop ;死循环,程序停止AREA BlockData, DA TA, READWRITE ;定义源地址数据和目标地址src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0将源数据块中的数据除以8后,将整字个数存入r3中,通过Octcopy将整字拷贝到目的地址中。

嵌入式实验二

嵌入式实验二

嵌入式实验报告二实验二优先级反转姓名:陈秀容班级:08通信(1)班学号:2108911011. 实验目的掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理。

2.1 实验设计2.1.1. 优先级反转原理优先级反转发生在有多个任务需要使用共享资源的情况下,可能会出现高优先级任务被低优先级任务阻塞,并等待低优先级任务执行的现象。

高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务,这种现象就被称为优先级反转。

两个任务都试图访问共享资源是出现优先级反转最通常的情况。

为了保证一致性,这种访问应该是顺序进行的。

如果高优先级任务首先访问共享资源,则会保持共享资源访问的合适的任务优先级顺序;但如果是低优先级任务首先获得共享资源的访问,然后高优先级任务请求对共享资源的访问,则高优先级任务被阻塞,直到低优先级任务完成对共享资源的访问。

2.1.2. 设计要点1)设计了3 个应用任务TA0~TA2,其优先级逐渐降低,任务TA0的优先级最高。

2)除任务TA1外,其它应用任务都要使用同一种资源,该资源必须被互斥使用。

为此,创建一个二值信号量mutex 来模拟该资源。

虽然μC/OS-Ⅱ在创建信号量时可以选择采用防止优先级反转的策略,但在本实验中我们不使用这种策略。

3)应用任务的执行情况如图2-1 所示:注意:图中的栅格并不代表严格的时间刻度,而仅仅表现各个任务启动和执行的相对先后关系。

2.1.3. 系统的运行流程1) 系统初始化,之后进入main 函数;2) 在main 函数中,首先创建一个二值的信号量mutex;3) 在main 函数中创建TaskStart 任务,由TaskStart 任务创建所有的应用任务(TA0、TA1、TA2)。

优先级较高的任务TA0、TA1 先延时若干个时钟节拍,以便低优先级任务TA2 运行。

4) t1 时刻,任务TA2运行并首先申请到信号量mutex;5) t2 时刻,任务TA1 延时到期,任务TA1 的优先级高于任务TA2 的优先级,因此任务TA1立刻抢占TA2执行,任务TA2由执行态转为就绪态;6) t3 时刻,任务TA0 延时到期,任务TA0 的优先级高于任务TA1 的优先级,所以任务TA0 立刻抢占执行,任务TA1 由执行态转为就绪态,任务TA0 申请二值信号量mutex 被阻赛;7) t4 时刻,任务TA1 由就绪态转回为执行态;此时TA0 在等待TA2 保持的mutex , 而TA2 又因为优先级低于TA1 被阻塞。

嵌入式系统实验报告_2

嵌入式系统实验报告_2

嵌入式系统设计实验报告班级:学号:姓名:成绩:指导教师:1. 实验一1.1 实验名称博创UP-3000实验台基本结构及使用方法1.2 实验目的1.学习嵌入式系统开发流程。

2.熟悉UP-net3000实验平台的核心硬件电路和外设。

3.增加对各个外设的了解,为今后各个接口实验打下基础。

1.3 实验环境博创UP-NETARM3000 嵌入式开发平台1.4 实验内容及要求(1)嵌入式系统开发流程概述(2)熟悉UP-net3000实验平台的核心硬件电路和外设(3)ARM JTAG的安装与使用(4)通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态(5)通过本次课程对各个外设的了解,为今后各个接口实验打下基础1.5 实验设计与实验步骤1.硬件安装2.软件安装(1)超级终端:运行Windows 系统下的超级终端(HyperTerminal)应用程序,新建一个通信终端;在接下来的对话框中选择 ARM开发平台实际连接的PC机串口;完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。

(2)JTAG 驱动程序的安装:执行armJtag目录下armJtagSetup.exe程序,选择安装目录,安装 JTAG 软件。

1.6 实验过程与分析(1)了解嵌入式系统开发流程(2)对硬件的安装(3)对软件的安装1.7 实验结果总结通过本次实验对嵌入式系统开发流程进行了了解,并且对硬件环境和软件环境进行了安装配置,通过本次实验对以后的接口实验打了基础。

1.8 心得体会通过本次实验对嵌入式实验有了初步的了解,对基本开发流程也有了初步的了解。

2. 实验二2.1 实验名称ADS1.2软件开发环境使用方法2.2 实验目的熟悉ADS1.2开发环境,学会 ARM仿真器的使用。

使用 ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

2.3 实验环境(1)ADS1.2开发环境(2)博创UP-NETARM3000 嵌入式开发平台(3)PC(4)串口线2.4 实验内容及要求本次实验使用ADS 集成开发环境,新建一个简单的工程文件,并编译这个工程文件。

嵌入式实习报告6篇

嵌入式实习报告6篇

嵌入式实习报告6篇嵌入式实习报告篇1此次设计我们采用以LM3S2100为微控制器,并通过硬件和软件两方面设计,结合6位LED数码管,放大整形电路,来实现频率计在嵌入式系统中的开发与应用。

本次课程设计其主要目的是通过这学期所学的ARM知识,来实现频率计的功能,本次设计我们利用了定时计数器的功能,对输入的信号进行实时的、高精度的频率测量,并通过6位LED数码显示管显示测量结果。

论文中阐述了相关的硬件原理与应用方案,并在此基础上叙述了软件设计最终结合硬件和软件完成了本次设计。

关键词:LM3S2100、频率计、LED数码显示管1绪论频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

它是一种用十进制数字显示被测信号频率的数字测量仪器。

它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。

在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。

本频率计将采用定时、计数的方法测量频率。

测量范围在9kHz以下的方波,时基宽度为1us,10us,100us,1ms。

用ARM芯片实现自动测量功能。

基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。

它以测量周期的方法对方波的频率进行自动的测量。

1.1本次设计任务一.设计题目:ARM为内核的频率计二.主要功能:用ARM的定时器/计数器的定时和计数功能,外部扩展6位数码管,要求累计每秒进入ARM的外部脉冲个数,用LED数码管显示出来,或是用上位机显示。

三.设计要求:用protel画出最小系统和外围扩展电路。

显示部分可用LED数码管或是上位机显示。

要求小组成员分工明确。

1.2设计基本原理所谓频率,就是周期性信号在单位时间(1s)内变化的次数,若在一定时间间隔T内测得这个周期性信号的重复变化次数为N,则其频率可表示为被测信号经放大整形电路变成计数器所要求的脉冲信号,其频率与被测信号的频率相同。

嵌入式系统基础实验报告二

嵌入式系统基础实验报告二

实验 2. Linux 常用命令及工具实验1、实验目的掌握 linux 下各种常用命令和工具的使用。

2、实验设备PC 机上安装 VMWARE 虚拟机,运行 Ubuntu Linux 系统。

3、实验内容当前的各种 Linux 发行版,在图形界面下已可以完成大部分工作,但要对Linux系统做进一步了解,进行相关配置,必须掌握一些常见的命令。

以下为Linux 下的常见命令及其参数,进入 Linux 系统后,打开终端,可以运行各命令,查看运行结果。

3.1 注销,关机,重启logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout 命令即可:[root@localhostroot]#logoutLogin:←回到登陆的画面3.2 关机或重新启动的 shutdown 命令shutdown 命令可以关闭所有程序,依照用户的需要,重新启动或关机。

参数说明如下:立即关机:-h 参数让系统立即关机。

范例如下:[root@localhostroot]#shutdown–h now←要求系统立即关机指定关机时间:time 参数可指定关机的时间;或设置多久时间后运行 shutdown 命令,范例如下:[root@localhostroot]#shutdown now←立刻关机[root@localhostroot]#shutdown +5←5 分钟后关机[root@localhostroot]#shutdown 10:30←在 10:30 时关机关机后自动重启:-r 参数设置关机后重新启动。

范例如下:[root@localhostroot]#shutdown-rnow←立刻关闭系统并重启[root@localhostroot]#shutdown –r 23:59←指定在 23:59 时重启动3.3 重新启动计算机的 reboot 命令顾名思义,reboot 命令是用来重新启动系统的。

常用的参数如下:-f 参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。

嵌入式系统实训报告范文3篇

嵌入式系统实训报告范文3篇

嵌入式系统实训报告范文嵌入式系统实训报告范文精选3篇(一)以下是一份嵌入式系统实训报告范文,供参考:实训报告课程名称:嵌入式系统实训姓名:XXX学号:XXXX日期:XXXX年XX月XX日一、实训目的和背景嵌入式系统是一种专门用于控制和执行特定任务的计算机系统。

本次实训旨在通过设计、搭建并测试一个简单的嵌入式系统,帮助学生理解嵌入式系统的根本原理和应用,并提供理论时机来加深对嵌入式系统的理解和应用才能。

二、实训内容1. 系统设计本实训的目的是设计一个简单的温度监测系统。

该系统包括一个传感器用于检测环境温度,并将温度值传输到单片机上进展处理。

单片机再将处理后的数据显示在LCD屏幕上。

2. 硬件搭建根据系统设计,我们首先需要准备以下硬件器件:传感器、单片机、LCD屏幕、电等。

实际搭建时,我们按照电路图连接各个硬件器件,并进展电接入和信号连接的测试。

3. 软件编程完成硬件搭建后,接下来需要进展软件编程。

我们使用C语言来编写嵌入式系统的程序。

主要编程内容包括读取传感器数据、对数据进展处理和计算、将计算结果显示在LCD屏幕上等。

4. 系统测试完成软件编程后,我们进展系统测试。

主要测试内容包括:检测传感器是否能准确读取温度数据、单片机是否能正确处理数据、LCD屏幕是否正常显示等。

通过测试,可以评估系统的稳定性和可靠性。

三、实训收获通过参与本次实训,我收获了以下几点:1. 对嵌入式系统的理解更加深化:通过实操,我对嵌入式系统的原理和应用有了更深化的理解。

2. 掌握了硬件搭建和连接的技能:我学会了如何搭建和连接硬件器件,进步了理论操作才能。

3. 锻炼了软件编程才能:通过编写嵌入式系统的程序,我熟悉了C语言的应用,并提升了编程才能。

4. 增加了问题解决才能:在搭建和编程过程中,遇到了一些困难和问题,通过不断调试和学习,我学会了如何解决问题和排除故障。

综上所述,本次嵌入式系统实训对于进步我的理论操作才能、编程才能和问题解决才能具有重要意义。

嵌入式实验报告 (2) IO口的实验

嵌入式实验报告 (2)   IO口的实验

实验名称: IO口的实验一.实验目的通过该实验实习,熟悉 MCU 的第一个 C 程序框架结构方式;掌握 IO 口的编程方法;了解最小系统的测试方法;模仿小灯驱动程序,编写 IO 口的开关程序:了解原程序工程中添加新模块的方法。

二.实验内容用某个端口的一个引脚连接小灯,一个引脚连接开关(也可以是另一个端口的引脚),通过开关开合通过 MCU 控制小灯亮暗。

三.实验过程1 资源使用用PORTB 口的19号引脚连接小灯,用PORTA口的1号引脚连接开关,开关通过MCU 控制小灯,开关向上拨,小灯亮,开关向下拨,小灯暗,放在主循环中,则形成开关随时开,小灯随时亮的效果。

2 硬件设计(连线和标识引脚名)图 3-3 开关控制小灯的连线图3 软件设计1)程序流程图设置portA1和portB19为GPIO口设置GPIOA_PDDR=0设置GPIOB_PDDR=1GPIOA_PDIR=1 GPIOB_PDOR=0GPIOB_PDOR=1 YNEnd2)编程(1)C 语言编写的MCU 的IO口实验IO口实验的key.h代码:Volatile unit_32 *portB_ptr=( Volatile unit_32 *)0x4004A000u;Volatile unit_32 *portB_PCR_19=portB_ptr+19;Volatile unit_32 *gpioB_ptr=( Volatile unit_32 *)0x400FF040u;Volatile unit_32 *portB_PDDR=gpio_ptr+5;Volatile unit_32 *portB_PDOR=gpio_ptr+0;*portB_PCR_19=0x00000100;*portB_PDDR |=(1<<19); //定义为输出Volatile unit_32 *portA_ptr=( Volatile unit_32 *)0x40049000u;Volatile unit_32 *portA_PCR_1=portB_ptr+1;Volatile unit_32 *gpioA_ptr=( Volatile unit_32 *)0x400FF000u;Volatile unit_32 *portA_PDDR=gpio_ptr+5;Volatile unit_32 *portA_PDIR=gpio_ptr+4;*portA_PCR_1=0x00000100;*portA_PDDR &=~(1<<1); //定义为输入#define *portB_PDOR OUT#define *portA_ PDIR INC 语言编写的MCU的IO口实验IO口实验的key.c代码Void key(Volatile unit_32 IN){If(IN=(1>>1)&&1 ){OUT|=(1<<19);}elseOUT&=~(1<<19);}C 语言编写的MCU 的IO口实验IO口实验的main.c代码#include “incude.h”int main(void){*portB_PDO |= (1<<19);Key(IN);Return 0;}五.实验练习(1)请修改小灯闪烁程序,改变两个延时程序延时长度,其他程序不改变,观察效果。

北理工嵌入式系统实验报告

北理工嵌入式系统实验报告

嵌入式系统实验报告目录实验二 (1)实验三 (4)实验四 (7)实验六 (17)填充三角形实验 (24)实验二基于ARM的汇编语言程序设计简介一、实验目的1. 了解ARM 汇编语言的基本框架,学会使用ARM 的汇编语言编程二、实验内容1. 用汇编语言编写一个简单的应用程序三、实验设备1. EL-ARM-830 教学实验箱,PentiumII 以上的PC 机,仿真调试电缆,串口电缆。

2. PC 操作系统WIN98 或WIN2000 或WINXP,ADS1.2 集成开发环境,仿真调试驱动程序四、汇编语言简介1. ARM汇编的一些简要的书写规范ARM 汇编中,所有标号必须在一行的顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。

ARM 汇编对标识符的大小写敏感,书写标号及指令时字母大小写要一致。

在ARM 汇编中,ARM 指令、伪指令、寄存器名等可以全部大写或者全部小写,但不要大小写混合使用。

注释使用“;”号,注释的内容由“;”号起到此行结束,注释可以在一行的顶格书写。

详细的汇编语句及规范请参照ARM汇编的相关书籍、文档,也可参照我们提供的文档。

2. ARM汇编语言程序的基本结构在ARM 汇编语言程序中,是以程序段为单位来组织代码。

段是相对独立的指令或数据序列,具有特定的名称。

段可以分为代码段的和数据段,代码段的内容为执行代码,数据段存放代码运行时所需的数据。

一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行文件。

可执行映像文件通常由以下几部分构成:◆一个或多个代码段,代码段为只读属性。

◆零个或多个包含初始化数据的数据段,数据段的属性为可读写。

◆零个或多个不包含初始化数据的数据段,数据段的属性为可读写。

链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位EL - ARM - 830 实验指导书39置。

源程序中段之间的相邻关系与执行的映象文件中的段之间的相邻关系不一定相同。

嵌入式实验报告书

嵌入式实验报告书

嵌入式linux实验报告学号:实验一:熟悉嵌入式系统开发环境一实验目的:1.熟悉嵌入式系统硬件实验平台2.掌握超级终端配置方法。

3. 掌握嵌入式系统开发环境配置,ARM-Linux下NFS服务器的配置方法4. 掌握常用的Linux下shell命令二实验设备及工具:硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。

软件:PC机操作系统REDHAT LINUX 9.0 、MINICOM 、AMRLINUX开发环境三实验内容:(1)掌握嵌入式系统实验平台上的各类借接口的位置;(2)配置windows的超级终端,熟悉vivi的命令行,bootload、kernel、root和用户程序的介绍;(3)配置linux的终端,配置网络服、Ip地址,开发目录共享,挂载等。

四实验结果分析配置windows的超级终端输入终端名称选择COM1接口设置COM1属性打开虚拟机,启动linux。

新建终端,输入minicom启动实验箱设置ip并且在minicom下ping通主机设置网络服务取消防火墙选中NFS设置共享文件夹在主机编译运行程序hello wordHello.c 源代码如下:在target上挂载主机开发目录上嵌入式程序到实验箱,运行Mount –t nfs 主机IP:/开发目录/hostcd /host运行程序交叉编译完成实验心得:实验中应注意需要将编译的程序文件挂载到开发板,才能在ARM里找到我们需要运行的文件。

还要注意区分gcc和armv4l-unknown-linux-gcc编译器的区别。

只有用armv4l-unknown-linux-gcc编译的才能在开发板上运行。

实验二嵌入式Linux程序设计一实验目的:1.掌握嵌入式Linux软件设计方法原理2.掌握Makefile文件设计方法。

3. 熟悉Linux下静态库和共享库的设计二实验设备及工具:硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G 以上、内存大于256M。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实习二建立交叉编译环境
实习内容:
本次实验主要包括二部分内容:开发环境配置,主要有配置NFS,Samba和超级终端;编写编译程序。

1、配置NFS(实现宿主机和目标机的信息共享)
打开Linux虚拟机,点击主菜单运行系统设置->服务器设置->NFS 服务器,点击增加,在出现的界面中的目录中填入需要共享的路径,在主机中填入允许进行连接的主机的IP地址(注意:这里主机IP指的是开发板的IP)。

并选择允许客户对共享目录的操作为只读或读写(注意:实验中选的是读写,一定不能忽略),如下图:
对客户端存取服务器的一些其他设置,一般不需要设置,取默认值。

然后退出,完成了NFS配置。

2、配置Samba(实现Windows和Linux系统的文件共享)
①关闭防火墙,这个地方和上面的NFS的配置是一样的。

②配置Samba服务器
选择“系统设置”—>“服务器配置”—>“Samba服务”,进行Samba 服务器配置。

首先创建Samba共享,选择“基本”选项卡,在“目录”
的文本框中输入要共享的文件,基本权限设为读/写。

在“访问”选项卡中选择“允许所有用户访问”选项,通过“首选项”进行服务器配置。

在“基本”选项卡中设置工作组和描述,在“安全性”选项卡中设置“验证模式”为共享,“加密口令”为否,“来宾账号”为无来宾账号。

③设置Samba服务器IP地址(与前面的NFS的设置相同)
④启动Samba服务器
在命令行中输入service smb start,即可启动Samba服务器。

⑤配置Windows下的IP地址
将Windows下的IP地址和Samba服务器IP地址设置在同一网段中即可(注意:这里设置IP时一定要注意在同一网段)
⑥在Windows下访问共享
在Windows中的“运行”窗口中输入Samba服务器的IP地址,就可以看见在虚拟机中共享的文件。

3、配置超级终端
①在linux操作系统Xwindow界面下建立终端,在终端的命令行提示符后输入minicom,回车,然后就会看见minicom的启动画面,若没有启动Xwindow则在命令行提示符后直接输入minicom即可。

② minicom启动后,先按Ctrl+A键,然后按Z键进入主配置界面,按“O”进入配置界面,按上下键选择Serial port setup,进入端口设置界面,然后按照指导书中的指示修改几个重要选项。

③选好后按ESC键退出端口设计界面,选择Save setup as df1保存
退出,以后只要启动minicom就是该配置,无需再做改动。

二、编写编译程序
首先建立工作目录,在命令行下输入mkdir hello后再进入hello文件夹,命令为cd hello,进入vi模式编写hello.c代码,编写完成后输入“:wq”退出即可;
编写makefile文件,先在命令行模式下输入vi makefile后在vi 模式下输入makefile文件的内容,之后通过make命令进行编译即可。

通过简单的程序的运行来了解嵌入式交叉编译的具体操作和运作。

实习总结:
本次实验主要是建立交叉编译环境,在本次实验出现问题最主要的原因是由于没有理清实验具体的操作流程,同时没能正确的为虚拟机,windows,开发板设置IP,导致实验中出现了一些列的问题。

本次实验中,我觉得有一下两点是应该注意的:①一定要正确的为虚拟机,windows,开发板设置IP,这三者的IP应该同在一个网段,才能实现它们之间的信息交流,同时应该在每步有关IP的操作中都应该弄清楚具体指的是谁的IP,绝对不能含糊;②由于实验中所用的linux 版本REDHAT9.0,它默认的是打开了防火墙,因此对于外来的IP 访问它全部拒绝,这样其它网络设备根本无法访问它,即无法用NFS mount 它,许多网络功能都将无法使用。

因此网络安装完毕后,应立即关闭防火墙。

总之,这次进行实验后,由开始的对交叉编译的概念的模糊,到对交叉编译有了一个具体的了解。

希望在以后的对开发环境的逐渐
熟悉可以更好的掌握嵌入式的交叉编译。

相关文档
最新文档