当前位置:文档之家› 嵌入式笔记讲解

嵌入式笔记讲解

嵌入式笔记讲解
嵌入式笔记讲解

嵌入式系统软件体系结构:

1、无操作做系统

(1)循环结构(主体是循环)——做很多任务时不好(有延迟),加中断和定时器较好;(2)前后台结构——中断

2、有操作系统——开发软件难度降低;多个任务并行执行,任务多少与内存(RAM)大小有关;

嵌入式操作系统的分类:

1、商用系统、专用系统、开源系统

2、按响应时间分类——实时操作系统、非实时操作系统

第三章

ARM:

内核、32位、占市场比例75%;

也是公司名,制作内核;

与PC相比——功耗小、价格低、集成度低,但集成了一些外设;

MIPS/W——衡量处理器的标准;

工作模式、代码密度——存储密度。

3、2 ARM微处理器体系结构

偏上外设的空间属于I/O空间;

ARM的架构——1个32bitsALU,31个32bits通用寄存器及6个状态寄存器。

3、2、3 ARM的寄存器组织(注:内核寄存器):

未分组寄存器R0~R7;

分组寄存器R8~R14;

程序计数器PC(R15);

R13——堆栈指针SP;

R14——PC的备份,也常写作LR,操作系统切换用;

程序状态寄存器CPSR

3、2、4 ARM处理器模式(7种)

(1)用户模式(USR);(2)快速中断模式(FIQ);(3)外部中断模式(IRQ);(4)管理模式(SVC);(5)数据访问终止模式(ABT);(6)系统模式(SYS);(7)未定义指令中止模式(UND);

大部分为用户模式下运行

3、2、5 异常

种类;异常向量表——P85;异常优先级;

对异常的响应:

(1)保存下一条指令地址——>LR(R14);

(2)CPSR——>SPSR;

(3)根据异常类型设置CPSR的M[4:0];

(4)PC跳转至异常向量地址(异常向量表内的);再跳转至异常处理程序;(5)从异常返回。

ARM指令集——32位;

Thumb指令集——16位,是ARM指令集的子集;

常用指令:

B 目标地址;

BL 目标地址; R14<——PC-4

BLX 目标地址; ARM<——>Thumb

MOV R1,R0; R0->R1

MOV R0,#0; #表示常数——————??????????

CMP R1,R0; 比较;影响CPSR标志位

LDR R0,[R1]; MOV不能从存储器读取数据

LDR R0,[R1,R2]; 相加为内存单元地址——?????????

