当前位置:文档之家› 嵌入式系统与应用实验指导

嵌入式系统与应用实验指导

嵌入式系统与应用实验指导
嵌入式系统与应用实验指导

《嵌入式系统原理及应用》

实验指导书

适用专业:电气、测控等

课程代码: 8413841

总学时: 48 总学分: 3

编写单位:电气信息学院

编写人:王平

审核人:

审批人:

批准时间:年月日

目录

实验一ADS 1.2集成开发环境练习 (3)

实验二汇编调用实验与Bootloader下载 (11)

实验三、μC/OS-II移植实验 (14)

实验四、步进电机控制实验 (17)

实验一ADS 1.2集成开发环境练习

一、实验目的和任务

了解ADS 1.2集成开发环境的使用方法。

建立一个新的工程;建立一个汇编源文件,并添加到工程中;设置文本编辑器支持中文;设置编译链接控制选项;编译链接工程;调试工程。

二、实验设备

装有ADS 1.2集成开发环境的PC机

三、实验步骤

1.ADS环境练习。

(1) 在D:\新建一个目录,目录名为experiment。

(2) 启动ADS1.2 IDE集成开发环境,选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。

(3) 选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。

(4) 选择【Edit】->【Perferences…】,在Font选项设置字体是Fixedsys,Script 是CHINESE_GB2312。

(5) 选择【Edit】->【DebugRel Settings…】,在DebugRel Settings对话框的左边选择ARM Linker项,设置链接地址。

(6) 选择【Project】->【Make】,或者按下快捷键F7,将编译链接整个工程。

(7) 选择【Project】->【Debug】,或者按下快捷键F5。IDE环境就会启动AXD 调试软件,接着可以执行单步、全速运行调试。

注意:本实验使用软件仿真,所以要在AXD中选择【Options】->【Configure Target…】菜单,然后在Choose Target窗口中选用ARMUL软件仿真。

2.ADS1.2操作实例一:汇编指令实验

使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址……周而复此循环;

使用ADS 1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(Processor Registers)监视R0、R1的值,打开存储器观察窗口(Memory) 监视0x40003100上的值。

(1) 启动ADS 1.2,使用ARM Executable Image工程模板建立一个工程

Instruction1。

(2) 建立汇编源文件TEST2.S,编写实验程序,然后添加到工程中。

(3) 设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。设

置调试入口地址Image entry point为0x40000000。

(4) 编译链接工程,选择【Project】->【Debug】,启动AXD进行软件仿真调试。

(5) 打开寄存器窗口(Processor Registers),选择Current项监视各寄存器的值。

(6) 打开存储器观察窗口(Memory) 设置观察地址为0x40003100。

(7) 单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,调试时观察寄存器和0x40003100地址上的值。

参考程序:

COUNT EQU 0x40003100 ; 定义一个变量,地址为0x40003100 AREA Example2,CODE,READONLY ; 声明代码段Example2

ENTRY ; 标识程序入口

CODE32 ; 声明32位ARM指令

START 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

3.ADS1.2操作实例二:C语言程序实验

编写一个汇编程序文件Startup.S和一个C程序文件Test.c。汇编程序的功能是初始化堆栈指针和初始化C程序的运行环境,然后调跳转到C程序运行,这就是一个简单的启动程序。C程序使用加法运算来计算1+2+3+...+(N-1)+N的值(N>0)。

(1) 启动ADS 1.2,使用ARM Executable Image工程模板建立一个工程

ProgramC。

(2) 建立源文件Startup.S和Test.c,编写实验程序,然后添加到工程中。

(3) 设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。设

置调试入口地址Image entry point为0x40000000。

(4) 设置位于开始位置的起始代码段为Startup.o的代码段。

(5) 编译链接工程,选择【Project】->【Debug】,启动AXD进行软件仿真调

试。

(6) 在Startup.S的跳转到C程序入口的代码处设置断点,然后全速动行程序。

(7) 程序在断点处停止。单步运行程序,判断程序是否跳转到C程序中运行。

参考程序:

汇编启动代码:Startup.s

;起动文件。初始化C程序的运行环境,然后进入C程序代码。

IMPORT |Image$$RO$$Limit|

IMPORT |Image$$RW$$Base|

IMPORT |Image$$ZI$$Base|

IMPORT |Image$$ZI$$Limit|

IMPORT Main ; 声明C程序中的Main()函数

AREA Start,CODE,READONLY ;声明代码段Start

ENTRY ; 标识程序入口

CODE32 ; 声明32位ARM指令Reset LDR SP,=0x40003F00

; 初始化C程序的运行环境

LDR R0,=|Image$$RO$$Limit|

LDR R1,=|Image$$RW$$Base|

LDR R3,=|Image$$ZI$$Base|

CMP R0,R1

BEQ LOOP1

LOOP0 CMP R1,R3

LDRCC R2,[R0],#4

STRCC R2,[R1],#4

BCC LOOP0

LOOP1 LDR R1,=|Image$$ZI$$Limit|

MOV R2,#0

LOOP2 CMP R3,R1

STRCC R2,[R3],#4

BCC LOOP2

B Main ; 跳转到C程序代码Main()函数

END

C语言实验参考程序:Test.c

#define uint8 unsigned char

#define uint32 unsigned int

#define N 100

uint32 sum;

// 使用加法运算来计算1+2+3+...+(N-1)+N的值。(N>0)

void Main(void)

{ uint32 i;

sum = 0;

for(i=0; i<=N; i++)

{ sum += i;

}

while(1);

}

四、实验结果与分析

