当前位置:文档之家› 嵌入式系统实验讲义1

嵌入式系统实验讲义1

嵌入式系统实验讲义1
嵌入式系统实验讲义1

嵌入式系统实验讲义韶关学院物理与机电工程学院自动化系

预备知识:

RealView MDK ARM开发工具(https://www.doczj.com/doc/448469548.html,)

Keil公司开发的ARM开发工具MDK[Microcontroller Development Kit(成套工具)],是用来开发基于ARM核的系列微控制器的嵌入式应用程序。

RealView MDK ARM开发工具它集成了业界领先的uVision IDE和RealView编译工具RVCT,出色的性能使它成为ARM开发工具中佼佼者。

一、四步骤掌握RealView MDK

RealView MDK非常简单易用,一般来讲,用户可以通过4个简单的步骤完成大多数应用的开发。

1)选择芯片型号与目标硬件

相对于一般的ARM开发工具来说,RealView MDK对开发调试的支持不仅限于ARM内核级,更是可以达到芯片级的支持。在开发前用户可以根据需求选定芯片的具体型号。MDK数据库几乎囊括了当前所有型号的ARM微控制器芯片,数量已经超过200款,并且ARM会持续不断的更新该数据库,加入对最新ARM微控制器芯片的支持。在Keil网站https://www.doczj.com/doc/448469548.html,/arm/chips.asp,用户可一览所有可支持的ARM微控制器芯片。另外在软件的Device对话框中,用户也可以看到该数据库,同时可以看到各芯片对应的信息。

图一器件数据库

2) 配置硬件和编写应用代码

成功选择合适的芯片并新建工程之后,用户可以在“Components,Environment and Books对话框”中编辑工程的框架,包括增删Groups和Fils等(图二);在“Options for Target对话框”

中可以轻松设置各种参数(图三);通过Configuration Wizard GUI配置自动生成的StartupS文件(图四)。

图二 Components组成,Environment环境and Books对话框

图三 Options for Target对话框

图四工程配置

3) 软件调试和仿真

在与硬件开发平台上调试之前,用户可以通过软件仿真器,进行仿真调试。在“Options for

Target对话框”的Debug标签下,选择“Use Simuator”(图五)。单击,用户就可以开始仿真

调试了。

图五配置仿真调试模式

4) FLASH固化与硬件调试

ULINK-2是RealView MDK的配套硬件调试单元。它采用即插即用的USB接口与宿主机连接,支

持多达30种以上的Flash烧写算法,Flash烧写速度最高可达20KB/秒。同时,ULINK-2还可以以

80KB/秒的速度下载代码到RAM中,并支持断点、单步执行、寄存器与存储器资源查看等功能。

在“Options for Target对话框”的Debug标签下,用户选择“USEULNK ARM Debugger”(图

六),即可将ULINK-2设置为当前使能的调试硬件。随后,用户可以单击按钮,实现FLASH的烧

写。

图六 ULINK-2仿真器的配置与实物

二、RealView MDK模拟仿真器

1)外设仿真

RealView MDK仿真器可以模拟包括ARM内核与片上外设工作过程在内的整个目标硬件;同时仿真器还可以支持对外部中断、外部IO信号等外部信号源的仿真。开发人员可以在完全脱离硬件的情况下开始软件的开发调试,通过软件仿真器观察程序的执行结果。此外,MDK提供开放的接口AGSI,支持用户添加自行设计的外设仿真。

图七 MDK外设仿真功能

2) 逻辑分析仪

uVision 3逻辑分析仪可以将指定变量或VTREGs值的变化以图形方式表示出来。

RealView MDK的性能分析器好比哈勃望远镜,让您看得更远和更准,它辅助用户查看代码覆盖情况、程序运行时间、函数调用次数等高端分析功能,通过这些分析结果,可以进行代码优化,同时发现程序中的隐蔽问题。

图八 MDK逻辑分析

3) 代码覆盖率

代码覆盖率对话框提供了程序各个模块函数执行情况的统计,如图九所示,在Current Modue(当前模块)下拉列表框中列出了程序所有的模块,在下面窗口中则显示了相应模块中指令的执行情况,即每个函数的指令执行百分比,且只要是执行了的部分均以绿色标出。

图九代码覆盖统计

图十代码执行周期

4) 执行剖析器与性能分析仪