LDR R0,[R1,#8];

LDR R0,[R1,R2,LSL #2]!; ——??????????

——地址R1+R2*4的数据——》R1,LSL表示左移,LSR表示右移

ADD R0,R2,R3,LSL #1; R0=R2+R3<<1——????

SUB R0,R1,R2; R0=R1-R2

ADC、SBC 考虑CBSR中C位——进、借位标志

SWI 软中断指令

伪指令——不会生成机器码,起辅助作用

AREA Init ,CODE ,READONL Y

……

ENTER ;入口地址

……

END

Thumb指令集:

区别——没有协处理器指令;无访问CPSR、SPSR指令;

无64位乘法指令;访问寄存器受限

3、4 ARM处理器编程简介

文件格式:*.S,*.ASM; *.C,*.CC(C++程序);

一般初始化文件用汇编,主要任务用C语言

汇编语言结构——P102

一个代码段(或多个),链接器确定在存储器中的位置

混合编程:主要是C语言内嵌套汇编语言

关心:传递、返回用什么寄存器(特定)

3、5 ARM处理器初始化分析

Bootloader:硬件、软件初始化

1、PC初始化过程

BIOS完成计算机硬件自检——》运行MBR中的代码——》读取运行活动分区引导扇区代码——》从分区中读取内核映像并启动。

2、嵌入式系统初始化

无BIOS,硬件自检由Bootloader完成。

一般Bootloader存放于0x00000000处,即处理器开始执行程序处。但不同处理器不同,具体可查datasheet。

Bootloader是一段小程序,通过这段小程序初始化最基本的硬件设备,并建立内存空间映射图。

常用Bootloader有:U—boot和ViVi,其中U—boot开源

第5章嵌入式系统硬件平台与接口设计

5、1

1、S3C2410简介

ARM920T内核、0.18um;

CMOS工艺、外围模块(片上外设);

MMU(内存管理单元)

PWM——控制直流电机中的转速,开关电源,产生方波

S3C2310A微处理器的启动方式

Nandflash——SDRAM——大容量存储器

Norflash——SRAM

——XIP功能:在片内运行程序,成本高,容量小,掉电不消失

DRAM:动态随机存储器,存储密度大,需刷新电路;

SRAM:静态随机存储器,使用方便,容量小,无需刷新电路;

SDRAM:同步动态随机存储器,存储容量大,需内部刷新电路,需要同步时钟;

启动方式(Nandflash启动)——手机、嵌入式系统

两级引导:

第一级:系统复位时,若OM[1:0]为00,则将Nandflash的前4K字节复制到内部SRAM中(CPU自动完成,不需干预);

第二级:Nandflash 前4K一般存放Bootloader,Bootloader初始化SDRAM(外扩内存)及Nandflash控制器,及其他初始化,随后将Bootloader的其它部分复制到SDRAM中,运行SDRAM中的代码(即执行Bootloader),引导操作系统及其他应用程序。

5、2 存储器系统设计(很重要)

内存一定是挂在系统总线上的;

高速缓存:位置——CPU与主存储器(内存之间);

——作用:提高内存系统性能;

——原理:cache与主存有相同块号,CPU访问主存时,受限访问cache,有则取,无则访问主存,且主存数据——》cache

内存管理单元(MMU)

作用:

(1)虚拟存储空间到物理存储空间的映射,查表过程;

——解释?程序所需内存大于物理内存时的情况;

(2)存储器访问权限控制;

(3)设置虚拟存储空间的缓冲特性

5、3 串行接口设计(UART)

通过串口观察程序运行状态;

可以接收输入,可以输出好多信息;

用来运行时交流。

1、串行通信的基本概念(UART)SPI、I^2C、CAN

单工、半双工、全双工

USART:通用同步和异步收发器(有时钟信号);

UART:通用异步收发器。

异步通信:

(1)接收、发送时钟不同,使用波特率,存在误码;

(2)有纠错机制(奇偶校验——简单、有效、成本低)

(3)传输速率:波特率——使用UART,晶振选择上注意——11.0592M,或用PLL

与UART有关的寄存器P160

串行接口设计

#define rUTRSTA T0 (*(volatile unsigned *) 0x50000010)

#define rUTRSTA T1 (*(volatile unsigned *) 0x50004010)

#define wrUTXH0(ch) (*(volatile unsigned char *) 0x50000020)=(unsigned char)(ch)

#define RdURXH0() (*(volatile unsigned char *) 0x50000024)

int main(void)

{

char c1[1];

while(1)

{

Uart_SendByten(0,0xa);//换行

Uart_SendByten(0,0xd);//回车

er=Uart_Getch(c1,0,0);

Uart_SendByten(0,c1[0]);

}

}

void Uart_SendByten(int Uartnum,U8 data)

{

if(Uartnum==0)

{

while(!(rUTRSTA T0&0x4)); //查看倒数三位的状态;判断发送缓冲区是否为空,为1为空,为0为满;

hudelay(10);

wrUTXH0(data);

}

}

char Uart_Getch(char *Revdata,int Uartnum,int timeout) {

if(Uartnum==0)

{

while(!(rUTRSTA T0&0x1))

*Revdata=RdURXH0();

return TRUE;

}

}

5、4 I/O接口设计

GPIO例:

#define GPCCON (*(volatile unsigned *)0X56000020)

#define GPCDAT (*(volatile unsigned *)0X56000024)

#define GPCUP (*(volatile unsigned *)0X56000028)

Main()

{

GPCCON=0X55555555;

GPCUP=0XFFFF;

GPCDAT=0XA0;

While(1);

}

I/O接口——独立编址;

统一编址——与存储系统。

5、4、2 A/D转换器

基本概念:S3C2410

时钟:2.5MHz;8路10位AD;转换速率:500Ksps

参考电压:3.3V;精度:3.3V/2^10≈3.3mV

例:A/DC

#define ADC_CON_FLAG(0x1<<15)

#define ADCCON_ENABLE_START_BYRED(0x1<<1) #define PRSCVL(49<<6)

#define ADCCON_ENABLE_START(0x1)

#define STDBM(0x0<<2)

#define PRSCEN(0x1<<14)

#define rADCCON(*(volatile unsigned *)0x58000000) #define rADCDAT0(*(volatile unsigned *)0x5800000C)

void init_ADdevice()

{

rADCCON = PRSCVL|ADCCON_ENABLE_START|STDBM|PRSCEN;

}

int GetADresult(int channel)

{

rADCCON=ADCCON_ENABLE_START_BYREAD|(channel<<3)|PRSCEN|PRSCVL ;

hudelay(10);

while(!(rADCCON & ADCCON_FLAG));

return(0x3FF & rADCDAT0);

}

int main()

{

float d;

int i;

while(1)

{

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

{

d=GetADresult(i)*3.3/1023;

Uart_Print("a%d=%f\t",i,d);

hudelay(1000);

}

}

}

软件以工程为整体

实验箱自带很多源码,用“模板”文件,看说明;

Startup.c——起始文件,入口程序,只读即可。

AD控制LED亮度

While(1)

{

K=GetADresult(0);

rGPCDAT =0x00;

Hudelay(110-k/10);

rGPCDAT =0XFF;

Hudelay(k/10+1);

}

寄存器赋值:读——》修改——》写

PWM控制直流电机(小功率)——寄存器(PWM)

TCNTBn:决定频率;TCMPBn:决定占空比;TCNTBn、TCMPBn等;

TCON:控制寄存器——开始、停止、倒相、更新寄存器

TCFG0:预分频,死区单元(时间);TCFG1:MUX分频

程序:

Init_Motoport()

{

rGPBCON =rGPBCON&0X3FFFF0 | 0XA; //B1、B0对应TOUT1,TOUT0

rTCFG0=(0<<16) | 2;

rTCFG1=0; //MUX 2分频

rTCNTB0=MOTOR_CONT; //很大的常数

rTCMPB0=MOTOR_MID; //PWM时钟/2000

rTCON =0X2; //update TCNTB0、TCMPB0

rTCON=0X19; //start;死区使能

}

Void SetPWM(int value)

{

rTCMPB0=MOTOR_MID+value;

}

第4章UC/OS-II操作系统

特点:开源;

嵌入式操作系统:提供了一个平台(软件);供软件运行、设备管理、人机接口。

软件调用硬件流程:

软件1 硬件1

……操作系统驱动程序……

软件n 硬件m

操作系统不允许软件直接调用硬件。

UC/OS-II的任务

1、任务的基本概念;

2、任务堆栈;

3、任务控制块;

4、任务调度;

5、任务的创建;

6、任务的挂起和恢复;

7、UC/OS-II的初始化和任务的启动;

8、任务的同步与通信

任务的基本概念:(线程、进程)

任务:就是一个线程,就是一个用来解决用户问题的C语言函数和与之相关联的一些数据结构而构成的一个实体。

任务的构成:任务代码(任务执行部分)、任务堆栈(保存工作环境)、任务控制块(TCB)——(保存任务的属性)

两种任务:用户任务、系统任务

任务状态——P118——图4-3

每一时刻只有一个任务在“运行状态”;

只有“就绪状态”可以进入“运行状态”;

“睡眠状态”的任务没有TCB

用户任务的一般结构——超循环结构(无限循环);

Void Mytask(void *pdata)

{

For(;;)

{

可以被中断的用户代码;

OS_ENTER_CRITICAL(); //进入临界段(关中断)

不可以被中断的用户代码;

OS_EXIT_CRITICAL(); //退出临界段(开中断)

可以被中断的用户代码;

延时函数(任务切换);//必须是系统自带延时函数(出口)

}

}

任务堆栈

堆栈:存储器中按数据“后进先出(LIFO)”的原则组织的连续存储空间。

任务堆栈的作用:任务切换和响应中断时保存CPU寄存器中的内容及存储任务的私有数据。

任务堆栈的创建

OS_CPUH中定义了OS_STK

Typedef unsigned int OS_STK; //16位长度

定义堆栈长度:#define TASK_STK_SIZE 512

应用程序中:OS_STK TaskStk [TASK_STK_SIZE]; //定义了一个数组作为堆栈

创建任务函数原型:

INT8U OSTaskCreate ( void ( * task)(void *pd), //指向任务指针

Void *pdata, //给任务传递参数

OS_STK *ptas, //任务堆栈栈顶指针

INT8U prio ); //任务优先级——不能重复;UC/OS-III可以重复

例:建一个任务,对战长度128字节,优先级20,任务参数MyTaskAgu

#define MyTaskStkN 64

OS_STK MyTaskStk [MyTaskStkN]; //16位

Void main(void)

{

……

OSTaskCreate (Mytask, &MyTaskAgu, &MyTaskStk [MyTaskStkN-1], 20);

——若&MyTaskAgu为(void *) 0,表示无参数情况

……

}

注意:堆栈生长方向问题;

不同处理器不同;若有低地址向高地址生长,则&MyTaskStk[0];

一般OS_CFG.H中定义了OS_STK_GROWTH作为选择开关。

任务堆栈初始化

任务堆栈初始化由操作系统负责,由函数OST askStkInit()完成(非用户函数)。

——该函数根据CPU不同而不同,在OS_CPU.H中定义。

最核心的是任务的调度(OSSched());

时钟节拍也是一种中断。

任务控制块及其链表

任务控制块(OS_TCB)用来记录任务的属性(结构体);

堆栈指针、任务当前状况、任务的优先级别等与任务管理有关的属性。

任务控制块把任务代码和任务堆栈关联,相当于任务的身份证。

(1)任务控制块的结构

任务控制块是一个结构类型数据,OS_TCB结构,由OST askCreate()函数创建一个用户任务时,函数会对任务控制块中所有成员赋予与该任务相关的数据,并驻留RAM

(2)任务控制块链表

UC/OS-II用两条链表来管理TCB;

一条空TCB链表,所有TCB没有分配给任务;

另一条是任务TCB链表,所有TCB分配给了任务;

空TCB链表由OSInit()创建;

任务链表由OST askCreate()创建任务时创建。

注:

1)OSInit()对UC/OS-II初始化时,RAM中创建了一个OS_TCB结构类型数组OSTCBTbl[]; 2)OSTaskCreate()或OSTaskCreateExt()创建任务时将空TCB分配给该任务,且加入到任务TCB链表中;

