文档库 最新最全的文档下载
当前位置:文档库 › 嵌入式实验思考题

嵌入式实验思考题

嵌入式实验思考题
嵌入式实验思考题

思考题

1、如何强行重新编译ADS1.2工程的所有文件?

答:Project -> Remove Object Code... 删除工程中的*.obj文件

2、LDR伪指令与LDR加载指令的功能和应用有何区别,举例说明?

答:LDR加载指令用于从内存中读取数据到寄存器中,例如:

LDR r1,[r3]

LDR伪指令用于加载32位的立即数或一个地址值到指定的寄存器中,例如:

LDR r0,#0xff123456

3、在AXD调试时如何复位程序?

答:File -> Reload Current Image 重新加载映象文件

4、指令MOV R0,#0x12345678是否正确?为什么?如何解决?

答:不正确。因为ARM是RISC结构,数据从内存到CPU之间的移动只能通过LDR/STR指令完成,而

MOV只能在寄存器之间移动数据,不能干这个活,因此正确的写法是: LDR r0,#0X12345678 另外,还可以用LDR伪指令,后面跟一个“=”,LDR r0,=0x12345678,LDR伪指令和MOV是比较相似的,

只不过MOV命令限制了立即数的长度为8为,也就是不要超过512,而LDR没有限制。如果LDR后面的立

即数没有超过8位,那么计算机在处理的过程中,该LDR伪指令会被转化成MOV来执行的。

5、使用MOV、ADD指令实现:R8=R3=X+Y且X与Y是8位图数据

答:x equ 1

y equ 2

mov r0,#x

mov r1,#y

add r3,r0,r1

mov r8,r3

6、使用MOV、MVN、SUB指令实现:R5=0x5FFFFFF8 - R8 * 8(乘法除法用移位解决)

答:MVN R0,#0xA0000007

;MOV R8,#0x1

SUB R5,R0,R8,LSL #3

7、使用CMP指令判断(5*Y/2)>(2*X)吗?若大于则R5=R5&0xFFFF0000,否则R5=R5|0x000000FF

答:X EQU 1 //顶格写 5*Y-->ADD R2,R1,R1,LSL #2 //R1=Y,Y+4Y=5Y

Y EQU 2

START

MOV R1,#Y

MOV R2,#X

ADD R3,R1,R1,LSL #2

MOV R4,R3,LSR #1

MOV R6,R2,LSL #1

CMP R4,R6

LDR R7,=0xFFFF0000

ANDGT R5,R5,R7

ORRLE R5,R5,0x000000FF

8、如何实现64位加法运算(R6、R5)=(R6、R5)+(R3、R2)

答: ADDS R5,R5,R2

ADC R6,R6,R3

9、如何使用ARM汇编指令实现结构化程序编程_1

if(x > y)z = 100;

else z = 50;

答:

X EQU 1

Y EQU 2

Z EQU 0

MOV R0,#X

MOV R1,#Y

MOV R2,#Z

CMP R0,R1

MOVGT R2,#100

MOV R2,#50

10、如何使用ARM汇编指令实现结构化程序编程_2 for(i = 0; i < 10; i++)

{

x++;

}

//i、x均为无符号整数

答:

x equ 0

i equ 0

area test,code,readonly

entry

start

mov r1,#x

mov r0,#i ;控制循环

loop cmp r0,#10

addcc r1,r1,#1

addcc r0,r0,#1

bcc loop

b .

end

11、如何使用ARM汇编指令实现结构化程序编程_3 while(x <= y)

{

x *= 2;

}

//x、y均为无符号整数

答:

x equ 2

y equ 32

area test,code,readonly

entry

start

mov r0,#x

mov r1,#y

loop cmp r0,r1

movle r0,r0,lsl #1

ble loop

b .

end

12、如何使用ARM汇编指令实现结构化程序编程_4

do

{

x--;

}while(x > 0);

//x为无符号整数

13、如何使用ARM汇编指令实现结构化程序编程_5

switch(key & 0x0F)

{

case 0:

case 2:

case 3:

x = key + y;

break;

case 5:

x = key - y;

break;

case 7:

x = key * y

break;

default:

x = 168;

break;

}

//x、y、key均为无符号整数

14、在用户模式或系统模式下读取SPSR寄存器会有何结果?

答:除了用户模式和系统模式,其余模式都有自己的一个私有的SPSR寄存器,用来保存状态切换之前的运行状态,之所以用户模式和系统模式没有SPSR是因为,通常CPU大部分时间执行在用户模式下,当产生异常或系统调用时会分别切换进入另外几种模式,保存用户模式下的状态,当切换回原先模式时,直接回复SPSR的值到CPSR就可以了,因此,用户模式和系统模式下不需要SPSR,所以用户模式和系统模式不

可以直接读取SPSR,可以利用中断,如果强行读取的话,会出现不可预期的结果。

15、在非特权模式下能否对CPSR寄存器设置?能否读取CPSR寄存器的值?

答:因为我们不可以直接修改CPSR的状态标志为,只能通过SPSR来修改CPSR,在异常模式中,程序状态寄存器SPSR可以被访问,此时处于特权模式,因此在非特权模式下,不可以对SPSR进行修改,但可以读取CPSR的值!