1.ADS中如何实现程序由汇编到C语言的跳转?

2.如何在AXD中观察存储器的内容,如何实现对寄存器的监视?

3.本实验的汇编程序中使用了哪几种寻址方式?

实验二汇编调用实验与Bootloader下载

一、实验目的和任务

学习掌握在C程序调用汇编子程序的方法,本实验实现由C程序调用利用汇编语言实现两个整数的加法运算。

实现将Bootloader下载到SST39VF1601。

二、实验原理

在C程序调用汇编子程序,

三、实验仪器设备

装有ADS的PC机,ARM2410教学实验系统,EasyJTAG-H仿真器。

四、实验步骤

1.在C程序调用汇编子程序,实现两个整数的加法运算。汇编子程序的原型为:uint32 Add(uint32 x, uint32 y),其中uint32已定义为unsigned int。

(1) 启动ADS 1.2,使用ARM Executable Image工程模板建立一个工程ProgramC1。

(2) 建立源文件Startup.S、Add.S和Test.c,编写实验程序,然后添加到工程中。

(3) 设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。设置调试入口地址Image entry point为0x40000000。

(4) 设置工程链接选项,位于开始位置的起始代码段设置为Startup.o的代码段。

(5) 编译链接工程,选择【Project】->【Debug】,启动AXD进行软件仿真调试。

(6) 在Test.c文件中的调用Add()的代码处设置断点,然后全速动行程序。

(7) 程序在断点处停止。使用Setp In单步运行程序,观察程序是否转到汇编程序Add.S。

(8) 单步/全速运行程序,判断程序的运算结果是否正确。

程序清单:

C语言调用汇编程序实验参考程序:Test.c

#define uint8 unsigned char

#define uint32 unsigned int

extern uint32 Add(uint32 x, uint32 y);

uint32 sum;

// 调用汇编程序Add实现加法运算

void Main(void)

{ sum = Add(555, 168);

while(1);

}

汇编加法函数代码: Add.S

; 加法函数,原型为uint32 Add(uint32 x, uint32 y)。

EXPORT Add

AREA AddC,CODE,READONLY ; 声明代码段AddC

ENTRY ; 标识程序入口

CODE32 ; 声明32位ARM指令

Add ADD R0,R0,R1 ; 输入参数x为R0,y为R1

MOV PC,LR ; 返回值为R0

END

2.下载Bootloader

使用EasyJTAG-H 将ZLG/BOOT 下载到SST39VF1601 中。

需要ADS1.2 软件、基于ADS 的WR_NORFLASH.mcp 工程、H-JTAG 软件和EasyJTAG-H仿真器。

跳线设置:断开BOOT-SEL 跳线JP8,短接蜂鸣器跳线JP9。

将EasyJTAG-H 和实验箱相连,运行H-JTAG,打开WR_NORFLASH.mcp 工程,打开StartUP.s,文件,将下面的代码添加进文件中“ResetInit”函数相应位置。

ResetInit

BL InitStack ; 初始化堆栈

BL TargetBusInit ; 总线系统初始化(函数中不允许堆栈操作)

BL TargetResetInit ; 针对目标板的系统初始化

MRC p15,0,R1,c1,c0,0 ; (MMU设置,异步总线模式) 读控制寄存器

ORR R1,R1,#0xC0000000 ; 当HDIVN=1时操作有效

MRC p15,0,R1,c1,c0,0

B __main ; 跳转到c语言入口

B . ; 如果main返回,则死循环

; /* 包含要烧写的bin文件*/

EXPORT FLASH_FUNCTION

EXPORT FLASH_FUNCTION_END

FLASH_FUNCTION

INCBIN flash.bin

FLASH_FUNCTION_END

选择DebugRel 生成目标,进入AXD 调试环境。在语句while(1)处设置断点,然后全速运行程序,或者将光标放置在while(1)处后运行到此处。程序停止后,如果蜂鸣器鸣叫一声则表示已经正确将ZLG/BOOT 下载到SST39VF1601 中,然后后将实验箱断电即可;如果蜂鸣器连续鸣叫则表示下载出错,需要重新下载。下载完毕,将EasyJTAG-H 拔掉,以便启动系统。

2 启动ZLG/BOOT

设置串口终端(115200-8-N-1,无流控制)。将PC 串口和实验箱右侧的UART0 相连,然后启动实验箱,将会得到如图所示的ZLG/BOOT 启动界面。

五、实验结果与分析

1.如何实现在C程序中调用汇编?

2.下载Bootloader有哪些步骤?

实验三、μC/OS-II移植实验

一、实验目的和任务

掌握将μC/OS-II操作系统移植到ARM9处理器的方法。

了解μC/OS-II操作系统的基本原理和移植条件。

学习移植μC/OS-II操作系统到ARM9处理器,然后编写一个简单的多任务应用程序,实现LED流水灯控制。

二、实验设备

装有ADS 1.2集成开发环境的PC机、MagicARM2410教学实验开发平台

三、实验原理

●μC/OS-II概述

μC/OS-II是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核。μC/OS-II是用ANSI C语言编写,包含一小部分汇编代码,使之可以供不同架构的微处理器使用。μC/OS-II可以管理64个任务,具有信号量、互斥信号量、事件标志组、消息邮箱、消息队列、任务管理、时间管理和内存块管理等系统功能。

●μC/OS-II软件体系结构

如图3.1所示,由图可以看出,μC/OS-II包括以下3个部分:

(1)μC/OS-II核心代码:包括10个C程序文件和1个头文件,主要实现了系统调度、任务管理、内存管理、信号量、消息邮箱和消息队列等系统功能。此部分的代码与处理器无关。