3)删除一个任务,该任务TCB被从任务控制块链表中删除——睡眠状态

任务调度(做好很困难)

CPU中止当前任务,而去运行另一个任务叫任务切换;按某种规则进行的任务切换工作叫做任务调度。

UC/OS-II中,由任务调度器完成。

任务调度器做两项工作:在任务就绪表中查找具有最高优先级别的就绪任务;完成任务切换。

实现函数:OSSched()->任务级调度器或OSIntExt()->中断级调度器;注:非用户函数;这里主要介绍任务级调度器如何:

(1)查找任务就绪表;(2)进行任务切换。

——与普通中断不同,SP被改变,导致中断进入、返回是PC不同。

任务就绪表

由INT8U 变量 OSRdyGrp 与INT8U 数组 OSRdyTbl[]实现 优先级不会超过63:111111,分成前3位和后3位;

前3位置位OSRdyGrp 的某一位,后3位置位OSRdyTbl[n]的某一位;

因此,可将优先级看成6位2进制数,D5D4D3表示OSRdyGrp 的具体数据位,低3位D2D1D0表示该数组元素具体数据位。

任务的调度(切换) 两步:(1)获得待运行任务的TCB 指针;(2)进行断点任务切换; 任务级调度:

(1)OSSched()确认未被上锁,且不是中断服务程序调度器,首先查找最高优先级就绪任务的优先级别,找到它的TCB 指针,并且赋值给OSTCBHighRdy ; (2)任务切换宏OS_TASK_SW(),函数OSCtxsw()实现。

能否正确地在CPU 各寄存器中恢复断点数据,即CPU 的堆栈指针SP 是否有正确指向,用OSTCBStkPtr 保存SP ;

先出了SP 之后,中断返回时,PC 出栈,此时PC 非中断发生时PC 具体实现:由于不具备对PC 出栈、入栈指令,所以引发一次中断,中断服务程序OSCtxSw()一般用汇编语言写。

任务的创建

实质就是创建一个任务控制块,并通过任务控制块把任务代码和任务堆栈关联起来。 由函数OST askCreate()和OSTaskCreateExt()完成。

INT8U OSTaskCreate(void (*task)(void *pd),void *pdata,OS_STK *pts,INT8U Prio) {

……

检测任务优先级是否合法; 确认优先级未被占用; 初始化任务堆栈;

获得并初始化任务控制块; 任务计数器+1; 任务调度;《—(UC/OS-II 处于运行状态) }

创建任务的一般方法

要求在OSStart()之前至少创建一个任务,习惯上创建一个启动任务,并赋予最高优先级,在调用OSStart()之前,再由它创建其他任务。

OSRdyTbl[0]

OSRdyGrp

……………………………………

OSRdyTbl[7]

Dn=0,说明OSRdyTbl[n]

组有就绪任务。

D7 …… D0 D7 …… D0 D7 …… D0

任务的挂起和恢复

挂起:停止任务的运行,使处于等待状态

OSTaskSuspend()挂起自身或空闲任务之外的其他任务;

OSTaskSuspend()刮起的任务只能在其他任务中调用OST askResume()使其恢复为就绪状态。

UC/OS-II 的初始化和任务的启动

OSInit()对UC/OS-II 的所有全局变量和数据结构初始化;同时创建任务OST askIdle()(空闲任务);

如果还要使用统计任务,同时创建完成;

数据结构主要是创建包括任务控制块在内的5个空数据缓冲区; OSStart()启动任务,前提是至少创建了一个用户任务。

用系统自带延时函数OSTimeDly(),可使性能优化,提高CPU 利用率。 OS_task.c OS_core.c OS_sem.c OS_time.c

Void Task1(void *Id) {

INT16U K=0; For(;;) {

K=GetADresult(0);

rGPCDAT =rGPCDAT &(~(1<<5)); OSTimeDly(22-K/50);

rGPCDAT =rGPCDAT |(1<<5); OSTimeDly(1+K/50); } }

任务的同步与通信

一个好的操作系统必须具有完备的同步和通信机制。

事件:UC/OS-II 中使用信号量、消息邮箱和消息队列这些被称作事件的中间环节来实现任务间的通信。

1、信号量(变量) 作用:“标志位”的作用

OS_TASK_SW() 任务被剥夺CPU 使用权

就绪状态 等待状态 运行状态 OSTaskResume() OSTaskSuspend()

(1):先申请; (2):1—》0; (3)、(7):使用; (4):后申请,申请不到; (5):任务1使用完毕,0—》1; (6):在申请,可用;

2、消息邮箱

作用:任务间传递数据 3、消息队列

消息邮箱中的指针换成指针数组;可传递多个消息的数据结构。 4、事件控制块(ECB )

作为功能完善的事件,应对等待的任务有管理功能: 一是要对等待事件的所有任务进行记录并排序; 二是应该允许任务有一定的等待时限。

UC/OS-II 使用事件控制块(ECB )的数据结构来描述如信号量、消息邮箱、消息队列这些事件。