执行剖析器可以记录执行全部程序代码所需的时间。它具有两种显示方式:Call(显示执行次数)和Time(显示执行时间)。将鼠标放在指定的入口处即可显示有关执行时间及次数的详细信息。

性能分析仪用于记录和显示程序的执行时间。它可以记录整个程序代码的时间统计

除了上述MDK特有的调试功能外,RealView MDK也包括大多数工具所具备的调试功能,如断点设置,反汇编,串行显示,观察窗口等等。

图十一总执行时间统计

三、选择工具集

μVision可以使用ARM RealView编译工具、ARM ADS编译器、GNU GCC编译器,当使用GNU GCC 编译器或ARM ADS编译器时必须另外安装它们编译集。实际使用的工具集可以在μVision IDE的Project - Components, Environment, and Books对话框的Folders/Extensions页(见下图)中选择。

图十二选择工具集

四、组工程文件

文件组(file group)可以组织更大的工程。对于CPU的启动代码和其他的系统配置文件,可以通过Project ->Components, Environment, Books对话框创建一个单独的文件组。使用New (Insert)按钮创建名为System Files的文件组。在工程窗口中,可以将Starup.s文件拖放到这个新建的文件组中。

图十三组工程文件

Project Workspace ->Files页列出了所有的工程文件。在工程工作区中双击这些文件名可以打开它们,此时可以对这些文件进行编辑。μVision有一个特点,就是可以在编辑器中以图形界面的形式编辑启动代码。

图十四工程文件

设置目标硬件的工具选项

1、ARM器件选择

基于RealView MDK3.22环境的应用开发

众所周知,KEIL公司是世界上知名的MCU编译器及其工具开发商,在推出51编译器后,又接着推出了ARM编译器.自从realview MDK推出以来,版本升级过程中,变化较大,现在最新的已经是3.22的版本号了.在功能上,代码限制从16K到上升到32K,从CARM COMPILER编译器过度到REALVIEW COMPILER编译器, 而且支持中文帮助.在一些配置界面上有很大的变化.现在按最新的软件来讨论。

软件环境: RealView MDK 3.22(截至2008年6月最新中国评估版)

运行平台:软件仿真

工程示例:Blinky.uv2(系统自带)

作者假设你已经初步掌握了realview MDK(或者keil uvision)的基本方法,能够独立完成一个工程的建立及软件调试工作.那么下面让我们来一起在RAM中调试程序吧.

1,打开一个已经建好的工程, 本文以系统自带的:Blinky.uv2工程为例来说明,其路径为C:\Keil\ARM\Examples\Blinky,打开后的界面如下图所示.

具栏里的那个小魔法棒.

3,这时弹出的新窗口,切到LINKER选项卡,如下

4, 这时候的地址不再是确省值,采用瞒天过海的办法,在R/O BASE里填入0X40000000,表示程序的基地址,在R/W BASE里填入0X40000400,RAM表示数据的基地址.点确定关闭.

5,在C:\Keil\ARM\Examples\Blinky路径下建立一个记事本文件,将文件扩展名改为.INI,文件全名为Blinky.INI,打开文件后输入以下信息:

FUNC void Setup(void) {

PC=0X40000000;

}

Setup();

LOAD .\Obj\Blinky.axf INCREMENTAL

输入完后保存并关闭.

6,按3操作,打开OPTION FOR LPC2100窗口,在DEBUG选项卡里选中 use simulator,表示软件仿真,同时在LOAD APPLICATION选择框里打勾,(注意:RUN MAIN 不要打勾.)点在initalization FILES旁边的浏览按钮按路径添加Blinky.INI文件,找到后点击确定,关闭窗口.

7,在工具拦里点击仿真按钮, 你看到了什么???

呵呵,看到想要的结果了吗?是不是程序从地址为0X40000000的RAM里开始执行了!!!

8,这是个流水灯的小程序,打开I/O观察窗口(在PHERIAL->GPIO)并执行全速运行命令,就可以看到流水灯在来回移动的效果了.

实验项目

【实验1】系统平台学习,简单应用,工具熟悉

Keil公司开发的ARM开发工具MDK[Microcontroller Development Kit(成套工具)],是用来开发基于ARM核的系列微控制器的嵌入式应用程序。

(1)实验目的:要求学生掌握创建工程,添加文件,设置编译选项,编译链接,调试工程等基本操作。