(2)μC/OS-II配置代码:包括2个头文件,用于裁剪和配置μC/OS-II。此部分的代码与用户实际应用相关。

(3)μC/OS-II移植代码:包括1个汇编文件、1个C程序文件和1个头文件,这是移植μC/OS-II所需要的代码。此部分的代码与处理器相关。

●μC/OS-II移植条件

移植μC/OS-II之前需要注意,目标处理器必须满足以下几点要求:

(1)处理器的C编译器能产生可重入型代码;

(2)处理器支持中断,并且能产生定时中断;

(3)用C语言就可以开/关中断;

(4)处理器有将堆栈指针以及其它CPU寄存器的内容读出,并保存到堆栈或内存中去的指令。

S3C2410A微控制器可以满足第2、4和5点要求,使用ADS 1.2的C编译器可以满足第1、3点要求。

●μC/OS-II移植步骤:

(1)OS_CPU.H的移植

在OS_CPU.H文件中定义与处理器相关(实际上是与编译器相关)的数据类型,如BOOLEAN、INT8U、INT8S等等。

在OS_CPU.H文件中定义与处理器相关的宏,主要是进入临界区的OS_ENTER_CRITICAL和退出临界区的OS_EXIT_CRITICAL,所以还要编写相应的软件中断处理代码(可以在OS_CPU_C.C文件中编写)实现开/关中断。同样定义OS_TASK_SW()为软件中断函数,并编写有相应的软件中断处理代码(调用OSIntCtxSw函数)实现任务切换。

(2)OS_CPU_C.C的移植

在OS_CPU_C.C文件中,需要编写以下10个简单的C函数:

OSTaskStkInit();OSTaskCreateHook();OSTaskDelHook();OSTaskSwHook();OSTaskIdleHook(); OSTaskStatHook(); OSTaskTickHook();OSInitHookBegin();OSInitHookEnd();OSTCBInitHook()。

其中,9个系统Hook函数可以为空函数,也可以根据用户自己的需要编写相应的操作代码。任务栈结构初始化函数OSTaskStkInit,必须根据移植时统一定义的任务堆栈结构进行初始化。

(3)OS_CPU_A.S的移植

由于ADS1.2编译器默认汇编文件后缀名为“S”,所以移植代码OS_CPU_A.ASM改名为OS_CPU_A.S。

在OS_CPU_A.S文件中,需要编写以下4个简单的汇编语言函数:OSStartHighRdy(); OSCtxSw();OSIntCtxSw(); OSTickISR()。

其中,函数OSCtxSw不是必须的,但必须要定义好函数OS_TASK_SW(在OS_CPU.H中声明),以实现任务级任务切换。

(3)OS_CPU_A.S的移植

在ISR中切换任务时会调用OSIntCtxSw函数。

启动μC/OS-II是通过调用OSStart()实现,OSStart()最终调用函数OSStartHighRdy()运行多任务启动前优先级最高的任务。

函数OSTickISR为系统时钟节拍中断函数,这需要使用到处理器的定时器和定时中断。为了达到集中地初始化硬件(定时器、中断和I/O等)的目的,此函数可以在用户工程的起动代码文件中实现。

四、实验步骤

(1)为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。(2)连接EasyJTAG-H仿真器和MagicARM2410实验箱,然后安装EasyJTAG-H 仿真器(若已经安装过,此步省略),短接蜂鸣器跳线JP9。

(3)启动ADS 1.2,使用ARM Executable Image for DeviceARM2410(uCOSII)工程模板建立一个工程Demo_uCOSII。(本范例在ADS文件夹中操作)

(4)在ADS文件夹中新建arm、Arm_Pc、SOURCE文件夹。将μC/OS 2.52源代码添加到SOURCE文件夹,将移植代码添加到arm文件夹,将移植的PC服务代码添加到Arm_Pc文件夹。(移植代码、μC/OS 2.52源代码可以从实验附件获得)

(5)在src组中的main.c中编写主程序代码。

(6)根据程序设计来更改Os_cfg.h文件,配置μC/OS-II操作系统。(对于本实验,μC/OS-II的配置使用模板默认设置即可)

(7)选用DebugRel生成目标,然后编译链接工程。

(8)将MagicARM2410实验箱上的蜂鸣器跳线JP9短接,将启动方式选择跳线JP8短接,然后按RST键复位系统。

(9)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。

(10)全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。

(11)单击Context Variable图标按钮(或者选择【Processor Views】->【Variables】)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。

(12)可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器及LED1~LED4的控制是否正确。

五、实验结果与分析

1.移植μC/OS-II需要编写哪些函数?

2.移植μC/OS-II需要哪些条件?

实验四、步进电机控制实验

一、实验目的和任务

了解步进电机的控制原理,掌握电机转动控制和调速方法。

通过4个GPIO输出有序的矩形脉冲,控制ULN2003驱动四相步进电机实现正转,调速的功能;控制的方法采用双四拍(AB―BC―CD―DA―AB);

二、实验设备

装有ADS 1.2集成开发环境的PC机、MagicARM2410教学实验开发平台三、实验原理

步进电机是一种将电脉转换为角位移的数据控制电机,即给它一个脉冲信号,它就按设定的方向转动一个固定的角度。用户可以通过控制脉冲的个数来控制角位移量,从而实现准确的定位操作;另外,通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。当然,对于步进电机各相绕组(即内部线圈)的控制脉冲要有一定的顺序,否则电机无法正常旋转;