(1)ECB 数据机构 Typedef struct {

INT8U OSEventType; //事件类型 INT16U OSEventCnt; //信号量计数器 Void *OSEventPtr; //消息或消息队列指针 INT8U OSEventGrp; //等待事件的任务组 INT8U OSEventTbl [OS_EVENT_TBC_SIZE]; }OS_EVENT;

1

信号量 共享资源

任务2

(5)

(7)

(2)

(4)

(6)

任务1

(1)

(3)

OS_EVENT

OSEventType OSEventCnt OSEventPtr OSEventGrp

………… …………

………… OSEventTbl[]

8*8 任

等代

OSEventType可取值

OS_EVENT_TYPE_SEM 信号量

OS_EVENT_TYPE_MUTEX 互诉型信号量OS_EVENT_TYPE_MBOX 消息邮箱

OS_EVENT_TYPE_Q 消息队列

OS_EVENT_TYPE_UNUSED 空事件控制块

嵌入式系统设计师练习题及答案解析

嵌入式系统设计师练习题及答案第一套 (1) 嵌入式系统设计师练习题及答案第二套 (5) 嵌入式系统设计师练习题及答案第三套 (16) 嵌入式系统设计师练习题及答案解析第四套 (27) 嵌入式系统设计师练习题及答案解析第五套 (45) 嵌入式系统设计师练习题及答案解析第六套 (59) 嵌入式系统设计师练习题及答案解析第七套 (67) 嵌入式系统设计师练习题及答案解析第八套 (75) 嵌入式系统设计师练习题及答案解析第九套 (81) 嵌入式系统设计师练习题及答案解析第十套 (90) 嵌入式系统设计师练习题及答案解析第十一套 (99) 嵌入式系统设计师练习题及答案解析第十二套 (106) 嵌入式系统设计师练习题及答案解析第十三套 (115) 嵌入式系统设计师练习题及答案解析第十四套 (126) 嵌入式系统设计师练习题及答案解析第十五套 (139) 嵌入式系统设计师练习题及答案解析第十六套 (154) 嵌入式系统设计师练习题及答案解析第十七套 (161) 嵌入式系统设计师练习题及答案解析第十八套 (169) 嵌入式系统设计师练习题及答案解析第十九套 (177) 嵌入式系统设计师练习题及答案解析第二十套 (189) 嵌入式系统设计师练习题及答案解析第二十一套 (199) 嵌入式系统设计师练习题及答案解析第二十二套 (212) 嵌入式系统设计师练习题及答案第一套 1、以下关于CPU的叙述中,错误的是 A.CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制

B.程序计数器PC除了存放指令地址,也可以临时存储算术/逻辑运算结果 C.CPU中的控制器决定计算机运行过程的自动化 D.指令译码器是CPU控制器中的部件 2、以下关于Cache的叙述中,正确的是 A.在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素 B.Cache的设计思想是在合理成本下提高命中率 C.Cache的设计目标是容量尽可能与主存容量相等 D.CPU中的Cache容量应大于cPu之外的Cache容量 3、风险预测从两个方面评估风险,即风险发生的可能性以及 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 4、许多程序设计语言规定,程序中的数据都必须具有类型,其作用不包括 A.便于为数据合理分配存储单元 B.便于对参与表达式计算的数据对象进行检查 C.便于定义动态数据结构 D.使于规定数据对象的取值范围及能够进行的运算 5、在计算机系统中,对程序员是透明的。 A.磁盘存储器 B.高速缓存 C.RAM存储器 D.flash存储器

嵌入式系统设计大作业

嵌入式系统设计大作业 学号:14020520009 姓名:罗翔 1、叙述JTAG接口在嵌入式开发中的作用。 答: (1)用于烧写FLASH 烧写FLASH的软件有很多种包括jatg.exe fluted flashpgm等等,但是所有这些软件都是通过jtag接口来烧写flash的,由于pc机上是没有jtag接口的,所以利用并口来传递信息给目标板的jtag接口。所以就需要并口转jtag接口的电路。 (2)用于调试程序 同时应该注意到jtag接口还可以用来调试程序。而调试程序(如ARM开发组件中的AXD)为了通过jtag接口去调试目标板上的程序,同样是使用pc的并口转jtag接口来实现与目标板的通信。这样,并口转jtag接口的电路就有了两种作用。 (3)仿真器 根据(1)和(2)的总结,并口转jtag接口的电路是两种应用的关键,而这种电路在嵌入式开发中就叫仿真器。并口转jtag接口的电路有很多种,有简单有复杂的,常见的仿真器有Wigger,EasyJTAG,Multi-ICE等。这些所谓的仿真器的内部电路都是并口转jtag接口,区别只是电路不同或使用的技术不同而已。 2、叙述嵌入式平台的搭建过程,以linux为例。 答: 1) 一:建立宿主机开发环境 建立交叉编译的环境即在宿主机上安装与开发板相应的编译器及库函数,以便能够在宿主机上应用开发工具编译在目标板上运行的Linux引导程序,内核,文件系统和应用程序 交叉编译:在特殊的环境下,把嵌入式程序代码编译成不同的CPU所对应的机器代码。

开发时使用宿主机上的交叉编译,汇编及链接工具形成可执行的二进制代码(该代码只能在开发板上执行),然后下载到开发板上运行 2) 下载和安装arm-Linux-gcc编译工具链下载最新的arm-Linux-gcc并解压至当前目录下 在系统配置文件profile中设置环境变量方法:直接在profile文件中加入搜索路径立即使新的环境变量生效:运行source命令,检查是否将路径加入到path,测试是否安装成功, 编译程序,测试交叉工具链 3) 配置超级终端minicom minicom是宿主机与目标板进行通信的终端:在宿主机Linux终端中输入:minicom-s或输入minicom然后按ctrl+A+O对超级终端minicom进行配置,再选择串口并配置串口,最后保存即可 4) 建立数据共享服务:NFS服务是Linux系统中经常使用的数据文件共享服务 5) 编译嵌入式系统内核:内核配置,建立依存关系,建立内核 6) 制作文件系统 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? S3C2410X基于ARM的Sumsang; XscalePXA255/PXA270基于ARM的Intel; 摩托罗拉MC基于68k; Power 601基于Power PC; MIPS32Kc基于MIPS 4、现今较流行的嵌入式操作系统有哪些? 答: (1) VxWorks (2)wince (3)linux (4)android

大作业设计报告书(嵌入式系统原理与开发)

大作业设计报告书 题目:嵌入式系统原理与开发 院(系):物联网工程学院 专业: 班级: 姓名: 指导老师: 设计时间: 10-11 学年 2 学期 20XX年5月

目录 1.目的和要求 (3) 2.题目内容 (3) 3.设计原理 (4) 4.设计步骤 (5) 4.1 交通指示灯设计 (5) 4.2 S3C44B0X I/O 控制寄存器 (6) 4.3 红绿灯过渡代码: (8) 4.4 电源电路设计 (10) 4.5 系统复位电路设计 (11) 4.6 系统时钟电路设计 (11) 4.7 JTAG 接口电路设计 (12) 4.8串口电路设计 (12) 5.引脚分类图 (13) 6.参考文献 (13)