(2)实验原理:以一个简单的汇编指令实验为例

(3)实验内容:创建工程,设置编译选项,编译链接,调试工程。

1)、创建工程

参考预备知识,主澺汇编指令不用启动文件Startup.s。

2)、设置编译选项

(a)、点击按钮进入Environment,选择Use RealView Compiler

(b)、设置目标硬件的工具选项

ARM器件选择(LPC2124)

3)、编译链接

FUNC void Setup(void) {

PC=0X40000000;

}

Setup();

LOAD test1.axf INCREMENTAL

4)、调试工程

(A)仿真设置

(4)实验报告:

(a) 、总结嵌入式系统在RealView MDK ARM开发工具中创建工程,添加文件,设置编译选项,编译链接,调试工程的一般歩骤。

(b)、说明程序FUNC void Setup(void)的作用。

(c)、参考程序完成什么功能。

(4)参考程序:

COUNT EQU 0x40003100 ;定义一个变量,地址为0x40003100 PRESERVE8

;RVMDK中的新版本编译工具会重新生成满足堆栈8byte对齐要求的目标文件,

;避免由于堆栈不对齐引起的连接错误,因此在每个汇编文件的开头,添加"PRESERVE8"指令AREA Example2,CODE,READONLY ;声明代码段Example2

ENTRY ;标识程序入口

CODE32 ;声明32位ARM指令

;EXPORT Reset_Handler

Reset_Handler ;代码开始

LDR R1,=COUNT ;R1<=COUNT

MOV R0,#0 ;R0<=0

STR R0,[R1] ;[R1]<=R0,即设置COUNT为0 LOOP LDR R1,=COUNT

LDR R0,[R1] ;R0<=[R1]

ADD R0,R0,#1 ;R0<=R0+1

CMP R0,#10 ;R0与10比较,影响条件码标志

MOVHS R0,#0 ;若R0>=10,则此指令执行,R0<=0

STR R0,[R1] ;[R1]<=R0,即保存COUNT

B LOOP ;/* end the code ,cycling */

END

【实验2】 GPIO输入/输出的设计实验

设计控制蜂鸣器蜂鸣

(1)实验目的:要求学生进一步熟悉掌握创建工程,添加文件,设置编译选项,编译链接,调试工程等基本操作。

(2)实验原理:以一个简单的C语言指令实验为例

(3)实验内容:创建工程,设置编译选项,编译链接,调试工程。

1)、创建工程

参考预备知识,主澺C语言汇编指令需用启动文件Startup.s。

2)、设置编译选项

参考实验1

3)、编译链接

FUNC void Setup (void)

{

// Program Entry Point

PC = 0x40000000;

}

LOAD BEEPCON.axf INCREMENTAL // Download

Setup(); // Setup for Running

g, main

(4)实验报告:

(a) 、C语言指令嵌入式系统在RealView MDK ARM开发工具中创建工程,添加文件,设置编译选项,编译链接,调试工程的一般歩骤和汇编指令有什么不同。

(b)、说明程序C语言FUNC void Setup(void)和汇编的语言有什么不同。

(c)、参考程序完成什么功能,如何修改蜂鸣器蜂鸣的时间长短。

(4)参考程序:

/**************************************************************************** * 文件名:BEEPCON.C

* 功能:蜂鸣器控制。

* 说明:P2.25(SP)高电平有效

****************************************************************************/ #include

#define BEEPCON 0x02000000 /*P2.25引脚控制蜂鸣器*/

/****************************************************************************

* 名称:DelayNS()

* 功能:长软件延时

* 入口参数:dly 延时参数,值越大,延时越久

* 出口参数:无

****************************************************************************/

void wait (void) { /* wait function */

int d;

for (d =0; d <1000000; d++); /* only to delay for LED flashes */

}

/****************************************************************************

* 名称:main()

* 功能:控制蜂鸣器蜂鸣

****************************************************************************/

int main(void)

{ PINSEL2=0x00000010;

IODIR2=BEEPCON; /*设置I/O为输出*/

//IOCLR2=0x00000001;

while(1)

{

wait();

IOSET2=BEEPCON; /*BEEPCON=1*/

wait();

IOCLR2=BEEPCON; /*BEEPCON=0*/

}

// return(0);

};

实验3预备知识:

从ADS1.2 到RVMDK3.0