MagicARM2410实验箱上的步进电机为四相步进电机,电机步距角为18度。S3C2410A的GPIO驱动能力有限,必须通过ULN2003 达林顿集成驱动芯片驱动步进电机,在步进电机和驱动电路之间连接了电阻,防止控制紊乱造成电机的损坏;

四、实验步骤

(1) 启动ADS 1.2,使用ARM Executable Image for DeviceARM2410工程模板建立一个工程StepMoto。

(2) 在工程src组中的main.c中编写实验代码。

(3) 选用DebugRel生成目标,然后编译链接工程。

(4) 将MagicARM2410实验箱上的步进电机控制电路的电源跳线JP5短接,将步进电机控制口跳线JP6短接。

(5) 选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。

(6) 全速运行程序,观察步进电机转动方向及速度。

(7) 改变控制步序延时参数,观察步进电机转动的速度。

程序清单:main.c

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

--------------File Info------------------------------------------------------------------------------- ** File Name: main.c

** Description: MagicARM2410实验箱的基础实验---步进电机控制实验。

** 使用GPIO控制步进电机转动,采用双四拍控制方式。

**----------------------------------------------------------------------------------------------------

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

#include "config.h"

// 步进电机控制口线及操作宏函数定义

#define MOTOA (1<<5) /* GPC5 */

#define MOTOB (1<<6) /* GPC6 */

#define MOTOC (1<<7) /* GPC7 */

#define MOTOD (1<<0) /* GPC0 */

#define GPIOSET(PIN) rGPCDAT = rGPCDAT | PIN /* 设置PIN输出1,PIN为MOTOA--MOTOD */

#define GPIOCLR(PIN) rGPCDAT = rGPCDAT & (~PIN) /* 设置PIN 输出0,PIN为MOTOA--MOTOD */

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

** Function name: DelayNS

** Descriptions: 长软件延时。

** 延时时间与系统时钟有关。

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

** Output: 无

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

void DelayNS(uint32 dly)

{

uint32 i;

for(; dly>0; dly--)

for(i=0; i<50000; i++);

}

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

** Function name: MOTO_Mode2()

** Descriptions: 步进电机双四拍程序。

** 时序控制为AB--BC--CD--DA--AB,共控制运转4圈(电机步距角为18度)。

** Input: dly 每一步的延时控制。值越大,延时越久

** Output: 无

*********************************************************************

void MOTO_Mode2(uint8 dly)

{

uint32 i;

for(i=0; i<20; i++)

{

// AB相有效

GPIOSET(MOTOA);

GPIOSET(MOTOB);

DelayNS(dly);

GPIOCLR(MOTOA);

GPIOCLR(MOTOB);

// BC相有效

GPIOSET(MOTOB);

GPIOSET(MOTOC);

DelayNS(dly);

GPIOCLR(MOTOB);

GPIOCLR(MOTOC);

// CD相有效

GPIOSET(MOTOC);

GPIOSET(MOTOD);

DelayNS(dly);

GPIOCLR(MOTOC);

GPIOCLR(MOTOD);

// DA相有效

GPIOSET(MOTOD);

GPIOSET(MOTOA);

DelayNS(dly);

GPIOCLR(MOTOD);

GPIOCLR(MOTOA);

}

}

/******************************************************************** ** Function name: main

** Descriptions: 使用GPIO控制步进电机转动,采用双四拍控制方式。

** Input: 无

** Output: 系统返回值0

int main(void)

{

// 步进电机控制口设置

rGPCCON = (rGPCCON & (~0x0000FC03)) | (0x00005401); // GPC0、GPC5--7口设置为输出

rGPCUP = rGPCUP | 0x00E1; // 禁止GPC0、GPC5--7口的上拉电阻rGPCDAT = rGPCDAT & (~0x00E1); // 设置GPC0、GPC5--7口输出低电平while(1)

{

MOTO_Mode2(1); // 控制步进电机正转

DelayNS(50); // 停止步进电机,延时

}

return(0);

}

/******* End Of File *******/

五、实验结果与分析

1.GPIO是指什么?为什么要通过GPIO控制步进电机?

2.步进电机是如何实现调速的?

基于STM32F103嵌入式实验指导书

实验一、STM32的开发环境与简单工程 一、实验目的 1、熟悉STM32开发板的开发环境; 2、熟悉MDK创建和配置STM32工程项目的基本流程; 3、熟悉STM32官方库的应用; 4、规范编程格式。 二、实验内容 本次实验配置MDK集成开发环境,新建一个简单的工程文件,添加STM32官方库并配置工程,编译运行这个工程文件。下载已经编译好的文件到开发板中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。 三、预备知识 基本单片机硬件知识、单片机软件编程语言、程序创建和调试的基本方法。 四、实验设备及工具 硬件:STM32开发平台 软件:STM32官方库;PC机操作系统Windows 98、Windows 2000或Windows XP;KEIL MDK 集成开发环境;串口转usb驱动。 五、实验步骤 1、在准备存放工程文件的目录下创建一新文件夹,命名为Proj_GPIO;在Proj_GPIO 文件夹里面分别再创建四个文件夹:CMSIS、USER、LIB、OBJ。如图1。 其中CMSIS(Cortex Microcontroller Software Interface Standard)用于存放Cortex-M 处理器系列的与供应商无关的软件抽象层和启动相关的代码文件; USER用于存放我们自己编写的代码文件(含自己移植的底层驱动),还有MDK工程; LIB存放所有的官方底层驱动库文件; OBJ用于工程输出的过程文件和最终的二进制文件。 图1