1.目的和要求 ARM技术是目前嵌入式应用产业中应用十分广泛的先进技术,课程开设的目的在于使学生在了解嵌入式系统基础理论的前提下能够掌握ARM处理器的汇编语言和c语言的程序设计方法,掌握S3C44B0X芯片的基本硬件结构特点和接口设计方法,同时熟悉ARM开发环境,学习ARM的硬件设计和软件编程的基本方法,为今后从事相关的应用与研究打下基础。通过大作业要达到如下目的: 一、掌握ARM的开发工具使用和软件设计方法。 二、掌握ARM处理器S3C44B0X的原理和GPIO接口设计原理。 三、掌握C语言与的ARM汇编语言的混合编程方法; 四、培养学生选用参考,查阅手册及文献资料的能力。培养独立思考,深入研 究,分析问题、解决问题的能力。 五、通过课程设计,培养学生严肃认真的工作作风。 2.题目内容 题目:交通指示灯系统设计 功能描述: 1.用S3C44B0X的GPIO设计相关电路; 2.设计相关的软件并注释; 3.实现十字路口2组红、黄、绿交通灯交替显示。 编程提示: 1.交通灯可用发光二极管代替; 2.电路可部分参照实验电路; 3.时间控制可以使用软件循环编程解决。

嵌入式学习心得体会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处理器上,这些都是问题。 因此接口并不是一种简单的连接,要看时序,要看参数。一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师

2016年下学期嵌入式系统设计大作业

嵌入式系统设计大作业 1、叙述嵌入式系统开发过程中所要解决的两个问题。 2、叙述嵌入式平台的搭建过程,以linux为例。 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? 4、现今较流行的嵌入式操作系统有哪些? 5、PXA270嵌入式开发板的接口有哪些? 6、请写出Nor Flash和Nand Flash的区别。 7、冯。诺依曼架构与哈佛架构的区别。 8、单周期3级流水的情况下,第10个指令周期时,第几条指令执行结束? 9、下面是linux下的一个简单的设备驱动程序,写出linux设备驱动常用的数据结构,同时阅读下面代码,请给出测试程序中的每条语句加以注释。 设备驱动程序Keypad.c的源代码: #include #include #include #include #include #include #include #include #include #include #include #define LEDnKEY_MAJOR 251 #define KEYPAD_NAME "X-Hyper250 Keypad" #define KEYPAD_VERSION "Version 0.1" #define EXT_KEY_CS EXT_PORT2 #define EXT_LED_CS EXT_PORT3 #define LED_SHOW 10 /*EXT_KEY_CS 为向外部LED进行数值设定,它定义在其它头文件里*/ void led_off_on() /**/ { int i; EXT_LED_CS = 0xff; for(i =0 ; i<8;++i) { EXT_LED_CS = ~((1 << i) & 0xff); udelay(30000); } EXT_LED_CS = 0xff; }

嵌入式实验心得体会

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

嵌入式学习心得

嵌入式学习心得 如何学习嵌入式系统(基于ARM平台) 前言 网上看到众多网友都问了关于嵌入式系统方面的很多问题,很多都可在这里找到答案,希望我的这篇文章能给他们以启发。也请大家不要轻易转载。 一、嵌入式系统的概念 着重理解“嵌入”的概念 主要从三个方面上来理解。 1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC 机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。IXP系列最高主频可以达到1.8G,支持2G内存,1G×10或10G×1的以太网口或Febre channel的光通道。IXP系列应该是目标基于ARM体系统结构下由intel进行整合后成Xscale内核的最高的处理器了。 2、从软件上前,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如WinCE在内核定制时,会有相应选择,其中就是wordpad,PDF,MediaPlay等等选择,如果我们选择了,在CE启动后,就可以在界面中找到这些东西,如果是以前PC上将的windows操作系统,多半的东西都需要我们得新再装。 3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。 以上的定义是我在6、7年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,历为毕竟嵌入式系统是计算机范畴下的一门综合性学科 二、嵌入式系统的分层与专业的分类。 嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。 1、硬件层,是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。 硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。 2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows 下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运

嵌入式系统设计师 历年试题解析

嵌入式系统设计师历年试题解析 本复习题页码标注所用教材为: 嵌入式系统技术张晓林2008年10月第1版高等教育出版社 如学员使用其他版本教材,请参考相关知识点 1. 嵌入式系统调试通常可以分为硬件级调试和在线仿真器调试。 考核知识点:嵌入式系统调试,参见P47 2. 在ARM处理器中,快速中断(FIQ)的优先级高于外部中断(IRQ)。 考核知识点:ARM处理器,参见P62 3. ROM能够永久或半永久地保存数据,ROM内的数据永远不会丢失。 考核知识点:存储器特点,参见P131 4. 内建测试系统(BIST)是SoC片上系统的重要结构之一,JTAG测试接口是IC芯片测试方法的标准。 考核知识点:嵌入式系统测试,参见P43 5. VHDL的基本单元描述不包括库。 考核知识点:SOC主要设计语言,参见P233 6. 嵌入式ARM架构的嵌入式处理器同时支持大端、小端(Big/Little-Endian)数据类型。 考核知识点:嵌入式ARM架构的嵌入式处理器,参见P16 7. 嵌入式操作系统通常采用整体式内核或层次式内核的结构。 考核知识点:嵌入式操作系统内核,参见P249 8. ARM7TDMI中的T代表增强型乘法器。 考核知识点:ARM处理器,参见71 9. 看门狗(Watch Dog)实际是一个简单的定时器,在固定时间内若正常清零,则自动复位处理器。 考核知识点:嵌入式式系统硬件设计,教材无参考答案 10. ARM-CPU由多家不同制造商生产,芯片外部提供的总线是不一致的。 考核知识点:嵌入式总线技术,参见P183 1.嵌入式处理器指令的执行周期包括() A.启动、运行、退出 B.取指令、指令译码、执行指令、存储 C.启动、运行、挂起、退出 D.取指令、指令译码、执行指令 考核知识点: ARM处理器指令周期,参见P69 2.下列不属于嵌入设计处理器本身带有的基本接口是()

嵌入式系统学习心得总结

嵌入式系统学习心得总结 嵌入式系统学习心得总结 嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。以下为你带来嵌入式系统学习心得总结,希望对你有所帮助! 嵌入式系统学习心得总结篇1 嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。 看到了嵌入式系统的范围,你也应该知道嵌入式系统工程师是做什么的,就是开发上面的那些电子产品的工程师。 关于如何学习嵌入式? 学习嵌入式,该学习什么基本的知识呢? 首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。很多人会问,