ARM中国姜宁

1、概述

Keil是业界最好的51单片机开发工具之一,它拥有流畅的用户界面与强大的仿真功能。ARM将Keil

公司收购之后,正式推出了针对ARM微控制器的开发工具RVMDK,它将ARM编译器RVCT与Keil的工程管理、调试仿真工具集成在一起,是一款非常强大的ARM微控制器开发工具。2007年5月,ARM正式授权中国深圳英蓓特公司代理中文版RVMDK的出售事务。

很多嵌入式系统开发工程师对ARM的老版本开发工具ADS1.2非常熟悉,而RVMDK与ADS相比较,从外观、仿真流程以及内部二进制编译链接工具上都有了不少改进,用法稍有不同。本主的主旨是介绍通用的流程,以及一些注意事项,帮助ADS1.2用户将老的,遗留的ADS1.2工程转化成在RVMDK上进行开发调试的工程。

2、工具结构的改进

ARM新推出的微控制器开发工具RVMDK与ADS1.2在工具架构组成上有一些不同,这些区别包括:不同版本的ARM编译器(Compiler),不同的调试器(Debugger),不同的仿真器(Simulator),以及不同的硬件调试单元。作为ARM的新一代微控制器开发工具,RVMDK不但包含ARM的最新版本编译链接工具,即RVDS3.0的编译链接工具,而且根据微控制器调试开发的特点采用了与ADS,RVDS完全不同的调试、仿真环境,uVision Debugger与Simulator。

RVMDK集成了RVDS3.0的编译工具RVCT3.0,与ADS1.2相比,除去编译、连接工具的可执行二进制文件不同之外,RVCT3.0的很多编译连接选项与ADS编译器也有不同。

2.1、POSIX格式

RVCT3.0采用了POSIX格式的编译连接选项,所有的多字符选项前必须使用双下划线。例如:ADS 的编译选项_cpu,在RVMDK中需要改写成__cpu,否则用户在RVMDK中直接使用ADS的makefile时,工具会产生一个如下警告:

Warning: L3910W: Old syntax, please use ‘__xxx’

2.2、编译器例化形式

在ADS中,当用户需要将高级语言代码编译成目标文件时,需要根据目标机器码的不同(16位的Thumb代码或者32位的ARM代码),以及高级语言的不同(C代码或者C++代码)选择不同的编译器可执行文件;RVCT3.0编译器则将它们全部统一为armcc,仅仅通过不同的编译选项进行区分。表1较为详细的罗列了其中的差别。

表1 RVMDK与ADS编译器的例化形式对比

注表1中“默认的编译选项”是指在没有其它编译选项时指编译器的缺省选项。

2.3、连接器的使用

对目标文件进行链接之前,ARM工具的连接器会严格检查各个文件(Objects),判断它们是否

复合ARM体系结构的ABI表准。由于RVCT与ADS编译链接工具所遵循的ARM ABI不同,所以将ADS

的遗留工程直接移植到RVMDK并进行连接时,用户可能会遇到如下的错误或者警告:Error: L6238E: foo.o(.text) contains invalid call from '~PRES8' function to 'REQ8' function

Warning: L6306W: '~PRES8' section foo.o(.text) should not use the address of 'REQ8' function foobar

这是因为新工具的ABI要求在函数调用时,系统必须保证堆栈指针8byte对齐,即每次进栈或者出栈的寄存器数目必须为偶数。这是为了能够更加高效的使用STM与LDR指令对“double”或者“long long”类型的数据进行访问。而老的ARM开发工具ADS并没有考虑到新的ARM内核架构,其ABI对于堆栈的操作仅仅要求4byte对齐。所以当用户将在ADS中编译连接成功的工程代码移植到RVMDK上,或者将老的、ADS遗留的目标文件、库文件在新工具RVMDK中进行连接时,RVMDK的连接器就会报出以上的错误。

对于以上情况,用户可以通过简单修改代码并重新编译链接,或者使用特殊的编译选项来解决。

2.3.1重新编译所有代码

当用户拥有该ADS遗留工程的所有源代码时,使用RVMDK重新编译链接全部代码是最好的解决方法。RVMDK中的新版本编译工具会重新生成满足堆栈8byte对齐要求的目标文件,避免由于堆栈不对齐引起的连接错误。

当工程中包含汇编代码时,用户可能还需要做少量的代码修改。这些修改包括:

1)检查汇编源码中的指令,确保堆栈操作指令是8byte对其的。

如Ex1中,ADS的遗留代码一次性将5个寄存器压栈,由于ARM的指令寄存器宽度为32位,即4byte,显然5个寄存器入栈之后,堆栈指针不能够满足64位,8byte对齐。为了解决这种情况,我们可以将另外一个并不需要压栈的寄存器,R12,同时压栈,这样当6个32位寄存器进栈之后,堆栈就能满足64位对齐了。

Ex.1

STMFD sp!, {r0-r3, lr} ; 将R0,R1,R2,R3,LR(奇数)寄存器入栈

STMFD sp!, {r0-r3, r12, lr} ; 将偶数个寄存器入栈

2)在每个汇编文件的开头,添加“PRESERVE8”指令。见Ex2。

Ex.2

AREA Init, CODE, READONLY

PRESERVE8

AREA Init, CODE, READONLY

2.3.2使用--apcs /adsabi编译选项

当用户没有该ADS遗留工程的全部源码,只拥有库文件或者目标文件时,可以通过--apcs/adsabi编译选项强制RVMDK的编译器产生复合ADS ABI要求的目标文件,以达到与遗留的ADS库文件、目标文件兼容的目的。

注:ARM新工具将不会继续支持--apcs/adsabi选项。建议用户及时更新工具到最新版本。

2.4 分散加载文件

RVMDK同样支持ADS的分散加载文件,但是当分散加载文件中涉及到必须被放置ROOT Region中的C 库函数时,有时用户需要作少量修改。

ROOT Region的load address与execution address相同,所以这部分代码在系统初始化时无需进行搬移操作,很多库函数,如__scatter*.o或者__dc*.o,必须被放置在Root Region中。

Ex.3 –分散加载文件的修改

; ADS 中的分散加载文件

ROM_LOAD 0x0

{

ROM_EXEC 0x0

{ vectors.o (Vect, +First)

__main.o (+RO)

* (Region$$Table)

* (ZISection$$Table)

}

RAM_EXEC 0x100000

{ *.o (+RO,+RW,+ZI) }

}

; RVMDK中的分散加载文件1 ; RVMDK中的分散加载文件2

ROM_LOAD 0x0 ROM_LOAD 0x0