2、将官方库STM32F10x_StdPeriph_Lib_V3.5.0.rar解压。 1)把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的所有文件和STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下的所有文件都到第一步所创建的CMSIS文件夹中; 2)把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver目录下的文件(目录inc和scr)复制到第一步创建的LIB文件夹中; 3)把STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目录下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件复制到USER文件夹中。 3、打开MDK软件,新建一个工程Proj_GPIO保存到Proj_GPIO/USER中。CPU选择STM32F103ZE,如图2; 图2 4、新建一个空文档main.c保存到USER中,然后根 据绝对路径将文件对应添加到工程中,如右图。 5、配置工程属性,右键点击工程文件中的Target 1选择Options for Target ‘Target 1’打开工程选项对话框。做如下修改: 1)Output选项勾选Create HEX File,然后点击Select Folder for Objects按钮定位输出文件保存目录到工程的OBJ文件; 2)Listing选项,同样点击Select Folder for Listings定位输出文件保存目录到工程的OBJ 文件; 3)C/C++选项,Define中填入 STM32F10X_HD, USE_STDPERIPH_DRIVER系统的两个基 本宏定义;配置Include Paths属性,加入工 程中包含头文件的目录;如右图

嵌入式系统综合实验一

嵌入式系统综合实验一

学号: 装 订 线 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一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 温度整

嵌入式ADS实验指导书

实验一嵌入式微处理器系统的开发环境 一、实验环境 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)ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2)ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库; 3)Empty Project:用于创建一个不包含任何库或源文件的工程; 4)Makefile Importer Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件; 5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件; 6)Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。(4)选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。 图1-3 新建test1.s (5) 选择【Edit】->【Perferences…】,在Font选项设置字体是Fixedsys,Script是CHINESE_GB2312。 图1-4 设置字体 (6) 选择【Edit】->【DebugRel Settings…】,在DebugRel Settings对话框的左边选择ARM Linker项,设置地址。 点击“DebugRel Settings…”图标按钮,即可进行工程的地址设置、输出文件设置、编

嵌入式系统技术实验指导

《嵌入式系统技术》 实验指导 桂林电子科技大学 电子工程与自动化学院

2013.10 实验一 KEIL MDK 编程环境及实验箱使用入门 一、实验目的: 1、掌握MDK建立工程、设置工程的方法; 2、掌握MDK编译工程、链接工程的方法; 3、掌握MDK仿真调试的方法; 二、实验内容: 1、参考本次实验的实验步骤,完成本次实验,以及实验步骤中的几个思考题 2、参考教材66页有关MDK工具的配置回答以下几个问题 (1)MDK提供的两种调试模式 (2)如何在工程中打开存储单元观察窗口 (3)如何在工程中设置断点 三、实验原理: Keil公司开发的ARM开发工具 MDK(Microcontroller Development Kit),是用来开发基于ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK包含了工业标准的Keil C编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM 的设备,能帮助工程师按照计划完成项目。本次实验主要熟悉软件的使用过程以及编译代码的下载过程。 四、实验步骤: (1)启动MDK; (2)建立项目; (3)设置工程 (4)建立文件并将文件添加到过程; (5)输入代码; (6)编译连接;

(7)下载代码在线调试。 五、实验要求 1. 总结软件使用过程; 1.总结CORTEXM3处理器的开发流程和调试方法; 实验二数字I/O实验 1、实验目的 1、了解通用I/O接口的接口和性能; 2、了解复用功能和重映射; 3、掌握通用I/O接口的程序设计方法。 2、实验原理 CORTEX 处理器的一个GPIO引脚包含以下几个寄存器: ①两个32位的配置寄存器(GPIOx_CRL,GPIOx_CRH) ②两个32位的数据寄存器(GPIOx_IDR,GPIOx_ODR) ③一个16位的复位寄存器(GPIOx_BRR) ④一个32位的置位/复位寄存器(GPIOx_BSRR) ⑤一个32位的锁定寄存器(GPIOx_LCKR)。 所有寄存器不允许按照半字节或字节访问,必须按32位字访问。1.1.2每一个GPIO引脚都可以在程序中配置成如下几种模式:输入悬空,输入上拉,输入下拉,模拟输入,开漏输出,推挽式输出,,推挽式复用功能,开漏复用功能。

嵌入式微控制器技术实验任务书(附程序和仿真图)