C语言要学到怎么样,我觉得这没有标准的答案。我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。 其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。 还有应该学习嵌入式系统,如linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。 还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。 最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想

嵌入式系统设计师相关资料

嵌入式系统设计师 通过本考试的合格人员能根据项目管理和工程技术的实际要求,按照系统总体设计规格说明 书进行软、硬件设计,编写系统开发的规格说明书等相应的文档;组织和指导嵌入式系统开 发实施人员编写和调试程序,并对嵌入式系统硬件设备和程序进行优化和集成测试,开发出符合系统总体设计要求的高质量嵌入式系统;具有工程师的实际工作能力和业务水平。 报名时间:上半年一般在2-3月之间,下半年一般在7-9月之间 考试时间:上半年一般在5-6月,下半年一般在11月 报考条件:1、遵纪守法,恪守职业道德; 2、具有一定计算机技术应用能力。 不限学历和资历条件。 考试报名办法、时间及要求:采取网上报名、现场确认的报名办法。进行网上报名时报考人员必须登陆浙江软件考试网(网址:) ,按报名流程完整、准确输入本人的真实信息,输入 完成后下载打印《2006年下半年计算机技术与软件专业技术资格(水平)考试报考登记表》 (以下简称“报名表”),在“报名表”上贴上本人同一底版的一寸免冠照片2张(其中一张用于“报名表”,一张备用),并在“报名表”的诚信声明处确认签字,由市(厅、局) 人事部门汇总后统一到省软件考试实施办公室办理现场确认手续,也可个人直接到各市报名 确认点或省软件考试实施办公室确认。 报考费用:现场确认时报考人员须交网上报名时下载的已经过本人签字确认的“报名表”并 交纳报名考务费。考试收费标准按浙价费〔2001〕189号和发改价格〔2003〕2148号规定,系统分析师和信息系统项目管理师级每人177元(含上缴国家27元),其他各级每人118 元(含上缴国家18元) 考试要求: (1)掌握计算机科学基础知识; (2)掌握嵌入式系统的硬件、软件知识; (3)掌握嵌入式系统分析的方法; (4)掌握嵌入式系统设计与开发的方法及步骤; (5)掌握嵌入式系统实施的方法; (6)掌握嵌入式系统运行维护知识; (7)了解信息化基础知识、计算机应用的基础知识; (8)了解信息技术标准、安全性,以及有关法律法规的基本知识; (9)了解嵌入式技术发展趋势; (10)正确阅读和理解计算机及嵌入式系统领域的英文资料。 考试范围: 考试科目1:嵌入式系统基础知识 1.计算机科学基础 1.1数制及转换 o二进制、八进制、十进制和十六进制等常用数制及其相互转换 1.2数据的表示 o数的机内表示(原码、反码、补码、移码,定点和浮点,精度和溢出) o字符、汉字、声音、图像的编码方式 o校验方法和校验码(奇偶验码、海明校验码、循环校验码) 1.3算术和逻辑运算

嵌入式系统基础作业

一、简要说明嵌入式系统产品的基本组成、嵌入式系统特点、嵌入式系统开发流程; 答:基本组成:可分为硬件和软件两个组成部分。其中硬件组成结构以嵌入式微处理机为中心,配置存储器I/O设备、通信模块以及电源等必要的辅助借口;软件组成结构包括应用层、OS层、BSP等。 特点:“专用”计算机系统;运行环境差异大;比通用PC系统资源少;功耗低、体积小、集成度高、成本低;具有完整的系统测试和可靠性评估体系;具有较长的生命周期;需要专用开发工具和方法进行设计;包含专用调试电路;多科学知识集成系统。 开发流程:(1)系统定义与需求分析阶段。(2)方案设计阶段。(3)详细设计阶段。(4)软硬件集成测试阶段。(5)系统功能性及可靠性测试阶段。 二、写出教材图1-1嵌入式系统的组成结构中各英文缩写的中文释义; 答:.OS:操作系统 API:应用程序接口 BSP:板级支持包 Boot:启用装载 HAL:硬件抽象层 SoC/SoPC:片上系统/片上可编程系统 GPIO:控制处理器输出接口 USB:通用串行总线 LCD:液晶显示器 ADC/DAC:模数转换和数模转换 FPGA/CPLD:现场可编程门阵列/复杂可编程逻辑器件 UART/IrDA:通用异步收发传输器/红外线接口 DMA:直接内存访问 CAN:控制器局域网络 Timer/RTC:定时器/实时时钟 MMU/Cache:内存管理单元/高速缓冲存储器

三、比较说明FLASH存储器中NOR型和NAND型FLASH的主要区别;比较说明RAM 存储器中SRAM和SDRAM的主要区别; 答:NORFlash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NORFLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NANDFlash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。SRAM是靠双稳态触发器来记忆信息的;SDRAM是靠MOS电路中的栅极电容来记忆信息的。由于电容上的电荷会泄漏,需要定时给与补充,所以动态RAM需要设置刷新电路。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。所以主内存通常采用SDRAM,而高速缓冲存储器(Cache)则使用SRAM,在存取速度上,SRAM>SDRAM。 四、说明嵌入式系统常见硬件平台种类、典型处理器型号; 答:典型的型号有MIPS处理器、PowerPC处理器、Sparc处理器、ARM处理器、Xtensa系列可配置处理器。 五、嵌入式系统中常用的接口或通信方式有RS232、RS485、BlueTooth、CAN、IrDA、GPRS、SPI、GSM、802.11、SPI、IIC、Ethernet、JTAG等,请根据通信介质是否无线或有线对其进行分类;请根据通信距离从近至远依次排序;请根据通信速度从慢至快依次排序; 答:无线:RS485、BlueTooth、CAN、IrDA、GPRS、GSM、802.11、Ethernet 有线:RS232、SPI、IIC、JTAG 传输距离:RS232、SPI、IIC、JTAG、BlueTooTh、IrDA、RS485、CAN、802.11、GSM、GPRS、Ethernet 传输速度:GSM、GPRS、Blueteeth、IrDA、802.11、CAN、RS232、RS485、Ethernet、IIC、SPI、JTAG 六、列举常见嵌入式操作系统及其特点; 答:源代码公开并且遵循GPL协议 有大量的免费的优秀的开发工具,且都遵从GPL,是开放源代码的。

嵌入式学习笔记之GPIO详解