16、在非特权模式下如何使能/禁止IRQ或FIQ中断?

答:在中断初始化的时候设置CPSR寄存器I-bit和F-bit位为1,例如:

Msr cpsr_c, #0xdf

17、程序中能不能通过MSR指令直接修改CPSR中的T位来实现ARM状态/Thumb状态的切换?

答:不能通过MSR直接修改CPSR中T位来实现状态的切换,必须使用BX指令完成处理器运行状态的切换,因为BX指令属于切换指令,他会打断流水线的状态,以实现处理器状态的切换。18、使用TST指令测试R5的bit1是否为1,若是则将bit2位清零(使用BIC指令)答:TST指令为位测试指令,而BIC 指令为位清除指令,TST指令相当于“&”,

TST R5,#0X01

BIC R5,#0X10

18、使用TST指令测试R5的bit1是否为1,若是则将bit2位清零(使用BIC指令)

答:TST指令为位测试指令,而BIC指令为位清除指令,TST指令相当于“&”,

TST R5,#0X01

BIC R5,#0X10

19、如何控制蜂鸣器报警速度?

**--------------File Info--------------------------------------------------

** File name: main.c

** Last modified Date: 2011-04-09

** Last Version: 1.0

** Descriptions: The main() function example template

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

** Created by: lxliu

** Created date: 2011-04-09

** Version: 1.0

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

#include "config.h"

#define BEEP 1<<7 //P0.7控制蜂鸣器,低电平蜂鸣

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

** 函数名称:DelayNS()

** 函数功能:长软件延时

** 入口参数:dly延时控制值,值越大,延时越长

** 出口参数:无

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

void DelayNS(uint32 dly)

{

uint32 i;

for(;dly>0;dly--)

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

}

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

** 函数名称:main()

** 函数功能:用P0.7控制BEEP,让蜂鸣器蜂鸣

** 调试说明:需将跳线JP11和BEEP短接

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

int main (void)

{ PINSEL0=0x00000000; //设置P0口为GPIO功能

IO0DIR=BEEP; //设置P0.7为输出

while(1)

{IO0SET=BEEP; //蜂鸣器停止蜂鸣

DelayNS(10); //延时

IO0CLR=BEEP; //蜂鸣器蜂鸣

DelayNS(100); //延时

}

return 0;

}

嵌入式系统基础复习题

一、简答题

1、什么是嵌入式系统?

嵌入到对象体系中的专用计算机应用系统。

2、嵌入式系统的3个基本特点?

嵌入性、专用性、计算机

3、什么是嵌入式处理器,嵌入式处理器可以分为几大类?

嵌入式处理器是为了完成特殊的应用而设计的特殊目的的处理器。

分为嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统(SOC)。

4、广泛使用的三种类型的操作系统?

多道批处理操作系统、分时操作系统以及实时操作系统。

5、常见的4种嵌入式操作系统?

嵌入式Linux、Win CE、VxWorks、μC/OS-II

6、ARM是什么样的公司?

它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC处理器。特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。

7、什么是RISC?什么是CISC?

RISC是精简指令集计算机的缩写。CISC是复杂指令集计算机的缩写。

8、举出2个ARM公司当前应用比较多的ARM处理器核?

ARM7系列、ARM9系列、ARM10系列、ARM11系列、intel的Xscale系列和MPCore系列。

9、ARM7TDMI中的T、D、S、I分别表示什么含义?

T:支持高密度16位的Thumb指令集

D:支持片上调试

S:ARM7TDMI 的可综合(synthesizable)版本(软核)

I:支持EmbededICE观察硬件

M:支持64位乘法

10、ARM7TDMI处理器采用什么样的体系结构,其可寻址地址空间多大?

ARM处理器使用冯.诺依曼结构

使用单个平面的232个8位字节地址空间。地址空间可以看作是包含230个32位字,或231个16位半字。

11、ARM7TDMI处理器采用几级流水线处理,使用何种存储器编址方式?

ARM7TDMI处理器采用三级流水线。

ARM处理器将存储器看做是一个从0开始的线性递增的字节集合。

12、ARM处理器模式和ARM处理器状态有什么区别?

ARM处理器模式指用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。ARM处理器状态指ARM状态和Thumb状态

ARM两种处理器状态下均有上述7种模式。

13、ARM7TDMI内部寄存器特点?

分别为31个通用32位寄存器和6个状态寄存器。它们不能在同一使劲同时被访问,对其的访问取决于处理器状态和处理器模式。

14、ARM7TDMI有几种寻址方式?

寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、相对寻址。

15、ARM7的内部寄存器R13、R14、R15的主要功能和作用?

R13:堆栈指针,用于保存堆栈的出入口处地址、保存待使用寄存器的内容

R14:连接寄存器,当使用BL指令调用子程序时,返回地址将自动存入14中;当发生异常时,将R14对应的异常模式版本设置为异常返回地址;其他时候作为通用寄存器。

R15:程序寄存器,总是指向正在“取指”的指令

16、请说明MOV指令与LDR加载指令的区别和用途?

LDR的操作数既可以来源于寄存器也可以来源于存储器,MOV的操作数能来源于寄存器。。