“嵌入式微控制器技术”实验任务书(电气、自动化) 一、实验目的与要求: 1、熟练掌握基于SST89E554RC微控制器的Keil C51集成开发工具的操 作及调试程序的方法(包括:仿真调试与脱机运行间的切换方法);掌握 其他相关微控制器集成开发工具的使用及调试方法; 2、熟练掌握基于SST89E554RC单片机核心板及I/O扩展实验系统的电 路结构原理、设计与应用;掌握其他相关微控制器最小系统设计与应用; 3、熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下的基于51 单片机控制器数字接口电路的硬件、软件设计方法与功能调试; 4、完成本实验课程所要求的全部实验容,并写出实验报告。 二、微机原理与接口技术综合实验室资源简介 实验室为以下实验活动提供条件: 1、基于唐都实验系统的微机原理与接口技术实验(包括汇编语言、C 语言/C++语言软件编程实验和16位/32位微机接口电路应用实验); 2、基于SST89E554RC微控制器技术软/硬件实验(提供支持汇编语言、 C语言编程的Keil C51集成开发工具、最小核心板+唐都实验系统箱); 3、基于DSP2407、DSP2812、DSP28335微控制器技术软件/硬件实验(提 供支持C语言编程的TI公司的CCS集成开发工具、DSP系列学习开发板、直流电机、步进电机、液晶); 4、基于Freescale的16位MC9S12XS128微控制器技术应用实验(提 供支持C语言编程的CodeWarrier 5.0 For S12集成开发工具、 HF-MC9S12XS128EVB-A 核心板); 5、基于ARM的16/32位ARM7LPC2103TDMI-S微控制器技术基础实验(提供 支持C、C++语言编程的ARM公司推出的ARM微控制器ADS 1.2集成开发工具、EasyARM2103开发板); 6、基于ARM Cortex?-M3先进核的LM3S1138微控制器技术基础实验(提

嵌入式系统实验报告

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

实验名称: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所示:

嵌入式系统实验指导书

《嵌入式系统原理》实验指导书 目录 《嵌入式系统原理》实验指导书 (1) 目录 (1) 实验报告要求: ....................................................................................... 错误!未定义书签。 实验一Linux的初步使用 (2) 实验二linux驱动程序 (5) 实验三交叉编译程序 (11) 实验四编译内核与下载 (15)

实验一Linux的初步使用 实验目的: 熟练掌握linux命令的使用,linux程序的编译与调试 实验学时: 3学时 实验内容: 1.掌握虚拟机VMWARE的基本应用; 2. 掌握虚拟机中RED hat linux 的安装; 3. 掌握基本linux命令的使用; 4. 掌握linux程序编译与调试。 实验设备: 装有VMWARE的PC机一台,RED HAT安装光盘(或ISO映像文件)。 实验步骤: 1.创建一虚拟机MYLINUX 1)从桌面上单击“VMWARE WORKSTAION”启动虚拟机软件,单击新建虚拟 机,指定保存路径“D:\MYLINUX”,选择虚拟机操作系统类型:linux,然后 完成虚拟机的创建; 2)双击虚拟机中CDROM,选择将虚拟机光驱连接修改为:使用ISO映像,并指 定映像文件为共享磁盘:I:\redhat-disk-1.iso。 3)单击虚拟机中启动虚拟机,开始从光盘上启动系统并安装linux。 2.安装linux 注意: 在虚拟机和主机之间进行切换方法:鼠标单击虚拟机,可以进入;要回到主机,请用CTRL+ALT 1)输入回车,进入图形化安装;也可以linux text进入文本界面安装; 2)选择Skip(跳过CD检查),回车 3)点击NEXT(下一步) 4)安装语言,选择简体中文;或选择English 5)安装类型,选择定制:Custom 6)分区选择:自动分区

嵌入式系统综合实验一

实验名称: 姓名: 学号: 装 订 线 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。

《嵌入式系统开发实训》实训指导书V1.0

《嵌入式系统开发实训》指导书 一、实训的目的和作用 实训是培养和锻炼学生在学习完《嵌入式系统开发》后综合应用所学理论知识解决实际工程设计和应用问题的能力、进行工程实训的重要教学环节,它具有动手、动脑,理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。 《嵌入式系统开发》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的实训,使学生学会系统地综合运用所学的技术理论知识,提高学生在嵌入式应用方面的开发与设计本领,系统的掌握嵌入式系统设计方法。 本实训是配合课堂教学的一个重要的实践教学环节,不仅要培养学生的实际动手能力,检验学生对本课程学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。 通过本实训使学生深入了解嵌入式系统开发的步骤与方法,掌握嵌入式系统的软硬件协同开发要点及使用方法。掌握能够根据实际问题综合应用嵌入式软件、硬件的基本技能,编写相应的程序。巩固和强化理论教学内容,综合课程教学中的实验环节,培养和锻炼学生的工程实践能力,具备嵌入式系统软硬件协同开发应用程序的能力。 二、实训主要内容与要求 要求每个学生(或小组)都要自己动手独立设计完成一个典型的嵌入式应用小系统。设计题目可以在给出的参考题目中选,也可以自己选设计题目,但难度不应小于参考题目,需经指导教师审查后方可确定是否采纳或修改设计题目。 一般以1~2人为一个小组,分工协作,可以进行充分的讨论和互助。完成所选课题的硬件和软件的设计与调试。独立解决设计和调试过程中遇到的基本问题。总结整个实践过程,写出实训报告(包括方案选择比较、总体思路、理论分析、系统设计,软件流程图,加注释的源程序,调试过程中遇到的问题及解决办法,总结与体会,参考文献)。 实训是在教师指导下,各组可以集体讨论,但实训报告由学生独立完成,不得互相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师查资料、给数据、定答案。同组同学要发扬团队协作精神,积极主动的提出问题、解决问题、讨论问题,互相帮助和启发。 实训报告每个学生一份,由课代表收齐后统一交给指导教师。实训成绩评定由3部分组成:验收答辩情况30%,实训作品质量40%,实训报告书30%。

嵌入式实验指导书 (修改6)20161025

嵌入式系统技术及应用 实验指导书 (第3版) 郑普亮编写 西安建筑科技大学信控学院 智能建筑与楼宇自动化实验室 2014年5月

目录 1课程简介、实验项目及学时安排 (1) 1.1课程简介 (1) 1.2实验项目及学时安排 (1) 2实验仪器仪表设备简介 (2) 2.1嵌入式系统实验箱 (2) 2.2其它实验设备 (2) 3嵌入式系统技术及应用课程实验 (3) 3.1实验1系统认识实验 (3) 3.2实验2定时器实验 (10) 3.3实验3PWM发生器实验 (14) 3.4实验416*16LED点阵显示汉字实验 (16)