嵌入式学习笔记之GPIO详解 一、什么是GPIO:GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。在嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个通用可编程IO接口,即GPIO。接口至少有两个寄存器,即通用IO控制寄存器与通用IO数据寄存器。数据寄存器的各位都直接引到芯片外部,而对这种寄存器中每一位的作用,即每一位的信号流通方向,则可以通过控制寄存器中对应位独立的加以设置。这样,有无GPIO接口也就成为微控制器区别于微处理器的一个特征。 二、GPIO之LCD控制编程:S3C2440有130个I/O端口,分为A-J共9组:GPA、GPB、、、、GPJ,可以通过设置寄存器来确定某个引脚用于输入、输出还是特殊功能。比如:可以设置GPH6作为输入、输出、或者用于串口。 1、通过寄存器来操作GPIO引脚 1)GPxCON寄存器它用于配置引脚的功能端口A与端口B-J在功能上有所不同,GPACON 中每一位对应一根引脚(共23根引脚)当某位为0时,对应引脚为输出,此时在GPADAT 中相应位写入0或1,让此引脚输出低电平或高电平;当某位被设为1时,对应引脚为地址线或用于地址控制,此时GPADAT保留不用。GPACON通常被设为全1,以便访问外部存储设备端口B-J在寄存器操作上完全相同,PxCon中每两位控制一根引脚,00表示输入,01表示输出,10表示特殊功能,11保留不用。 2)GPxDAT寄存器它用于读写引脚,当引脚被设为输入时,读此寄存器得到对应引脚的电平状态是高还是低;当引脚被设为输出时,写此寄存器相应位可令此引脚输出高低电平。3)GPxUP寄存器GPxUP,某位为1时,相应引脚无内部上拉电阻;为1时,相应引脚使用内部上拉电阻上拉电阻、下拉电阻的作用在于,当GPIO引脚出于第三态(非高低电平,而是高阻态,即相当于没接芯片)时,它的电平状态由上拉电阻和下拉电阻确定。

软考嵌入式系统设计师学习笔记

目录 第一章嵌入式系统需求分析与体系结构设计 (5) 1.1软件需求分析 (5) 1.1.1 关于选择裸机开发还是基于实时操作系统 (5) 1.1.2 实时操作系统优点 (5) 1.1.3 实时操作系统的时间性能评估 (5) 1.2体系结构设计 (5) 1.2.1系统需求 (5) 1.2.2 规格说明书 (5) 1.2.3 体系结构设计 (6) 1.3项目进度管理 (6) 1.3.1 快速原型开发法的优缺点 (6) 1.3.2 项目管理的内容 (6) 1.3.3 PERT图及关键路径 (6) 1.4 UML(统一建模语言)建模技术 (6) 1.4.1面向对象方法的优点 (6) 1.4.2类图概念及六种关系 (7) 1.4.3序列图概念 (7) 1.4.4基于UML嵌入式软件开发环境 (7) 第二章接口电路设计及编程 (8) 2.1外接Flash Memory (8) 2.1.1 关于NOR Flash 和NAND Flash的选型 (8) 2.1.2 关于大小端问题 (8) 2.2 键盘接口电路 (8) 2.1.2 键盘结构的分类 (8) 2.3 LCD接口电路设计及编程 (9) 2.3.1 LCD显示方式 (9) 2.3.2 LCD显示方法 (9) 2.3.3 VCLK计算方法 (9) 2.4 串口通信技术 (10) 2.4.0 同步和异步传输的区别 (10)

2.4.2 异步串行总线 (10) 2.4.3 零调制解调器(Null Modem) (11) 2.4.5 UART波特率 (11) 2.4.6 CAN总线 (11) 2.5 网络接口技术 (12) 2.5.1网络协议层次结构 (12) 2.5.2各协议特点 (12) 2.5.3嵌入式系统下以太网接口实现的方法 (13) 2.5.4 IEEE 802.3标准MAC帧结构 (13) 2.5.5网络接口控制芯片RTL8019的复位方式 (13) 第三章嵌入式软件程序设计 (14) 3.0软件开发模型 (14) 3.1任务实现技术 (14) 3.1.1 任务状态转换图 (14) 3.1.2 任务的创建 (15) 3.1.3 任务的切换 (15) 3.2任务管理技术 (15) 3.2.1 选择嵌入式软件平台时考虑的因素 (15) 3.2.2嵌入式系统存储方案 (15) 3.2.3如何区分进程和线程 (16) 3.3程序设计技术 (16) 3.3.1 初始化模块 (16) 3.4软件分析技术 (16) 3.4.1 选择嵌入式实时操作系统主要考虑的方面 (16) 3.4.2 选择数据IO处理方法要考虑的方面 (16) 3.5文件系统管理 (16) 3.5.1 嵌入式文件系统的功能 (16) 3.5.2 文件控制块 (17) 3.5.3 文件的物理结构 (17) 3.5.4 FAT文件系统 (17)

嵌入式系统大作业

嵌入式系统大作业-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

基于嵌入式系统的车载GPS导航系统的设计 1 设计目的与功能 1.1 设计目的 随着人们经济基础增强,安全意识增强的基础上,很多人都会选择车载GPS 导航设备,所以制造功能强大,价格低廉的车载GPS导航设备是有很大市场和发展前景的。由于导航仪投入小,外壳模块、芯片等材料市场供应量大,这也是我选择设计车载GPS导航设备的理由。为了满足不同用户的不同需求,我想设计一款内置四维地图系统。 1.2设计功能 1提供准确无误的全3D实景导航; 2附带全国沿途咨询; 3具有视频、音乐播放等娱乐功能。 2.需求分析调研 2.1 产品的硬件组成(型号、类型、电气特性、选择的理由等) (1)处理器:S3C2440A 400MHz,S3C2440A 是三星公司生产推出的基于ARM920T的32位RISC嵌入式微处理器,S3C2440A采用了ARM920T的内核,0.13um的CMOS标准宏单元和存储器单元。 采用ARM920T CPU内核支持ARM调试体系结构。 (2)储存模块:SDRAM , K4M561633-75 , 64MByte Nand FLASH, K9F1208G 64MByte同步动态随机存储器,工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;存储阵列需要不断的刷新来保证数据不丢失;数据不是线性依次存储,而是自由指定地址进行数据读写。 (3)音频模块:PHILIPS公司的UDA1341TS是一块功能强大的专用语音处理芯片。本设计使用的AT91RM9200处理器具有一个IIS音频接口,此接口

嵌入式学习心得体会