LDR指令从内存中读取数据放入寄存器,用于对内存变量和数据的访问、查表、程序的跳转、外围部件的控制操作等;MOV指令将8位立即数或寄存器传送到目标寄存器(Rd),可用于移位运算等操作。

17、LPC2000系列器件有几种常见的封装形式和其封装特点?

常见的封装有64脚封装,144脚封装

功耗低,有多个32位定时器,多达9个外部中断,16K字节静态RAM,1/128/256k字节片Flash存储器,128为宽度接口加速器,4路10位ADC或8路10位ADC(64脚和144脚封装),46或76~112个GPIO (64脚和144脚封装)。

18、简要说明一下LPC2000系列器件片内存储器的特点?

片内存储器分为片内Flash和片内静态RAM。片内Flash通过128位宽度的总线与ARM内核相连,具有很高的速度,特有的存储器加速功能,可以将程序直接放在Flash上运行。SRAM支持8位、16位和32位的读写访问。

19、为什么要进行存储器重映射?

存储器重映射是为了实现引导块和异常向量表地址的固定。

重映射引导块,有利于用户调用其中的某些程序,增加代码的可移植性;

异常向量表重映射为了能让ARM内核通过访问0x0000~0x003F地址访问到其他存储区域的向量表。

20、LPC2000系列ARM7微控制器对向量表有什么要求(向量表中的保留字)?

向量表中有一个空隙以确保软件能与不同的ARM结构兼容;表中异常入口地址处放置的是跳转指令,已转向中断子程序。FIQ地址要放在向量表的最后;

21、ARM7微控制器内FLASH是多少位宽度的接口?它是通过哪个功能模块来提高FLASH的访问速度?

FLASH是128位宽度的接口,通过存储器加速模块提高其访问速度。

22、FIQ、IRQ有什么不同?向量IRQ和非向量IRQ有什么不同?

FIQ是快速中断,具有最高优先级,中断处理转入FIQ模式;IRQ是普通中断,优先级低于FIQ,中断处理转入IRQ模式。

向量IRQ支持16个向量IRQ中断,16个优先级,能为每个中断源设置服务程序地址;非向量IRQ 支持一个非向量IRQ中断,所有中断都共用一个相同的服务程序入口地址。

23、LPC2000系列芯片共有几个外接中断输入?它们是FIQ,还是IRQ?

共有4个外接中断输入,它们既可以是IFQ也可以是IRQ。

24、LPC2000系列芯片常用的开发工具?

ADS、IAR、JATG、ISP

25、什么是嵌入式处理器的最小系统?

最小系统是指提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成的系统。

26、嵌入式处理器的最小系统包含那些基本电路?

最小系统包含时钟系统、供电系统、复位及其配置系统、存储器系统(可选)、调试测试系统(可选)。

基本电路包括:末级电源电路、前级电源电路、时钟电路、复位电路、程序存储器(可选)、调试接口电路(可选)。

二、问答题

1、ARM7TDMI支持哪几种指令集,各有什么特点?

支持ARM指令集和Thumb指令集两种。

ARM指令集:指令32位,效率高,代码密度低,所有ARM指令都是可以有条件执行的。

Thumb指令集:指令16位,代码密度较高,Thumb指令仅有一条指令具备条件执行功能。保持ARM的大多数性能上的优势,是ARM指令集的子集。

2、ARM7TDMI有几种处理器模式,简单介绍该几种模式的工作特点?

ARM7TDMI有7种处理器模式。

用户模式:正常程序运行的工作模式,不能直接从用户模式切换到其它模式

系统模式:用于支持操作系统的特权任务等,可以直接切换到其它模式

快中断模式:用于快速中断处理,支持高速数据传输及通道处理,只有在FIQ异常响应时,才进入此模式。

中断模式:用于通用中断处理,只有在IRQ异常响应时,才进入此模式。

管理模式:供操作系统使用的一种保护模式,只有在系统复位和软件中断响应时,才进入此模式。

中止模式:用于虚拟内存和/或存储器保护。

未定义模式:支持软件仿真的硬件协处理器,只有在未定义指令异常响应时,才进入此模式。

3、什么是引导程序?什么是启动程序?两者有什么区别?

引导程序是ARM微处理器在上电或复位后首先运行Boot Block中的一段代码;启动程序是在运行引导程序后,正式运行用户main函数之前,还需要运行一段代码

引导程序由芯片厂商固化在芯片中,功能包括:判断运行哪个存储器上的程序、检查用户代码是否有效、判断芯片是否被加密、芯片的在应用编程(IAP)以及在系统编程功能(ISP)。启动程序由用户添加,功能包括:向量表定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O初始化、外围初始化,地址重映射等操作。

4、简要描述LPC2000系列芯片内部GPIO的功能特点?

(1)可以独立控制每个GPIO口的方向;

(2)可以独立设置每个GPIO的输出状态;

(3)所有GPIO口在复位后默认位输入状态。

5、试说明LPC2000系列芯片的引脚设置寄存器PINSEL0、PINSEL1、PINSEL2的具体功能?

PINSEL0控制引脚P0.0~P0.15的连接状态,每两位控制一个引脚。

PINSEL1控制引脚P0.16~P0.31的连接状态,每两位控制一个引脚。

PINSEL2控制P1端口和P2端口。