1课程简介、实验项目及学时安排 1.1课程简介 嵌入式系统广泛应用于仪器仪表、工业控制、汽车电子等多个领域,是一个综合性的快速发展的技术方向。课程以ARM Cortex-M3系列处理器为主,着重介绍了嵌入式系统设计的基本概念、基于ARM处理器的体系结构、ARM微处理器的编程模型与指令系统、嵌入式操作系统及相关的接口技术。 通过对本课程的学习,能够使学生深刻了解ARM处理器的工作原理,熟练掌握ARM 微处理器的指令系统,以及嵌入式系统软硬件设计基本方法,进而加强学生独立设计能力和创新能力的培养。 1.2实验项目及学时安排 本课程的实验目的是使学生掌握ARM指令系统及基于C语言和驱动程序库的程序设计方法,掌握ARM微处理器各组成部分工作原理及应用,培养学生对ARM微处理器的应用程序与硬件电路的设计能力,提高学生分析和解决实际问题的能力,从而为学生今后走向工作岗位、从事相关专业领域的科学研究和技术开发打下扎实的基础。所以安排了验证性、设计性和综合性不同属性的实验项目。 序号实验项目学时 实验性质 验证综合设计 1系统认识实验2√ 2定时器实验2√ 3PWM发生器实验2√416*16LED点阵显示汉字实验2√ 注:实验项目根据实验教学安排选取。

嵌入式系统实验实验报告

嵌入式系统实验实验报告 一、实验目的 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);

嵌入式系统实验指导指导书完整版

嵌入式系统实验指导王艳春英一劲松

实验一嵌入式微处理器系统的开发环境 一、实验环境 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)ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2)ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库; 3)Empty Project:用于创建一个不包含任何库或源文件的工程; 4)Makefile Importer Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件; 5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件; 6)Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。(4)选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。 图1-3 新建test1.s (5) 选择【Edit】->【Perferences…】,在Font选项设置字体是Fixedsys,Script是CHINESE_GB2312。 图1-4 设置字体 (6) 选择【Edit】->【DebugRel Settings…】,在DebugRel Settings对话框的左边选择ARM Linker项,设置地址。 点击“DebugRel Settings…”图标按钮,即可进行工程的地址设置、输出文件设置、编

嵌入式系统与应用实验指导08

《嵌入式系统原理及应用》 实验指导书 适用专业:电气、测控等 课程代码: 8413841 总学时: 48 总学分: 3 编写单位:电气信息学院 编写人:王平 审核人: 审批人: 批准时间:年月日

目录 实验一ADS 1.2集成开发环境练习 (3) 实验二汇编调用实验与Bootloader下载 (11) 实验三、μC/OS-II移植实验 (14) 实验四、步进电机控制实验 (17)

实验一ADS 1.2集成开发环境练习 一、实验目的和任务 了解ADS 1.2集成开发环境的使用方法。 建立一个新的工程;建立一个汇编源文件,并添加到工程中;设置文本编辑器支持中文;设置编译链接控制选项;编译链接工程;调试工程。 二、实验设备 装有ADS 1.2集成开发环境的PC机 三、实验步骤 1.ADS环境练习。 (1) 在D:\新建一个目录,目录名为experiment。 (2) 启动ADS1.2 IDE集成开发环境,选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。 (3) 选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。

(4) 选择【Edit】->【Perferences…】,在Font选项设置字体是Fixedsys,Script 是CHINESE_GB2312。 (5) 选择【Edit】->【DebugRel Settings…】,在DebugRel Settings对话框的左边选择ARM Linker项,设置链接地址。

嵌入式linux实验指导书

嵌入式linux实验指导书 实验一:arm裸机实验 实验条件: pc ADS开发环境FL2440开发套件SecureCRT串口超级终端 实验目的: 熟悉arm裸机开发基本步骤,掌握ADS集成开发环境的使用,能够编写简单的裸机程序并下载到开发板运行测试。 实验原理: ADS 全称为ARM Developer Suite ,是ARM 公司推出的新一代ARM 集成开发工具。ADS 由命令行开发工具、ARM 实时库、GUI 开发环境(Code Warrior 和AXD) 、实用程序和支持软件组成。有了这些部件,用户就可以为ARM 系列的RISC 处理器编写和调试自己开发的应用程序了。本次实验利用ADS集成开发环境建立基于arm9 S3C2440的实验工程,完成工程搭建、代码编写和编译,生成可执行文件并下载到开发板进行运行测试。 实验步骤: 1、首先打开ADS软件CodeWarrior,点击File 菜单下的New 来创建新工程。Project 对话框中选择ARM Executable Image 。在Project name 中输入工程名,例:2440_led,点击“Location:”文本框的“Set...”按钮,选择要将工程保存的路径,然后点击确定即可建立一个新的工程。工程建立之后会出现一个24 40_led.mcp 窗口。 2、创建源文件,点击File 菜单下的New,选择标签页File,在File name 中输入要建立的文件名,如:Init.s (.s 文件为arm 中的汇编文件),若此时选上了Add to Project,创建的文件会自动添加到工程中,选择target方式为DebugRel,点击确定关闭窗口,文件创建完成后编写代码。(可将arm_linux文件夹下的裸机例程代码复制到工程中进行修改,如:复制裸机程序中的led程序init.s led.c 到建立的工程文件目录中,点击Project 菜单下的Add Fils 将源文件添加到工程中)

嵌入式应用开发实验指导书 (1)