嵌入式学习心得体会 BAKYANNMYRADOV 01 这学期才接触嵌入式系统感觉还称不上入门,我通过学习知道了嵌入式的发展前景很大,各个领域都用到了嵌入式,学好嵌入式不愁没饭吃。 广义上讲,凡是带有微处理器的专用软硬件系统都是嵌入式系统。如各类单片机和DSP系统。从狭义上讲,那些使用嵌入式微处理器构成独立系统,具有自己操作系统,具有特定功能,用于特定场合的专用软硬件系统称为嵌入式系统。嵌入式系统由嵌入式硬件与嵌入式软件组成; 嵌入式硬件以芯片、模板、组件、控制器形式埋藏于设备部。理解“嵌入”的概念主要从三个方面上来理解。 1、从硬件上,将基于CPU的处围器件,整合到CPU芯片部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。IXP系列最高主频可以达到1.8G,支持2G存,1G×10或10G×1的以太网口或Febre channel的光通道。IXP系列应该是目标基于ARM体系统结构下由intel进行整合后成Xscale核的最高的处理器了。

2016年下半年嵌入式系统设计师(中级)上午选择+下午案例真题答案+解析完整版(全国计算机软考)

2016年下半年嵌入式系统设计师真题+答案解析 上午选择 1、(1)用来区分在存储器中以二进制编码形式存放的指令和数据。 A. 指令周期的不同阶段 B. 指令和数据的寻址方式 C. 指令操作码的译码结果 D. 指令和数据所在的存储单元 答案:A 指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。CPU执行指令的过程中,根据时序部件发出的时钟信号按部就班进行操作。在取指令阶段读取到的是指令,在分析指令和执行指令时,需要操作数时再去读操作数。 2、计算机在一个指令周期的过程中,为从内存读取指令操作码,首先要将(2)的内容送到地址总线上。 A. 指令寄存器(IR) B. 通用寄存器(GR) C. 程序计数器(PC) D. 状态寄存器(PSW) 答案:C CPU首先从程序计数器(PC)获得需要执行的指令地址,从内存(或

高速缓存)读取到的指令则暂存在指令寄存器(IR),然后进行分析和执行。 3、设16位浮点数,其中阶符1位、阶码值6位、数符1位、尾数8位。若阶码用移码表示,尾数用补码表示,则该浮点数所能表示的数值范围是(3)。 A. -264~(1-2-8)264 B. -263~(1-2-8)263 C. -(1-2-8)264~(1-2-8)264 D. -(1-2-8)263~(1-2-8)263 答案:B 浮点格式表示一个二进制数N的形式为N=2E×F,其中E称为阶码,F叫做尾数。在浮点表示法中,阶码通常为含符号的纯整数,尾数为含符号的纯小数。 指数为纯整数,阶符1位、阶码6位在补码表示方式下可表示的最大数为63(26-1),最小数为-64(-26)。尾数用补码表示时最小数为-1、最大数为1-2-8,因此该浮点表示的最小数为-263,最大数为(1-2-8)×263。 4、已知数据信息为16位,最少应附加(4)位校验位,以实现海明码纠错。 A. 3

嵌入式学习心得总结

嵌入式学习心得总结 4月10号,为期一个阶段的Linux开发基础培训课程圆满结束,回首这些天所留下的点点滴滴,感触深深,学习上知识点的积累,灵活运用的过程中感受到了Linux操作的快速高效性能,这也是我所追求的效率! 当初初涉培训课程的第一门课程时,都说Linux操作很繁琐复杂,心里总有些顾忌,带着种种不安与些许拼博的决心,开始了自我提升阶段的“充电”,由徐海兵老师教授我们基础课程的培训,我们则像着小学生般认真的记着笔记,仔细听着并学会如何去在实践中运用所学的Linux下的各种强大的命令集。 在Unit 1中,徐老师详细生动的为我们讲述了有关Linux的诞生、初成长以及辉煌的发展至今,今后应用范围则愈来愈广泛,讲解了为Linux这个伟大的OS做出巨大贡献的一位位出色的、伟大的人物,他们那种学习钻研的精神、锲而不舍的信念、勇于把握住难得的机会,从小处着手,踏踏实实的创造出了对人类科技发展做出卓越贡献的Linux(Unix)系统,他们的种种,都值得我们去深刻反省、刻苦学习、传承并永远发展下去。 查看ip地址和重启络服务是我学的第一个命令: ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到远程登录软件可用xmanager。 secureCRT是我们常用的,安装好后利用其登录到了Red hat Linux,需要知道Linux主机的ip 地址。徐老师为我们介绍了重要内容:SHELL,即运行程序的程序,如echo $SHELL可查看SHELL的环境变量是csh还是bash。(学习心得)指令pwd可查看当前所在路径,passwd:更改Linux下的密码,仅限root

2016年下半年嵌入式系统设计师考试上午真题(完整版)

2016年下半年嵌入式系统设计师考试上午真题(专 业解析+参考答案) 1、 ()用来区分在存储器中以二进制编码形式存放的指令和数据。 A、指令周期的不同阶段 B、指令和数据的寻址方式 C、指令操作码的译码结果 D、指令和数据所在的存储单元 2、 计算机在一个指令周期的过程中,为从内存读取指令操作码,首先要将()的内容送到地址总线上。 A、指令寄存器(IR) B、通用寄存器(GR) C、程序计数器(PC) D、状态寄存器(PSW) 3、 设16位浮点数,其中阶符1位、阶码值6位、数符1位、尾数8位。若阶码用移码表示,尾数用补码表示,则该浮点数所能表示的数值范围是()。 A、 B、 C、

D、 4、 已知数据信息为16位,最少应附加()位校验位,以实现海明码纠错。 A、3 B、4 C、5 D、6 5、 将一条指令的执行过程分解为取指、分析和执行三步,按照流水方式执行,若 取指时间、分析时间、执行时间,则执行完100条指令,需要的时间为()?t。 A、200 B、300 C、400 D、405 6、 以下关于Cache与主存间地址映射的叙述中,正确的是()。 A、操作系统负责管理Cache与主存之间的地址映射 B、程序员需要通过编程来处理Cache与主存之间的地址映射 C、应用软件对Cache与主存之间的地址映射进行调度 D、由硬件自动完成Cache与主存之间的地址映射

7、 下列算法中,可用于数字签名的是()。 A、RSA B、IDEA C、RC4 D、MD5 8、 下面不属于数字签名作用的是()。 A、接收者可验证消息来源的真实性 B、发送者无法否认发送过该消息 C、接收者无法伪造或篡改消息 D、可验证接受者合法性 9、 在网络设计和实施过程中要采取多种安全措施,下面的选项中属于系统安全需求的措施是()。 A、设备防雷击 B、入侵检测 C、漏洞发现与补丁管理 D、流量控制 10、

嵌入式系统设计课程设计

嵌入式理论及应用 设计题目:基于μC/OS-II8*8点阵的设计与制作 嵌入式系统设计课程设计 一、概述 1. 单片机介绍 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 2. 单片机历史 单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。 1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。 2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。 3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。 3. 单片机的应用领域 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 二、单片机的结构与原理 1.AT89C55芯片 AT89C55单片机芯片内部结构框图如图1所示。

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