6、试说明LPC2000系列芯片的存储器映射的结构特点?(看图回答问题4)

(1)0GB向上为128KB或256KB的片内非易失性存储器;

(2)1GB向上为16KB片内静态RAM;

(3)2GB向下为Boot Block重映射;

(4)3.5GB向上为VPB外设;

(5)4GB向下为AHB外设。

7、试说明LPC2000系列芯片内部向量中断控制器(VIC)的功能特点?(看图回答问题5)

(1)可以管理最多32个中断请求,可将其编程为FIQ、向量IRQ或非向量IRQ;

(2)有16个向量IRQ中断;

(3)16个优先级,可动态分配优先级;

(4)可产生软件中断。

8、试说明LPC2000系列芯片的向量中断和非向量中断的功能特点?

向量中断支持16个向量IRQ 中断;16个优先级;每个优先级指定一个服务程序入口地址。 非向量中断支持1个非向量IRQ 中断; 所有非向量IRQ 的入口地址都相同。 9、 试说明LPC2000系列芯片内部定时器的功能特点?(看图回答问题6)

①各含有一个可编程32位预分频器;

②具有4路捕获通道,当输入信号跳变时可取得定时器的瞬时值,也可选择使捕获事件产生中断。 ③有4个32位匹配寄存器,匹配时动作有3种:定时器继续工作,可选择产生中断;停止定时器,可选择中断;复位定时器,可选择中断

④有4个对应于匹配寄存器的外部输出,匹配时输出有4种:设置为低电平;设置为高电平;翻转;无动作。

10、简要描述LPC2000系列芯片内部定时器的预分频功能,匹配功能,捕获功能? 预分频功能:通过设置某个常量来控制pclk (定时器的时钟源)的分频。 匹配功能:当定时器值等于预设的匹配值时,从引脚输出特定的信号。

捕获功能:如果输入信号满足设定的要求,将触发捕获动作,将定时器的计数值保存到捕获寄存器中。 11、试说明LPC2000系列芯片内部都具有那些外设接口,及其特点? 12、试比较说明JATG 工具和ISP 工具的异同点? 两者都可以将程序下载到开发板上。

JATG 通过计算机的并口和开发板的JATG 口下载程序;ISP 通过计算机的串口和开发板的UART0下载

程序。

13、看门狗定时器控制寄存器(WTCON )

WTCON 的标识位

WTCON Bit 描 述 初 始 值

Prescaler

Value [15:8] 预装比例值,有效范围值为0~255

0x80 Reserved [7:6] 保留

00 Watchdog Timer [5] 使能和禁止看门狗定时器

0=禁止看门狗定时器

1=使能看门狗定时器 0

Clock Select [4:3] 这两位决定时钟分频因素

00:1/16 01:1/32

10:1/64 11:1/128

00

Interrupt

Generation

[2] 中断的禁止和使能

0=禁止中断产生

1=使能中断产生

0 Reserved [1] 保留

0 Reset

Enable/Disable

[0] 禁止很使能看门狗复位信号的输出

1=看门狗复位信号使能

0=看门狗复位信号禁止

1

看门狗定时器数据寄存器(WTDAT )

寄 存 器 地 址 读/写 描 述 初 始 值

WTDAT 0x53000004 读/写 看门狗数据寄存器

0x8000 看门狗计数寄存器(WTCNT )

寄 存 器 地 址 读/写 描 述

初 始 值

寄存器 地 址 读/写 描 述 初 始 值 WTCO

N

0x53000000 读/写 看门狗定控制寄存器

0x8021

WTCNT 0x53000008 读/写看门狗计数器当前值0x8000

#define rWTCON (*(volatile unsigned *)0x53000000) // 第1行

#define rWTDAT (*(volatile unsigned *)0x53000004) // 第2行

#define rWTCNT (*(volatile unsigned *)0x53000008) // 第3行

void watchdog_test(void)

{

rWTCON = ((PCLK/1000000-1)<<8)|(3<<3)|(1<<2); // 第4行

rWTDAT = 7812; // 第5行

rWTCNT = 7812; // 第6行

rWTCON |=(1<<5); // 第7行

}

第1-3 行:定义看门狗控制寄存器、数据寄存器和计数寄存器为rWTCON、rWTDAT和rWTCNT。

第4 行:设置看门狗的预装比例值为1000000,分频因素为1/128,并使能中断。(6分)

第5-6 行:对数据寄存器和计数寄存器赋值为7812。(2分)

第7 行:启动看门狗。(2分)

7、阅读以下S3C2410部分用户手册.求:当PCLK 或 UCLK 为40 MHz时,串口0的波特率为2400 bps ,串口1的波特率为115200bps,相应的控制寄存器如何设置.

UART BAUD RATE DIVISOR REGISTER

There are three UART baud rate divisor registers(寄存器)including UBRDIV0, UBRDIV1 and UBRDIV2 in the UART block(模块). The value stored in the baud rate divisor register (UBRDIVn), is used to determine the serial Tx/Rx clock rate(baud rate) as follows:

UBRDIVn = (int)(PCLK / (bps x 16) ) –1 or UBRDIVn = (int)(UCLK / (bps x 16) ) –1 Where, the divisor should be from 1 to (216-1) and UCLK should be smaller than PCLK. Register Address R/W Description Reset Value