实验一基本接口实验(一) [实验设备] 1.JXARM9-2410教学实验箱 2.ADT1000仿真器和ADT IDE集成开发环境 3.串口、并口连接线 [实验目的] 1.掌握ARM的串行口工作原理,编程实现ARM的UART通讯; 2.掌握嵌入式系统中断的处理流程和ARM中断编程; 3.在ADT环境下如何建立工程,对工程进行正确的设置。添加相应文件(汇编、脚本、.c 源文件等) [实验内容一] 实现查询方式串口的收发功能。接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端。 [预备知识] 1.了解ADT集成开发环境的基本功能 2.学习串口通讯的基本知识 3. 熟悉S3C2410串口有关的寄存器 [基础知识] 串行通信接口电路组成 1.可编程的串行接口芯片 2.波特率发生器 3.EIA与TTL电平转换器 4.地址译码电路 通信协议: 1.异步协议 2.同步协议 异步串行通讯 异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。 数据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对线即可进行。 接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。 在微型计算机中大量使用异步串行I/O 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。 异步串行通信中的字符传送格式

开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“0” 作为起始位,然后出现在通信线上的是字符的二进制编码数据。 每个字符的数据位长可以约定为5位、6位、7位或8位,一般采用ASCII编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。 最后是表示停止位的“1”信号,这个停止位可以约定持续1 位、1.5 位或2 位的时间宽度。 至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。 每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为110,150,300,600,1200,2400,4800,9600 等。 DB-25 DB-9引脚定义 DB-25 DB-9引脚说明

嵌入式linux实验指导书

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

嵌入式系统实验报告

嵌入式系统实验报告文件排版存档编号:[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 <>

《嵌入式系统》实验报告指导书(含答案)

实验一熟悉嵌入式LINUX开发环境 1、实验目的 熟悉UP-TECHPXA270-S的开发环境。学会WINDOWS环境与嵌入式Linu环境共享资源的基本方法。 2、实验内容 学习UP-TECHPXA270-S系统的使用、XP和虚拟机之间传送文件方法以及UP-TECHPXA270-S和虚拟机之间共享目录的建立方法。 3、预备知识 了解UP-TECHPXA270-S的基本结构和配置,Linux基本知识。 4、实验设备 硬件:UP-TECHPXA270-S开发板、PC机(内存500M以上)。 软件:PC机操作系统RADHAND LINUX 9+MIMICOM+RAM LINUX操作系统 5、实验步骤 (1)、在虚拟机下练习Linux常用命令。(注意以下操作只能在[root@BC root]#,也就是root文件夹下运行,不然会导致系统不能启动) a. 学习命令通过“man ***”和“*** --help”得到的命令使用方法。 b.学习并掌握如下命令: ls,cd ,pwd,cat,more,less,mkdir, rmdir ,rm,mv,cp,tar,ifconfig (2)、XP与虚拟机之间传送文件(Samba服务器建立、网络设置、文件传送);(3)、了解系统资源和连线; (4)、开发板与虚拟机之间共享目录建立(设置NFS、开发板IP设置、目录挂载),挂载文件; (5)vi(vim)的使用 (6)输入qt,启动桌面,按CTRL+C退出 6、实验报告要求 (1)、XP和虚拟机之间传送文件步骤; 虚拟机共享XP文件: 选择虚拟机设置,设置要共享的文件 启动Linux 进入/mnt/hgfs即可看到共享文件夹 服务器设置——samba服务器(设置需要共享的目录) XP共享虚拟机文件: 服务器设置——samba服务器(设置需要共享的目录)

嵌入式设计与开发实验指导书

嵌入式设计与开发 实 验 指 导 书 内蒙古工业大学信息学院计算机系 2016年3月

目录 实验一、嵌入式Linux开发入门 (3) 实验二文件及进程控制编程 (5) 实验三进程间通信程序设计 (7) 实验四网络通信程序设计 (8)

实验一、嵌入式Linux开发入门 一、实验目的 1、掌握GCC编译器的使用 2、掌握如何通过gdb调试应用程序 3、掌握makefile文件的编写 4、掌握交叉编译工具的使用 二、实验内容 1、熟悉虚拟机linux开发工具的使用 2、使用gcc编译程序,gdb调试程序、编写makefile文件 3、通过nfs方式挂载实验箱,通过交叉编译工具编译基于ARM架构的程序,下载到实验箱并执行程序,分析程序执行结果。 三、实验要求: 1、编写一个C源程序,使用gcc进行编译,并分别使用-c、-g、-O、-O2等编译选项;使用gdb进行调试,调试中使用常用的gdb命令;记录调试过程,在实验报告中描述。 2、实现一个应用程序,该程序由两个或两个以上的C源文件构成,编写makefile文件,通过make工具完成该程序

的编译。 3、通过nfs挂载实验箱,将前面的程序通过arm_linux_gcc 进行编译,下载到实验箱执行,分析结果。

实验二文件及进程控制编程 一、实验目的 1、掌握采用系统调用的方式进行文件操作 2、掌握进程控制相关的调用:fork( )、exec( )、wait( )等。 二、实验内容 1、编写程序实现who命令的功能 2、进程控制程序设计 三、实验要求 1、编写程序实现who命令的功能。在终端里运行who命令,查看结果,分析其实现原理,然后用文件操作实现其功能。(提示:who是读取/var/run/utmp文件来得到输出信息的,utmp是二进制文件,里面保存的是结构体数组,这些数组是struct utmp结构体。) 2、编程使用fork( )、vfork( )创建子进程,分别在父进程、子进程中显示出进程的PID,父进程打印字符串”**********”,然后sleep一定的时间,子进程打印字符串”##########”,然后sleep一定时间。多次执行程序,分析fork的特点。

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