{ {

ROM_EXEC 0x0 ROM_EXEC 0x0

{ {

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

《嵌入式系统及应用》课程实验 一、实验课程的性质、目的和任务 性质:《嵌入式系统及应用》课程是自动化专业的专业基础课程,本实验课是该课程教学大纲中规定必修的实验教学内容。 目的和任务:通过实验环节来巩固和加深学生对嵌入式系统的理解,使学生掌握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种功能

嵌入式系统课程复习题

1、何谓嵌入式系统?嵌入式系统与传统计算机有何区别?嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统(简称“嵌”)和传统计算机(简称“传”)的主要区别包括以下几点:形式与类型:传:实实在在的计算机。按其体系结构、运算速度和规模可分为大型机,中型机,小型机和微机嵌:“看不见”的计算机,形式多样,应用领域广泛,按应用进行分类。组成:传:通用处理器、标准总线和外设、软硬件相对独立嵌:面向特定应用的微处理器,总线和外设一般集成在处理器内部,软硬件紧密结合。系统资源:传:系统资源充足,有丰富的编译器、集成开发环境、调试器等嵌:系统资源紧缺,没有编译器等相关开发工具。开发方式:传:开发平台和运行平台都是通用计算机嵌:采用交叉编译方式,开发平台一般是通用计算机,运行平台是嵌入式系统。二次开发性:传:应用程序可重新编程嵌:一般不能重新编程开发。发展目标:传:编程功能电脑,普遍进入社会嵌:变为专用电脑,实现“普及计算”。 2、主流的嵌入式操作系统有哪几种?各有何特点?①传统的RTOS,特点:提供了高效的实时任务调度、中断管理、实时的系统资源以及实时的任务间通信。②嵌入式Linux操作系统,特点:免费、开源、支持软件多等。③Android系统,特点:不存在任何以往阻碍移动产业创新的专利障碍,是一个为移动终端构建的真正开放和完整的系统软件。④Windows CE 嵌入式操作系统,特点:具有模块化、结构化和基于Win32应用程序接口和与处理器无关等⑤μC/OS-Ⅱ实时操作系统,特点:包括了一个操作系统最基本的一些特性,并且是一个代码完全开放的实时操作系统,简单明了的结构和严谨的代码风格。 3、主流的嵌入式微处理器有哪几种?各有何特点?①ARM,特点:体积小,低功耗,低成本,高性能;能很好地兼容8位/16位器件;大量使用后寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行高效;指令长度固定。②MIPS,特点:尽量利用软件办法避免流水线中的数据相关问题。③PowerPC,特点:有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量④x86,特点:对以前的处理其保持了良好的兼容性,但是限制了CPU性能的提高。⑤Motorola 68000,特点:是CISC结构. 4、例举你在生活中使用过的嵌入式系统,并分析其系统构成。 5、从当前人们的生活、工作、娱乐等方面来看,未来嵌入式系统的发展趋势如何?你认为未来将会出现哪些嵌入式产品?网络化,信息化,智能化,网络互连,移动互联成为必然趋势!实现手写输入、语音输入、语音播报的一班嵌入式产品。 第2 章ARMCortexM3 微处理器基础 1、ARM 微处理器有什么特点?ARM 微处理器常用于哪些领域?特点:体积小,低功耗,低成本,高性能;能很好地兼容8位/16位器件;大量使用后寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行高效;指令长度固定。领域: ①工业控制领域②无线通讯③网络应用④消费类电子产品⑤成像和安全产品 2、简述 CM3 是如何处理异常的。1、CM收到中断服务请求2、CM判断向量表是否重映射,并从对应的中断入口取址 3、CM内核将MSP装入SP寄存器。并修改CONTROL[1]为0。 4、CM 内核进入特权级,并修改CONTROL[0]为0 5、CM内核修改ICSR、SHCSR、XPSR等寄存器 6、CM内核根据CONTROL[1]将R0-R3、R12、LR、PC、XPSR寄存器存入MSP或PSP栈 7、CM内核将LR修改为EXC_RETURN的特殊值 8、CM内核调入中断向量表,跳转至中断入口处。 3、简要说明 CM3 处理器的存储器系统特点及映射分区。特点:存储器映射是预定义的,并且规定了那个位置使用哪条总线。支持位带操作,实现了在特殊的存储器区域对单一比特的原子操作。分区:代码区,片上SRAM区,片上外设区,片外RAM去和片外外设区,私有外设区,芯片商指定区。

嵌入式系统实验报告

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

实验名称: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”来编译应用程序。

嵌入式系统复习题

一、 单项选择题 1、在CPU和物理内存之间进行地址转换时,( B)将地址从虚拟(逻辑)地址空间映射到物理地址空间。 A.TCB B.MMU C.CACHE D.DMA 2、进程有三种状态:( C)。 A.准备态、执行态和退出态 B.精确态、模糊态和随机态 C.运行态、就绪态和等待态 D.手工态、自动态和自由态 3、以下叙述中正确的是(C)。 A.宿主机与目标机之间只需要建立逻辑连接即可 B.在嵌入式系统中,调试器与被调试程序一般位于同一台机器上 C.在嵌入式系统开发中,通常采用的是交叉编译器 D.宿主机与目标机之间的通信方式只有串口和并口两种 4、中断向量是指(C)。 A.中断断点的地址 B.中断向量表起始地址 C.中断处理程序入口地址 D.中断返回地址 5、在微型计算机中,采用中断方式的优点之一是(C)。 A.简单且容易实现 B.CPU可以不工作 C.可实时响应突发事件 D.传送速度最快 6、在ARM处理器中,(A)寄存器包括全局的中断禁止位,控制中断禁止位就可以打开或者关闭中断。 A.CPSR B.SPSR C.PC D.IR 7、嵌入式系统的三要素下面哪一个不是:( B )。 A、嵌入 B、存储器 C、专用 D、计算机 8、μCOS-II操作系统属于( B )。 A、顺序执行系统 B、占先式实时操作系统 C、非占先式实时操作系统 D、分时操作系统 9、ARM寄存器组有( C )个状态寄存器。 A、7 B、32 C、6 D、37 10、C++源程序文件的默认扩展名为( A )。 A、cpp B、exe C、obj D、lik 11、在下列ARM处理器的各种模式中,( D )模式有自己独立的R8-R14寄存器。 A、系统模式(System) B、终止模式(Abort) C、中断模式(IRQ) D、快中断模式(FIQ)

南邮嵌入式系统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. 什么是嵌入式系统?请列举几个常见的嵌入式系统。答:根据国际电气和电子工程师协会()的定义,嵌入式系统是控制、监视或者辅助设备、机器和生产线运行的装置(, , , )。这主要是从产品的应用角度加以定义的,由此可以看出嵌入式系统是软件和硬件的综合体,可以涵盖机械等附属装置。 目前被我国科学家普遍认同的定义是:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。 常见的嵌入式系统:手机,,路由器,核磁共振仪,全自动洗衣机。 2. 嵌入式系统与通用计算机有哪些区别? 答:(1)以应用为中心;(2)以计算机技术为基础(3)软件和硬件可裁减 (4)对系统性能要求严格(5)软件的固件化(6)需要专用的开发工具 3. 嵌入式系统的发展分为哪几个阶段?答:第一阶段:无操作系统的嵌入算法阶段。第二阶段:以嵌入式为基础,以简单操作系统为核心的嵌入式系统。第三阶段:以嵌入式操作系统为标志的嵌入式系统。第四阶段:以基于为标志的嵌入式系统。 4. 请列举嵌入式系统的主要应用领域。 答:(1)工业控制领域(2)交通运输领域(3)消费电子产品(4)家电领域(5)通信领域(6)商业和金融领域(7)环境监测领域(8)医疗领域(9)建筑领域(10)军事国防领域(11)航天航空领域 第二章习题答案 1. 简述简单嵌入式系统与复杂嵌入式系统的主要区别。答:简单嵌入式系统很早就已经存在,这类嵌入式系统因为软硬件复杂度都很低,一般不使用操作系统,例如常用的单片机系统。对于复杂的嵌入式系统,它的开发模式发生了极大的改变。一个复杂的嵌入式系统不仅硬件系统的开发比单片机复杂了许多,更重要的是在该系统中采用了嵌入式操作系统,其应用软件的开发转变为使用操作系统标准接口的计算机工程领域的应用软件开发。复杂嵌入式系统具有更强大的功能,但是简单的嵌入式并不会随着复杂的嵌入式系统出现而消亡。 2. 简述嵌入式系统的体系结构。答:嵌入式系统从组成上看,可分为嵌入式硬件系统与嵌入式软件系统两大部分。嵌入式硬件层由嵌入式微处理器、嵌入式存储器系统、通用设备和I/O接口等 组成。嵌入式系统的软件层分为嵌入式操作系统和嵌入式应用软件两大部分。 3. 嵌入式处理器分为哪几类? 答:嵌入式处理器可分为以下四种:嵌入式微控制器(,),嵌入式微处理器(,),嵌入式处理器(,)和嵌入式片上系统(,)。 4. 中常用的嵌入式存储器都有哪些? 答:系统的存储器可以分为片内存储器和片外存储器。片内一般以或为主。片外 通常以和为主。嵌入式系统中常用的几种内存有、、、等。

嵌入式系统综合实验一

实验名称: 姓名: 学号: 装 订 线 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、某文件属性显示为 drwxr-xr-x,则该文件是( A )。 A、目录文件 B、普通文件 C、链接文件 D、管道文件 2、在linux中,通常作为用户工作目录的是( C )。 A、 /boot B、/etc C、 /home D、/bin 3、下列命令中,用于显示系统进程列表的命令是( D )。 A、 locate B、mv C、 cat D、ps 4、表示目标文件的扩展名一般是( B )。 A、.c B、 .o C、 .h D、 .i 5、在Makefile的工程管理中,( C )表示第一个依赖文件的名称。 A、 $* B、$+ C、$< D、 $? 6、以下不属于嵌入式系统特点的是 B 。 A 、不具备二次开发能力 B 、面向通用应用 C、软硬件裁剪 D、软件固化于芯片 7、对嵌入式板进行在线交叉调试(ICD方式),所使用的连接接口方式为( D )。 A、USB B、网络接口 C、串口 D、 JTAG 8、linux与开发板串行调试方式中,所使用到的工具软件是( A ) A、 minicom B、超级终端 C、arm-linux-gcc D、 gdb 9、在Linux内核源代码中,与处理器体系结构有关的子目录是( C )。 A、/include B、/init C、/arch D、drivers 10、下列文件系统,不是嵌入式系统的文件系统格式的是( B ) A、cramfs B、ntfs C、romfs D、jffs 11、以下属于Linux文件系统格式的是( A ) A、EXT3 B、FAT C、FAT32 D、NTFS 12、某文件属性显示为–rwxr-xr-x,则该文件是( B )。 A、目录文件 B、普通文件 C、链接文件 D、管道文件 13、在linux中,通常作为存放系统配置文件的目录是( B )。 A、 /boot B、/etc C、 /home D、/bin 14、下列命令中,用于给特定进程发送信号的命令是( C )。 A、 locate B、mv C、 kill D、 cat 15、在Makefile的工程管理中,( D )表示目标文件的完整名称。 A、 $* B、$+ C、$< D、 $@ 16、在Linux内核源代码中,与内核初始化有关的子目录是( C )。 A、/include B、/arch C、/init D、drivers

嵌入式系统实验实验报告

嵌入式系统实验实验报告 一、实验目的 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等待周期访问(读/写)。

嵌入式系统复习资料

第1章嵌入式系统导论 1.嵌入式系统的概念: 是以现代计算机技术为基础,以应用为中心,可以根据系统或用户需求(功能、可靠性、成本、体积、功耗、环境等),灵活裁剪软硬件模块的专用计算机系统。 2.嵌入式系统的分类及分类依据: 嵌入式系统由硬件和软件两大部分组成,用于实现对其他设备的控制、监视或管理等功能。前者是整个系统的物理基础,它提供软件运行平台和通信接口;后者实际控制系统的运行。 硬件:嵌入式微处理器、外围电路、外围硬件设备。 软件:BootLoader 、嵌入式操作系统、用户的应用程序等。 3.几种典型嵌入式操作系统:(1) uC/OS II (2)uCLinux (3)Windows CE (4)嵌入式Linux 等 4.任务调度: 任务的调度有三种方式:可抢占式、不可抢占式和时间片轮转。 【不可抢占式调度是指一个任务一旦获得CPU就独占其运行,除非由于某种原因使它决定放弃CPU的使用权; 可抢占式调度是基于任务优先级的,当前正在运行的任务可以随时让位给优先级更高的处于就绪态的其他任务; 当两个或两个以上任务有同样的优先级时,不同任务轮转使用CPU,直到系统分配的CPU时间片用完,这就是时间片轮转调度。】 目前,大多数嵌入式操作系统对不同优先级的任务采用基于优先级的可抢占式调度法,对相同优先级的任务则采用时间片轮转调度法。 5.针对有内存管理单元(MMU,Memory Management Unit)的处理器而设计的一些桌面操作系统,如Windows、Linux,使用了虚拟存储器的概念。 6.计算机的发展: 冯诺依曼架构:将指令和数据存放在同一存储空间中,统一编址,指令和数据通过同一总线访问。 哈佛结构(冯诺依曼架构的扩展):主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编制、独立访问。CortexM3

嵌入式系统设计实验四

实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:实验四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 地点:创客空间

嵌入式系统实验报告

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

嵌入式系统复习题

1.嵌入式系统的定义是什么? IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。 国内定义:应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统特点,三要素:嵌入、专用、计算机 (1)嵌入到对象体系中,有对象环境要求 (2)软、硬件按对象要求裁减 (3)实现对象的智能化功能 2.嵌入式软件系统分为几个层次? 驱动层,OS层,应用层 3.嵌入式处理器分为几类? 微控制器(MCU) 微处理器(MPU)(Embedded MicroProcessor Unit) 数字信号处理器(DSP)( Digital Signal Processor) 混合处理器和片上系统(SOC)(System On Chip) 可编程片上系统(SOPC)(System On Programmable Chip) 4.选择嵌入式微处理器时,应考虑那些因素。 5.什么是实时操作系统,如何分类? 能够对外部事件做出及时响应的系统。响应时间要有保证。 对外部事件的响应包括: (1)事件发生时要识别出来 (2)在给定时间约束内必须输出结果 实时操作系统必须有以下特征: (1)多任务 (2)有线程优先级 (3)多种中断级别 实时操作系统又分为: (1)硬实时系统。对系统响应时间有严格的要求,如果系统响应时间不能满足,就会引起系统崩溃或致命的错误。

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