UBRDIV0 0x50000028 R/W Baud rate divisor register 0 –UBRDIV1 0x50004028 R/W Baud rate divisor register 1 –UBRDIV2 0x50008028 R/W Baud rate divisor register 2 –UBRDIVn Bit Description Initial State

UBRDIV [15:0] Baud rate division value UBRDIVn >0 –

答: 根据UBRDIVn = (int)(PCLK / (bps x 16) ) –1

寄存器UBRDIV0= (int)(40000000/2400*16)-1=1040=10000010000(B)

寄存器UBRDIV1=( int)(40000000/115200*16)-1=20=10100(B)

任务控制块(TCB)的数据结构OS-TCB表示任务的状态。当任务的CPU控制权被枪战后,任务控制块用来保存该任务的状态。当任务重新获得CPU的控制权后,任务控制块能够保证任务从被中断的位置继续正确执行。任务控制块提供了任务的基本信息,如任务的执行状态、优先级和堆栈位置等。

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科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个部分。如下图:

嵌入式综合实验报告

《嵌入式系统综合实验》报告 学号: 姓名: 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等待周期访问(读/写)。

嵌入式实验报告

嵌入式实验报告 学院:信息工程学院 专业:计算机科学与技术班级:计算机班 姓名: 学号: 指导老师:

实验目录 实验一嵌入式系统开发环境实验 (2) 实验二系统节拍定时器实验 (12) 实验三 GPIO控制实验 (16) 实验四外部中断实验 (19) 实验五串口通讯实验 (23)

实验一嵌入式系统开发环境实验 【实验目的】 1.熟悉RealView MDK集成开发环境以及使用方法。 2.熟悉嵌入式系统软件设计方法和流程。 【实验内容】 1. 通过例程熟悉、掌握嵌入式系统的编辑、编译、调试、下载及运行过程。 2. 建立自己的工程文件,在开发板板上调试程序。 【实验步骤】 (一)程序安装 1. 建议在安装之前关闭所有的应用程序,双击安装文件,弹出如图对话框,Next 2.默认选择C盘文件下安装。

3.这样就在c盘底下出现keil文件夹。 4.单击选择菜单“File”-->"License Management" 将弹出下面一张图的界面:复制其中CID号,以便在粘贴到下一步中的破解软件。 5.复制CID

6.运行破解软件,将出现下面一张图的界面,把上步复制的CID号粘贴到相应位置,其他选项如图,然后点击“Generate”按钮,然后复制产生的序列号,粘贴到上一步的下面一张图的LIC输入框中,然后点击右侧的Add LIC,即可完成破解。 7.安装文件夹中的jlink驱动。 (二)工程创建、编译 使用Realview MDK创建、完成一个新的工程只需要以下几个环节: →创建工程并选择处理器→选择工具集→创建源文件→配置硬件选项→配置对应启动代码→编译链接→下载→调试。 1.创建工程并选择处理器 选择Project→New Project…,输入创建的新工程的文件名,即可创建一个新的工程。 2.创建一个新工程时,需要为工程选择一款对应处理器,在NXP 列表下选择LPC1768 芯片。然后点击OK。接下来出现的对话框选择“是或者也可以通过单击Project→Select Device for Target…在本次课程中,我们选择

嵌入式学习心得体会5篇

嵌入式学习心得体会5篇 嵌入式学习心得体会(一) 首先我声明,我是基于嵌入式系统平台级设计的,硬件这个方向我相对来讲比较有发言权,如果是其它方面所要具备的基本技能还要和我们培训中心其它专业级讲师沟通。他们的方面上我只能说是知道些,但不是太多,初级的问题也可以问我。 对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的modem 射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15k以上。 另一类就是数字部分了,在大方向上又可分为51/arm的单片机类,dsp类,fpga 类,国内fpga的工程师大多是在ic设计公司从事ip核的前端验证,这部分不搞到门级,前途不太明朗,即使做个ic前端验证工程师,也要搞上几年才能胜任。dsp 硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。 而arm单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互pk,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单的连接,比如pxa255处理器i2c要求速度在100kbps,如果把一个i2c外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接lcd,但为什么这种lcd就不能挂在arm的总线上,还有arm7总线上可以外接个winband的sd卡控制器,但为什么这种控制器接不到arm9或是xscale处理器上,这些都是问题。 因此接口并不是一种简单的连接,要看时序,要看参数。一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 :安磊 班级:计科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个部分。如下图:

嵌入式基本实验

1.实验六(流水灯) (1) #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ void delay(void) { int i,j; for(i=0;i<=1000;i++) for(j=0;j<=1000;j++); } void main(void) { DDRA=0xff;//定义A口输出 PORTA=0x00;//灯全灭 for(;;) { delay(); PORTA=0x55;//高电平灯亮 delay(); PORTA=~PORTA; } } (2)高位到低位逐个点亮 #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ void delay() { unsigned int i,j; for(i=0;i<=100;i++) for(j=0;j<=100;j++); } void main(void) { DDRA=0xFF; PORTA=0x80; for(;;) { delay(); PORTA>>=1;//右移一位 if(PORTA==0x00)//反复循环 PORTA=0x80; }

} 低位到高位逐个点亮 #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ void delay() { unsigned int i,j; for(i=0;i<=100;i++) for(j=0;j<=100;j++); } void main(void) { DDRA=0xFF; PORTA=0x01; for(;;) { delay(); PORTA<<=1;//左移一位 if(PORTA==0x00)//反复循环 PORTA=0x01; } } (3)与按键结合 #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ void main(void) { DDRA=0xff; DDRH=0x00; for(;;) { PORTA=PTH^0x0f;//按下时灯灭,取反后按键灯亮 } } 2.实验七(定时器延迟流水灯) (1) #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */

嵌入式系统实验报告

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

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

嵌入式实验心得体会

嵌入式实验心得体会 嵌入式实验心得体会是计算机专业应该具备的常用知识,以下这篇范文整理个人对嵌入式系统的认识,和进行操作之后的个人体会,对操作的疑难的反思。下面是这篇嵌入式实验心得体会 嵌入式实验心得体会 学期开始,我们开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,等到学期结束开始做嵌入式课程设计时,真是茫然无从下手,自,从拿到设计主题后,我就从像热锅像上的蚂蚁,一个字“急”。最后实在没有办“法,逼着自己去学法 习,查资料,总算对嵌入式有了资浅层理解。浅 嵌入式系统本本身是一个相对模糊的定义义,一个手持的mp3和一个一pc104的微型工业业控制计算机都可以认为是嵌入是式系统。总体来说,嵌入式系统是“用于控,制,监视或者辅制 助操作机器器和设备的装备”。一个典典型的桌面linux系统统包括3个主要的软件层---linux-内核、cc库和应用程序代码。内核核是唯一可以完全控制硬件的层,内核驱动程序代件表应用程表序与硬件之间进行行会话。内核之上是c 库,,负责把posixapii转换为内核可以识别的形形式,然后调用内核,从应应用程序向内核传递参数。应用程序依靠驱动内核。来完成特定的任务。来在了解了基础知识之后,我了开始进行上机操作,当然开,,其中遇到很多的难题,很多东西都是第一次接触很,又没有别,人在旁边指导操作,完全凭借自己去摸操索索练习。其中的困难可想而知。然而坚持就是胜利而,,牙一咬眼一闭坚持做下去去,而通过本次实验,我感觉收获还是蛮多的。可感能我对于嵌入能式的知识学习的还是不太多,但是这习之外的东西收获颇丰。之

嵌入式实验

Part1------安装arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz 1、通过Vmware的共享文件加载压缩文件 arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz ①首先配置Vmware加载文件所在位置。 ②点击下方的Add按钮,添加文件所在文件夹,一路点击,直至完成,如图所示 2.

①进入linux系统,进入到挂载目录下 ●cd /mnt ②查看挂载目录mnt文件夹下所有目录,看是否有hgfs目录 ●ls ③进入到hgfs下查看,看是否有共享的的D盘 ●cd hgfs ④查看hgfs下文件夹的下的目录 ●Ls /*******************************************************************/ 进入到hgfs下查看,若能查看到对应目录则表示成功,如查看不到请运行下面命令 输入命令 ●cd /usr/bin ●./vmware-config-tools.pl 先后输入Y和N安装虚拟机工具即可 /****************************************************************************/ ⑤进入到挂载目录下的目标文件位置 (即一直进入到arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz所在的目录) ●cd D/omap3530Linux/tools ⑥查看:ls ⑦然后输入命令:安装 /*********************************************************

嵌入式实验报告心得

嵌入式实验报告心得 篇一:嵌入式系统原理实验总结报告 嵌入式系统原理实验总结报告 车辆座椅控制系统实验 XX/5/23 嵌入式系统原理实验总结报告 一、技术性总结报告 (一)题目:车辆座椅控制系统实验(二)项目概述: 1.为了实现车辆座椅控制的自动化与智能化。 2.方便用户通过智能手机与车载传感器之间的联动。 3.使车辆作为当今物联网中重要的一个节点发挥作用。 4.通过车辆座椅控制系统实验实现对嵌入式系统原理课程的熟练掌握与对嵌入式系统原理知识的深化记忆。 5. 加强本组学生对嵌入式系统原理的更深层次的理解与运用。 (三)技术方案及原理 本次试验分为软件、硬件两个部分。 1.软件部分。 A.智能手机部分,包括通过智能手机对座椅的控制部分、手机所携带的身份信息部分。 本部分软件使用Java编写,其程序部分为:主程序:package ;

import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ;import ; import ; import ; public class MainActivity extends ActionBarActivity { private Button Up = null; private Button Left = null; private Button Dowm = null; private Button Right = null; private Socket socket = null; private static final String HOST = "";private static final int PORT = 10007; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(; initControl();} private void initControl() {

南邮嵌入式系统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)

嵌入式实验

实验一、dip_switch 按键实验 一、实验目的 1.了解DIP_SWITCH 的用处。 2.了解C6748 连接的控制DIP_SWITCH 方法。 3.熟悉CCS 操作,学会使用工程,学习编译和下载、运行程序。 二、实验设备 1.PC 兼容机一台;操作系统为WindowsXP 或者以上版本。 2.ICETEK-C6748-AE 实验箱一台。如无实验箱则配备ICETEK-XDS100v2+仿真器和ICETEK–C6748-A,+5V 电源一只。 3.USB 连接电缆一条。 三、实验原理 ICETEK-C6748-AE 通过GPIO 来控制拨码开关的,通过对对应的GPIO 引脚的读,可以知道拨码开关的状态,再通过对GPIO 控制led 的显示,把拨码开关的状态显示出来。 2.实验程序流程图:

四、实验步骤 1.实验准备: (1) 连接实验箱: (2) 准备进行硬件仿真: (3) 检查ICETEK- C6748-KB 板上跳线选择器U15 为0000。 2.启动Code Composer Studio v5 3.打开工程文件: 工程文件目录为:C:\ICETEK\ICETEK-C6748-AE\Lab0301-Led_dip 打开源程序LED.c 阅读程序,理解程序内容。 4.点击图标,ccs 会自动连接,编译和下载程序。 5.运行程序,观察结果。 6.退出CCS。 五、实验结果 [C674X_0] ------------------------------------------------------------ C6748-A LED and Dip Switch Test Test Description ---------------- this code will begin by flashing the leds, then it will sit in a forever loop checking the dip switches. when a change in the dip switches is detected, a message will be printed to stdout and an led will be toggled. ------------------------------------------------------------ Initialize the Required BSL Modules ----------------------------------- Execute Test ------------ flash led patterns loop forever printing dips switch status and setting leds based on dips 拨动相应的拨码开关 SW1,对应的 led 灯会跟着亮灭 六、问题与思考 拨码开关用到的gpio 口是与EMIFA 数据线复用的,应用时注意避免硬件间的冲突。七、实验心得 通过这次实验我们了解了dip_switch 按键的使用方法,熟悉了CCS 操作,了解了C6748 连接的控制DIP_SWITCH 方法。 实验二.RTC 实验 一、实验目的 1.了解RTC 的用途。 2.了解C6748 连接的控制的访问RTC 的方法。 3.熟悉CCS 操作,学会使用工程,学习编译和下载、运行程序。 二、实验设备 1.PC 兼容机一台;操作系统为WindowsXP 或者以上版本。 2.ICETEK-C6748-AE 实验箱一台。如无实验箱则配备ICETEK-XDS100v2+仿真器和ICETEK–C6748-A,+5V 电源一只。 3.USB 连接电缆一条。

嵌入式实验报告

计算机专业类课程 实 验 报 告 课程名称:嵌入式微处理器系统及应用学院:计算机科学与工程 专业:计算机科学与技术 学生姓名:廖雪平 学号:2011060120003 指导教师:陈丽蓉 日期:2014年5月15日 电子科技大学计算机学院实验中心

电子科技大学 实验报告 实验一 实验名称:熟悉嵌入式系统软件开发工具与环境 一、实验学时:4 二、实验内容和目的: AR熟悉嵌入式系统软件开发工具与环境 M处理器指令编程基础实验 ARM处理器工作模式实验 ARM处理器异常处理实验 编写2段汇编程序,一段实现数据区的拷贝,另一段实现对第一个程序的调用,完成参数传递和返回值的传递。数据拷贝程序需要判断传递参数的正确性:源数据区和目的数据区不能重叠,如果重叠则不进行拷贝操作,并返回错误码(1),否则进行数据拷贝并返回成功码(0)。 三、实验原理: M处理器指令编程基础。 ARM处理器工作模式 ARM处理器异常处理 四、实验器材(设备、元器件) Pc机、开发板 五、实验步骤 1、了解并连接开发板。 2、运行程序熟悉环境并对开发板进行测试。 3、编写程序并调试运行 4、完成实验内容。 5、调试并撰写实验报告。 六、实验数据及结果分析: 实验代码:

实验截图: 电子科技大学计算机学院实验中心

七、实验结论、心得体会和改进建议: 实验本身不会很难,但初次开发还是不太熟练,不过本实验让我更加熟练了ARM汇编的开发,以及熟悉了ARM的开发流程以及开发环境 电子科技大学计算机学院实验中心

电子科技大学 实验报告 实验二 一、实验名称:UART串口通讯实验 二、实验学时:4 三、实验内容和目的: 1)在已有串口驱动软件及测试程序的基础上,修改测试程序,尝试对串口的各项通讯参数进行修改,并调整相应的与主机的连接配置,以便修改参数后的串口仍然 能够正常通讯; 2)通过查阅芯片手册,尝试自行实现串口的初始化函数,替代已有驱动软件库中的串口初始化函数,并通过测试程序验证自行编写的函数的正确性。 四、实验原理:UART串口通讯原理 五、实验器材(设备、元器件) pc、开发板、相关环境 六、实验步骤: 1、了解实验内容 2、修改测试程序调整连接配置以便修改参数后的串口仍然能够正常通讯 2、编写实验代码 3、测试验证自行编写的函数的正确性。 七、实验数据及结果分析: 实验代码:

嵌入式心得体会

对于电焊,虽然一点都不陌生,但亲手操作的机会却只有几次,因此我很庆幸能够有这样的焊接机会,进行这样的实践。 焊接看似容易,实则需要长时间练习才能掌握。刚开始的时候,手一直在抖,尤其这次焊的还是贴片电容、电阻,原器件比以前焊的小好多,用镊子的手一抖就夹不住了,拿着烙铁的手抖得都不容易将器件焊上,焊出来的焊点也特别难看,在不断尝试,不断挑战自我的过程中,我的手不抖了,也基本能掌握锡的用量了,当焊点终于不再“丑不忍睹”的时候,对焊接也没有当初的恐惧了。对自己的动手能力也有了信心。 在焊接的过程中我学到了许多以前我不知道的东西,比如,以前我只知道有电烙铁,但不知道它还有好多种类,有单用式、两用式、调温式、恒温式、直热式、感应式、内热式和外热式。松香可以将多余的锡弄下来,用酒精可以把板擦的干净些。通过视频和查找资料,知道了在焊不同的器件时用的电烙铁的头不同,比如在焊引脚时要用尖头,焊CPU时要用刀口,为防止锡将焊引脚的小孔堵住,用松香把纸条粘在小孔上,把小孔盖住,把CPU的引脚对齐,用锡先涂满两边,固定好芯片,在焊另外两边,然后用尖头的电烙铁沾着松香将多余的锡弄下来。 本次课程设计的是信号发生器,信号发生器在EDA课程,数字信号处理课程中都曾涉及,所以还是较为熟悉的,在设计之前查阅了一些相关书籍,也从网上查找了一些相关资料,程序代码中运用到了C语言,将程序加入到嵌入式结构框架中,进行定义变量,端口,设定所用的GPIO参数等等。 在焊接的过程中我不仅学到了知识,而且让我深深地体会到一个团队中各成员合作的重要性,要善于团队合作,在进行团队合作的时候,还要耐心听取每个成员的意见,每个人都有长处和短处,只有在包容别人的同时我们才可以取长补短,不断完善和不断进步,交到更多的朋友,学到更多的知识。同时还让我明白:做任何事都要一心一意,严谨认真,反复琢磨,不能畏惧,要有信心和勇气,一定要做好充分的准备。不能盲目去做,要坚持,还要学会反思跟总结,我们不是为了完成任务而完成,这还是一个学习跟提高的过程。 在大学里学的不是知识,而是一种叫做自学的能力。在这个知识爆炸的时代,知识更新太快,靠原有的一点知识肯定不行。以后的工作中肯定会用到一些新的

嵌入式系统实验实验报告

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

嵌入式实验报告心得

竭诚为您提供优质文档/双击可除 嵌入式实验报告心得 篇一:嵌入式系统各实验实验报告 嵌入式系统设计实验报告 班级:学号:姓名:成绩:指导教师: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 1.实验一 1.1实验名称 博创up-net3000实验台基本结构及使用方法 1.2实验目的 熟悉up-net3000实验平台的核心硬件电路和外设 通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态 1.3实验环境 硬件:ARm嵌入式开发平台、用于ARm7TDmI的JTAg仿真器、pc机 pentium100以上。 软件:pc机操作系统windows、ADs1.2集成开发环境、

仿真器驱动程序、 超级终端通讯程序。 1.4实验内容及要求 一、内容 ①嵌入式系统开发流程概述 ②熟悉up-net3000实验平台的核心硬件电路和外设 ③ARmJTAg的安装与使用 ④通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态 二、要求 通过本次课程对各个外设的了解,为今后各个接口实验打下基础。 1.5实验设计与实验步骤 一、JTAg的驱动程序的安装: 执行armJtag目录下armJtagsetup.exe程序,选择安装目录,安装JTAg软件。 二、通过通讯软件超级终端来检验外设的工作状态: ①运行windows系统下的超级终端(hyperTerminal)应用程序,新建一个通信终端。为所建超级终端取名为arm,可以为其选择第一个图标。单击“确定”按钮。 ②在接下来的对话框中选择ARm开发平台实际连接的pc 机串口(如com1),按确定按钮后出现属性对话框,设置通

arm嵌入式实验报告完整版

arm嵌入式实验报告完整版 篇一:ARM嵌入式系统实验报告1 郑州航空工业管理学院 嵌入式系统实验报告 第 赵成,张克新 院姓专学 系:名:业:号:电子通信工程系周振宇物联网工程 121309140 电子通信工程系 XX年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

中建立 ARM Executable Image(ARM可执行映像)类型的工程,工程目标配置为 Debug;接着,还需要对工程进行目标设置、语言设置及链接器设置;最后,配置仿真环境为ARMUL仿真方式。 2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名: AREA XTF,CODE,READONLY 声明32位ARM指令 R0arm嵌入式实验报告完整版) ADD R0,R1,R2 3.列写出使用LDR、STR指令的汇编程序,并在关键语句后面给出相应的注释。 AREA XTF,CODE,READONLY ;声明代码段XTFENTRY ;标示程序入口CODE32 ;声明32位ARM 指令START LDR R0,=1 ;加载数据LDR R1,=2LDR R3,=ADDR_1;载符号地址 ADD R2,R0,R1;R2[R3] ;数据空间定义 AREA Data_1,DATA,ALIGN=2 ADDR_1 DCD 0 END ;结束 4.“使用多寄存器传送指令进行数据复制”汇编程序分析。 LDR R0,=SrcData ;

嵌入式系统实验报告

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

相关文档