中科大软院嵌入式期末总结

中科大软院嵌入式期末总结
中科大软院嵌入式期末总结

复习提纲:(C语言翻译汇编)

一、概述

1. 嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置

国内普遍认同的嵌入式系统定义为:

以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2.嵌入式系统的几个重要特征(简述5特征)

(1) 嵌入式系统工业是不可垄断的高度分散的工业

从某种意义上来说,通用计算机行业的技术是垄断的。

嵌入式系统则不同,它是一个分散的工业,充满了竞争、机遇与创新,没有哪一个系列的处理器和操作系统能够垄断全部市场。

(2)操作系统内核小

由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。

比如ENEA公司的OSE分布式系统,内核只有5K,而Windows的内核则要大得多。

(3)专用性强

嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植。

即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。

同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的概念。

(4)系统精简

嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。(5)高实时性OS

这是嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。软件代码要求高质量和高可靠性、实时性。

6)嵌入式软件开发走向标准化

嵌入式系统的应用程序可以没有操作系统直接在芯片上运行。

为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(Real-Time Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。

(7)嵌入式系统开发需要开发工具和环境

由于其本身不具备自主开发能力,即使设计完成以后,用户通常也是不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。

这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。

开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。

(8)嵌入式系统运行环境差异很大:

(9)嵌入式系统比通用PC系统资源少得多:

(10)一般的嵌入式系统具有低功耗、体积小、集成度高、成本低等特点:(11)建立完整的嵌入式系统的系统测试和可靠性评估体系,保证嵌入式系统高效、可靠、稳定工作:

(12)具有较长的生命周期

3.嵌入式系统的组成(最后的图,有印象)

嵌入式硬件系统

嵌入式处理器

各种类型存储器

模拟电路及电源

接口控制器及接插件

嵌入式软件系统

实时操作系统(RTOS)

板级支持包(BSP)

设备驱动(Device Driver)

协议栈(Protocol Stack)

应用程序(Application)

4.嵌入式系统的实时性

二、嵌入式系统设计方法、过程(2.3ppt)

1.交叉开发环境、

先在通用PC机上编程,然后通过交叉编译链接,将程序做成目标平台上可以运行的二进制代码格式。最后将程序下载到目标平台上的特定位置由目标板上启动代码运行这段二进制代码。

交叉开发:在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中运行调试的开发方式。

开发计算机一般称宿主机,嵌入式设备称为目标机,在宿主机上编译好的程序,下载到目标机上运行。

交叉开发环境一般由运行于宿主机上的交叉开发软件、宿主机到目标机的调试通道组成。

如基于ARM9、μCOS的嵌入式系统开发,需要安装交叉编译工具ADS 。

基于VxWorks的开发环境:Tornado

2.几种常用的调试方法、

指令集模拟器

一种利用PC机端的仿真开发软件模拟调试的方法。

如:Skyeye 清华大学陈渝主持的自由软件项目,https://www.360docs.net/doc/711905779.html, ARM公司的ARMulator模拟器

驻留监控软件

驻留监控程序运行在目标板上,PC机端调试软件可通过并口、串口、

网口与之交互,以完成程序执行、存储器及寄存器读写、断点设置等任务ARM公司的Angel是长驻在目标机Flash中的监控程序

J TAG仿真器(基于JTAG的ICD(In-Circuit Debugger))

通过ARM芯片的JTAG边界扫描口与ARM核进行通信,不占用目

标板的资源,是目前使用最广泛的调试手段

在线仿真器ICE(In-Circuit Emulator)

使用仿真头代替目标板上的CPU,可以完全仿真ARM芯片的行为。但结构较复杂,价格昂贵,通常用于ARM硬件开发中

(ARM-LINUX开发一般过程不要求)

三、Bootloader(3个常用)

1、什么是bootloader

Bootloader,为引导加载程序,是嵌入式系统加电后运行的第一段代码,相当于PC机的BIOS。

Bootloader的位置:通常固化在硬件上的某个固态存储设备上,加电后自启动。Bootloader功能:初始化硬件设备、建立内存空间的映射图(有的CPU没有内存映射功能如 S3C44B0x),将系统的软、硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。

Bootloader的地址:在嵌入式系统中,系统加电复位后,几乎所有的CPU都从由复位地址上取指令。

2、Bootloader操作模式

两种不同的操作模式:“启动加载”模式和“下载”模式。其区别对于开发人员才有意义。从最终用户的角度看,Bootloader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载模式的区别。

启动加载(Bootloading)模式

启动加载模式称为“自举”(Autonomous)模式。即Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM 中运行,整个过程并没有用户的介入。

启动加载模式是Bootloader的正常工作模式,在嵌入式产品发布的时侯,Bootloader必须工作在这种模式下。

下载(Downloading)模式

下载方式:在这种模式下,目标机上的Bootloader将通过串口连接或网络连接等通信手段从主机下载文件。

下载内容及存储:主要是下载内核映像和根文件系统映像等。从主机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后再被Bootloader写到目标机上的FLASH 类固态存储设备中。

下载模式应用场合:Bootloader的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用到这种工作模式。

用户应用接口:工作于这种模式下的Bootloader通常都会向它的终端用户提供一个简单的命令行接口。如在RedBoot下,将出现“RedBoot>”提示符;在vivi Bootloader 下出现“vivi>”提示符。

3、Bootloader启动过程

Bootloader的启动可以分为两个阶段

1、第一阶段

阶段1主要包含依赖于CPU体系结构及硬件设备的初始化等。通常都用汇编语言来实现。这个阶段的任务有5:

(1)、基本的硬件设备初始化

这是Bootloader 一开始就执行的操作,其目的是为阶段2 的执行、以及随后kernel 的执行准备好一些基本的硬件环境。

它通常包括以下工作:

关闭处理器内部指令/数据cache等

关闭中断

关闭看门狗

配置PLL

配置内存

初始化各工作模式的堆栈

配置中断

拷贝RW段,初始化ZI段

(2)、为阶段2代码准备RAM空间

为了获得更快的执行速度,通常把阶段2 的代码加载到RAM 空间中来执行。

准备RAM空间考虑的因素:阶段2代码大小、堆栈、页大小(4KB的倍数)、安排位置等。

(3)、拷贝阶段2代码到RAM空间

(4)、设置好堆栈

堆栈指针sp设置在1MB 的RAM 空间的最顶端(堆栈向下生长)。

(5)、跳转到阶段2的C程序入口点

在上述一切都就绪后,就可以跳转到Bootloader 的stage2 去执行了。

2、第二阶段

阶段2通常用C语言来实现,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的主要任务有5:

(1)、初始化本阶段要使用到的硬件

至少初始化一个串口,以便和终端用户进行I/O 输出信息等。

(2)、检测系统内存映射(memory map)

所谓内存映射,就是指在整个物理地址空间中有哪些地址范围被分配用来作为系统的RAM 单元。为后面使用RAM、运行程序做好准备。

(3)、将kernel和根文件系统映像从flash读到RAM空间

(4)、为kernel设置启动参数

这是在调用内核之前应该做的准备工作。Linux 2.4.x 以后的内核都期望以标记列表(tagged list)的形式来传递启动参数。

启动参数标记列表方法:以ATAG_CORE标记开始,以ATAG_NONE标记结束。

在嵌入式Linux 系统中,通常需要由Boot Loader 设置的启动参数有:ATAG_CORE、ATAG_MEM(内存映射)、ATAG_NONE等。

(5)、调用内核

Bootloader调用Linux kernel的方法是直接跳转到内核的第一条指令处。在跳

转时必须满足下列条件:

1)、CPU寄存器的设置:R0为0;R1为机器类型ID;R2为启动参数,标记列表在RAM中的起始基地址。(机器类型参见linux/arch/arm/tools/mach-types 目录)

2)、CPU模式:CPU必须设置为SVC模式,必须禁止中断(IRQs和FIQs)。

3)、MMU 和Cache的设置:MMU 必须关闭;指令Cache 可以打开也可以关闭;数据Cache 必须关闭。

4、有哪些常用的Bootloader

Bootloader是严重地依赖于硬件而实现的。每种不同体系结构的处理器都有不同的Bootloader。

1、vivi vivi是韩国Mizi公司开发的Bootloader,适用于ARM9处理器。

2、RedBoot RedBoot即红帽(Red Hat)嵌入式调试引导程序,是一种用于嵌入式系统的独立开放源代码引导/装载器。

3、U-Boot U-Boot(Universal Bootloader)由德国DENX小组开发,是一款目前功能较为强大的开源Bootloader程序,它支持多种处理器平台,包括ARM、PowerPC、MIPS等。

四、嵌入式微处理器

1、嵌入式系统硬件基础知识(体系结构,指令集)

1)冯·诺依曼体系结构和哈佛体系结构

冯·诺依曼体系结构

存储器

CPU

PC 数据

地址

数据和指令都存储在一个存储器中的计算机被称为冯·诺依曼机

指令的执行周期T

1)取指令(Instruction Fetch):TF

2)指令译码(Instruction Decode):TD

3)执行指令(Instruction Execute):TE

4)存储(Storage):TS

每条指令的执行周期:T= TF+TD+TE+TS

冯·诺依曼体系结构特点:

1)数据与指令都存储在存储器中

2)被大多数计算机所采用

3)冯诺依曼体系: 英特尔公司的8086,英特尔公司的其他中央处理器、ARM的ARM7、MIPS公司的MIPS处理器。

哈佛体系结构 数据存储器CPU PC

数据

地址

程序存储器地址

数据

数据和指令存储在各自独立的存储器中的计算机体系结构称为哈佛体系结构 哈佛体系结构特点:

1)程序存储器与数据存储器分开

2)提供了较大的数据存储器带宽

3)适合于数字信号处理

4)大多数DSP 都是哈佛结构

5)Microchip 公司的PIC16芯片 、摩托罗拉公司的MC68系列、Zilog 公司的Z8系列、ATMEL 公司的AVR 系列和ARM 公司的ARM9、ARM10和ARM11。

很难在哈佛机上编写出一个自修改程序(写入数据值然后使用这些值作为指令的程序

2)CISC 与RISC

CISC :复杂指令集(Complex Instruction Set Computer )

8/2原则:80%的程序只使用20%的指令

具有大量变长形式的不同指令

大多数程序只使用少量的指令就能够运行。

PUSH AX

MOV AL,80H

MOV AX,1090H

RISC :精简指令集(Reduced Instruction Set Computer)

RISC 是在开发高性能微处理器过程中的一个进步

在通道中只包含最有用的指令(少而简单)

确保数据通道快速执行每一条指令

使CPU 硬件结构设计变得更为简单

指令格式和长度固定,且指令类型很少、指令功能简单、寻址方式少而简单,指令译码控制器采用硬布线逻辑,这样易于流水线的实现,进而获得高性能; 由于RISC 指令系统强调了对称、均匀、简单,使得程序的优化编译效率更高; 大多数指令单周期完成;

分开的load-store 结构的存取指令,也只有load-store 结构的存取指令访问存储器,而数据处理指令只访问寄存器。而CISC 处理器一般允许将存储器中的数据作为数据处理指令的操作数;

3)流水线、超标量

4)缓存

如何减少CPU与内存之间的速度差异?(4种)

1、为什么采用高速缓存

微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。

2、高速缓存的工作原理

高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。

5)总线和总线桥

ARM微控制器使用的是AMBA总线体系结构

AMBA(Advanced Microcontroller Bus Architecture)是ARM公司公布的总线标准,先进的AMBA规范定义了三种总线:

AHB总线(Advanced High-performance Bus):用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序参考同一个时钟沿。

ASB总线(Advanced System Bus):用于连接高性能系统模块,它支持突发数据传输模式。

APB总线(Advance Peripheral Bus):是一个简单接口支持低性能的外围接口。

2、ARM编程模型(2工作状态,7种模式,重点)

ARM处理器的几大特点如下:

小体积、低功耗、成本低、高性能;

支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;大量使用寄存器,大多数数据操作都在寄存器中完成,指令执行速度更快;

寻址方式灵活简单,执行效率高;

指令长度固定;

全球众多的合作伙伴。

当前ARM体系结构的扩充包括:

Thumb:16位指令集,用以改善代码密度;

DSP:用于DSP应用的算术运算指令集;

Jazeller:允许直接执行Java代码的扩充。

ARM7TDMI 处理器有两种工作状态:*******************

ARM - 32-bit, 按字排列的ARM指令集

Thumb -16-bit, 按半字排列的Thumb指令集

测试编译器属哪种模式

下面这段代码可以用来测试一下你的编译器是大端模式还是小端模式:short int x;

char x0,x1;

x=0x1122;

x0=((char*)&x)[0]; //低地址单元

x1=((char*)&x)[1]; //高地址单元

若x0=0x11,则是大端; 若x0=0x22,则是小端......

上面的程序还可以看出,数据寻址时,用的是低位字节的地址。

3、ARM 指令集中常用指令(寻址方式、数据处理指令、加载/存储指令等)*

4、汇编语言与C/C++的混合编程(3种编程方式,APCS,ATPCS)

APCS(ARM Produce Call Standard)是ARM程序中子程序调用的基本规则,目的是为了使单独编译的C语言程序和汇编程序之间能够相互调用。这些基本规则包括子程序调用过程中寄存器的使用规则、数据栈的使用规则和参数的传递规则。

汇编语言与C/C++的混合编程通常有以下几种方式:

-在C/C++代码中嵌入汇编指令。

-在汇编程序和C/C++的程序之间进行变量的互访。

-汇编程序、C/C++程序间的相互调用。

在以上的几种混合编程技术中,必须遵守一定的调用规则,如物理寄存器的使用、参数的传递等。

一般情况:

程序的初始化部分用汇编语言完成,

然后用C/C++完成主要的编程任务,

汇编程序和C/C++程序之间一般没有参数的传递,也没有频繁的

相互调用,因此,整个程序的结构显得相对简单,容易理解。

5、嵌入式程序设计技巧(时间换空间,8个例子)

变量定义

参数传递

循环条件

以空间换时间

数学方法解决问题

使用位操作

嵌入汇编

五、硬件系统结构

1、S3C2410存储系统组织(8个端口,确定宽度)

S3C2410X有117个输入/输出端口。这些端口是:

A口(GPA):23个输出口

B口(GPB):11个输入/输出口

C口(GPC):16个输入/输出口D口(GPD):16个输入/输出口E口(GPE):16个输入/输出口F口(GPF):8个输入/输出口G口(GPG):16个输入/输出口H口(GPH):11个输入/输出口

2、S3C2410的外设管理

3、I/O口的组织及一般应用(引脚)、

4、UART

S3C2410 的UART(通用异步串行口)有三个独立的异步串行I/O 端口:UART0、UART1、UART2,每个串口都可以在中断和DMA 两种模式下进行收发。UART 支持的最高波特率达230.4kbps。

每个UART 包含:波特率发生器、接收器、发送器和控制单元。波特率发生器以PCLK或UCLK为时钟源。发送器和接收器各包含1个16 字节的FIFO 寄存器和移位寄存器。

S3C2410 的3个UART都有遵从1.0规范的红外传输功能,UART0、UART1有完整的握手信号,可以连接MODEM。

当发送数据的时候,数据先写到FIFO 然后拷贝到发送移位寄存器,然后从数据输出端口(TxDn)依次被移位输出。被接收的数据也同样从接收端口(RxDn)移位输入到移位寄存器,然后拷贝到FIFO 中。

编写一程序,使用S3C2410X的UART2进行串行数据收发,要求用脉冲请求中断的方式、使用收/发FIFO,8个数据位、1个停止位、不校验,波特率为125kb/s。设Pclk为50MHz。(提示:主程序对UART2初始化、引脚配置、中断初始化等,并进行一次发送;中断服务程序进行数据收发,标签清除中断请求标志和中断服务标志)

解:

(1)计算波特率除数:

由公式:UBRDIVn=(int)(CLK/(f B*16))-1

这里:Pclk=50MHz, f B = 125kb/s

计算得:UBRDIVn=25 -1=24

(2)UART2控制寄存器:

线路控制寄存器:ULCON2=0 0 000 0 11=0x03

含义:非红外、不校验、1个停止位、8个数据位

控制寄存器:UCON2=0b 0 0 0 0 0 0 0 01 01=0x05

含义:选Pclk、发/收中断脉冲请求、关闭接收超时中断、允许接收错误中断、不回送、不发送暂停信号、发/收用中断方式。

FIFO控制寄存器:UFCON2=0b 10 01 0 0 0 1=0x91

含义:发/收FIFO选8字节触发、保留位为0、不复位发/收FIFO、使能FIFO。

(3)引脚配置

需要设置TxD2、RxD2,它们对应GPH6、GPH7,在GPH配置寄存器GPHCON 中的位置为:

0b 1 0 1 0 ************

方法:GPHCON= GPHCON&~(0xF<<12)|(0xA<<12)

(4)中断寄存器设置

中断模式寄存器:INTMOD&=~(1<<15)

INT_UART2位于第15位,将UART2设置为IRQ中断

中断屏蔽寄存器:INTMSK&=~(1<<15)

中断优先级寄存器PRIORITY:

不设置,使用固定优先级。

子中断屏蔽寄存器:INTSUBMSK&=~(7<<6)

INT_ERR2、INT_TXD2、INT_RXD2位于子中断屏蔽寄存器中的8、7、6位。

(5)在中断服务程序中对寄存器的操作

清除中断标志寄存器相应位:

SRCPND&=~(1<<15)

清除中断服务寄存器相应位:

INTPND&=~(1<<15)

5、时钟和功耗管理(解决方案简述2410的功耗解决方案)

时钟功能

有两个锁相环MPLL、UPLL(Phase-Locked Loop )产生系统所需要的不同频率的时钟。

(1)为CPU产生FCLK时钟

(2)为AHB产生HCLK时钟

使用HCLK的设备:中断控制器、存储器管理器、DMA控制器、LCD控制器、FLASH 控制器、USB Host(不用PLL时)、总线控制器、片外设备。

(3)为APB产生PCLK时钟

使用PCLK的设备:117个通用I/O口GPIO、ADC、5个定时器与4个PWM、3个UART、2个SPI、IIC、USB Device (不用PLL时)、RTC、WDT、SD卡接口、IIS接口

(4)为USB (Host and Device)产生UCLK时钟(48MHz)

2、电源管理功能

具有4种电源管理模式:正常模式、慢时钟模式、空闲模式、掉电模式。(1)正常模式:

1)锁相环工作;2)为CPU和所有片内外设提供时钟。

此模式系统功耗最大。

(2)慢时钟模式:

锁相环不工作,CPU等直接使用原始时钟、或原始时钟的分频工作。

此模式工作时钟频率低而使功耗低,并且锁相环不工作也使功耗降低。(3)空闲模式:

停止为CPU提供时钟,CPU不工作(其外设均工作)。

退出方法:任何中断请求可唤醒CPU工作,退出空闲模式。

(4)断电模式:

时钟模块断电,除了唤醒电路之外所有部分均不供电。系统需分成两部分供电。此模式功耗最低。必须设置有外中断

退出方法:用中断唤醒。(1)外部中断EINT0---15;(2)实时钟报警中断。

如何降低2410的功耗

在能够满足功能正常的前提下,尽可能选择低电压工作的CPU能够在总体功耗方面得到较好的效果。对于已经选定的CPU来讲,降低供电电压和工作频率,也是一条节省功率的可行之路。

CPU采用内置Flash的方式

如果可以通过选取合适的前后级芯片来避免Buffer的使用,对于能量来讲是一个很大的节约。

我们可以通过控制CPU进入不同的模式来达到省电的目的

关闭不需要的外设控制器

在适当的情况下使用DC-DC的电压转换线路,可以有效地节约能量

6、程序实例

六、实时操作系统

1、实时操作系统概念(可重入,任务集翻转)

RTOS的基本特征:

高效的任务管理

1.支持多任务

2.优先级管理

3.任务调度:基于优先级的抢占式调度、时间片轮转调度的算法

4.支持快速而确定的上下文切换

快速灵活的任务间通信

1.信号量:二进制、互斥、计数器

2.通信机制:消息队列、管道等

高度的可剪裁性

动态链接与部件增量加载

快速有效的中断和异常事件处理

优化的浮点支持

动态内存管理

可重入型函数

可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候

都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在CPU寄存器中或堆栈中,或对全局变量予以保护。

一个不可重入型函数的例子

int Temp;

Void swap (int *x,int*y)

{

Temp=*x;

*X=*Y;

*y=Temp;

}

使用以下技术之一即可使Swap()函数具有可重入性:

l 把Temp定义为局部变量

l 调用Swap()函数之前关中断,调用后再开中断

l 用信号量禁止该函数在使用过程中被再次调用

一个可重入型函数的例子

Void swap (int *x,int*y)

{

int Temp;

Temp=*x;

*X=*Y;

*y=Temp;

}

优先级反转

多任务内核应允许动态改变任务的优先级以避免发生优先级反转现象。为防止发生优先级反转,内核能自动变换任务的优先级,这叫做优先级继承(Priority inheritance)

但μC/OS-Ⅱ不支持优先级继承,一些商业内核有优先级继承功能/

2、系统时钟和定时器

C/OS的性能特点(列举性能特点)

可移植性(Portable)

绝大部分 C/OS-II的源码是用移植性很强的ANSI C写的。

和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得 C/OS-II便于移植到其他微处理器上。汇编语言写的部分只有200行左右。

C/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。移植范例的源代码可以从因特网上下载。

可裁剪(Scalable)

可以只使用 C/OS-II中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个 C/OS-II调用,而另一个产品则使用了几乎所有 C/OS-II 的功能,这样可以减少产品中的 C/OS-II所需的存储器空间(RAM和ROM)。这种可剪裁性是靠条件编译实现的。

多任务

(完整版)单片机知识点总结

单片机考点总结 1.单片机由CPU、存储器及各种I/O接口三部分组成。 2.单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。 3.MCS-51系列单片机为8位单片机,共40个引脚,MCS-51基本类型有8031、8051 和8751. (1)I/O引脚 (2)8031、8051和8751的区别: 8031片内无程序存储器、8051片内有4KB程序存储器ROM、8751片内有4KB程序存储器EPROM。 (3)

4.MCS-51单片机共有16位地址总线,P2口作为高8位地址输出口,P0口可分时复用 为低8位地址输出口和数据口。MCS-51单片机片外可扩展存储最大容量为216=64KB,地址范围为0000H—FFFFH。(1.以P0口作为低8位地址/数据总线;2. 以P2口作为高8位地址线) 5.MCS-51片内有128字节数据存储器(RAM),21个特殊功能寄存器(SFR)。(1)MCS-51片内有128字节数据存储器(RAM),字节地址为00H—7FH; 00H—1FH: 工作寄存器区; 00H—1FH: 可位寻址区; 00H—1FH: 用户RAM区。 (2)21个特殊功能寄存器(SFR)(21页—23页);

(3)当MCS-51上电复位后,片内各寄存器的状态,见34页表2-6。 PC=0000H, DPTR=0000H, Acc=00H, PSW=00H, B=00H, SP=07H, TMOD=00H, TCON=00H, TH0=00H, TL0=00H, TH1=00H, TL1=00H, SCON=00H, P0~P3=FFH 6. 程序计数器PC:存放着下一条要执行指令在程序存储器中的地址,即当前PC值或现行值。程序计数器PC是16位寄存器,没有地址,不是SFR. 7. PC与DPTR的区别:PC和DPTR都用于提供地址,其中PC为访问程序存储器提供地址,而DPTR为访问数据存储器提供地址。 8. MCS-51内部有2个16位定时/计数器T0、T1,1个16位数据指针寄存器DPTR,其中MOVE DPTR, #data16 是唯一的16位数据传送指令,用来设置地址指针DPTR。(46页) 定时/计数器T0和T1各由2个独立的8位寄存器组成,共有4个独立寄存器:TH1、TL1、TH0、TL0,可以分别对对这4个寄存器进行字节寻址,但不能吧T0或T1当作1个16位寄存器来寻址。即:MOV T0,#data16 ;MOV T1,#data16 都是错的,MOV TH0,#data;MOV TL0,,#data是正确的。 9.程序状态字寄存器PSW(16页) (1)PSW的格式: D7 D6 D5 D4 D3 D2 D1 D0 PSW D0H (2)PSW寄存器中各位的含义; Cy:进位标志位,也可以写为C。 Ac:辅助进位标志位。

中科大软件学院C+考试试卷

《面向对象编程技术》试卷 注:1)请将答案写在答题纸上,写在试卷上不算分。答题纸在试卷的最后页。 2)交卷时,试卷和答题纸一起交。 一、单选题 (每小题1.5分,共30分) 1. C++中,以下有关构造函数的叙述不正确的是 ______ 。 A. 构造函数名必须和类名一致 B. 构造函数在定义对象时自动执行 C. 构造函数无任何函数类型 D. 在一个类中构造函数有且仅有一个 2.以下叙述不正确的是 ______ 。 A. 在类的定义中,通常是成员变量描述对象的属性;用成员函数描述对象的行为 B. 类的一个成员只能具有一种访问控制属性 C. 构造函数和析构函数是特殊的成员函数,因此不允许重载 D. 通过对象只能访问类的公有成员 3. 以下关于虚函数的叙述不正确的是 ______ 。 A. 虚函数属于成员函数 B. 虚函数不允许说明成静态的 C. 凡是虚函数必须用virtual说明 D. 虚函数可以被继承 4. cout是I0流库预定义的______ 。 A.类 B. 对象 C. 包含文件 D. 常量 5.面向对象程序设计中的数据隐藏指的是______ 。 A.输入数据必须输入保密口令 B.数据经过加密处理 C. 对象内部数据结构上建有防火墙D.对象内部数据结构的不可访问性6.拷贝(复制)构造函数的作用是______ 。 A.进行数据类型的转换 B.用对象调用成员函数 C.用对象初始化对象D.用一般类型的数据初始化对象 7. 下列不是描述类的成员函数的是______ 。 A.构造函数 B.析构函数 C.友元函数 D.拷贝构造函数 8. 如果类A被说明成类B的友元,则______ 。 A. 类A的成员即类B的成员 B. 类B的成员即类A的成员 C. 类A的成员函数不得访问类B的成员 D. 类B不一定是类A的友元 9. 对于任何一个类,析构函数最多有______ 个。 A. 0 B. 1 C. 2 D. n 10. 下列特性中,C与C++共有的是______ 。 A.继承 B.封装 C.多态性 D.函数定义不能嵌套 11. 在公有继承的情况下,基类公有和保护成员在派生类中的访问权限______ 。 A. 受限制 B. 保持不变 C. 受保护 D. 不受保护 12. 通过______ 调用虚函数时,采用动态束定。 A. 对象指针 B. 对象名 C. 成员名限定 D. 派生类名 13. C++ 类体系中,不能被派生类继承的有______ 。 A. 成员转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数 14. 假定 ab 为一个类,则执行 ab x;语句时将自动调用该类的______ 。 A. 有参构造函数 B. 无参构造函数 C. 拷贝构造函数 D. 赋值构造函数 15. 静态成员函数不能说明为______ 。 A. 整型函数 B. 浮点函数 C. 虚函数 D. 字符型函数 16. 在 C++ 中,数据封装要解决的问题是______ 。 A. 数据规范化排列 B. 数据高速转换 C. 避免数据丢失 D. 保证数据完整性

嵌入式知识点整理

第一章 一:嵌入式系统基础知识 第二章 一:CM3 1.Cortex-M3 是一个32 位处理器内核。内部的数据路径是32 位的,寄存器是32 位的,存储器接口也是32 位的。CM3 采用了哈佛结构,拥有独立的指令总线和数据总线。 2.程序计数寄存器 R15 :程序计数寄存器,指向当前程序地址。 3.特殊功能寄存器 (1)程序状态字寄存器组(PSRs)记录ALU 标志(0 标志,进位标志,负数标志,溢出标志),执行状态,以及当前正服务的中断号; (2)中断屏蔽寄存器组:PRIMASK 失能所有的中断、FAULTMASK 失能所有的fault、BASEPRI 失能所有优先级不高于某个具体数值的中断; (3)控制寄存器(CONTROL ),定义特权状态(见后续章节对特权的叙述),并且决定使用哪一个堆栈指针; 4.Cortex-M3 处理器支持两种处理器的操作模式,还支持两级特权

操作。 两种操作模式:(1)处理者模式(handler mode) 异常服务例程的代码—包括中断服务(2)线程模式(thread mode)普通应用程序的代码; 两级特权:特权级和用户级,提供一种存储器访问保护机制,使得普通用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。 复位后,处理器默认进入线程模式,特权级访问; a.在 CM3 运行主应用程序时(线程模式),既可以使用特权级, 也可 以使用用户级;但是异常服务例程必须在特权级下执行; b.在特权级下,程序可以访问所有范围的存储器,并且可以执行所 有指 令,包括切换到用户级; c.从用户级到特权级的唯一途径就是异常,用户级的程序必须执行 一条系统调用指令(SVC)触发 SVC 异常,然后由异常服务例程接管,如果批准了进入,则异常服务例程修改 CONTROL 寄存器,才能在用户级的线程模式下重新进入特权级; 5.异常以及异常类型 异常:在 ARM 编程领域中,凡是打断程序顺序执行的事件,都被称为异常(exception) 。包括:外部中断、不可屏蔽中断、指令执行了“非法操作”或者访问被禁的内存区间产生的各种错误 fault。

中科大软院数据库考试题

一、给定关系 R(A,B) 和 S(B,C) ,将下面的关系代数表达式转换为相应的SQL语句: π (attribute-list) [ (condition) [ R ? S ] ] 二、Megatron 747 磁盘具有以下特性: 1)有8个盘面和8192个柱面 2)盘面直径为英寸,内圈直径为英寸 3)每磁道平均有256个扇区,每个扇区512字节 4)每个磁道10%被用于间隙 5)磁盘转速为 7200 RPM 6)磁头启动到停止需要1ms,每移动500个柱面另加1ms 回答下列有关Megatron 747的问题(要求写出式子并且计算出结果,精确到小数点后两位): 1)磁盘容量是多少GB 2)如果一个块是8KB,那么一个块的传输时间是多少ms 3)平均寻道时间是多少ms 4)平均旋转等待时间是多少ms 三、下面是一个数据库系统开始运行后的undo/redo日志记录,该数据库系统支持simple checkpoint (1)(2)(3) 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) 17) 18) 设日志修改记录的格式为 ,(1)、(2)、(3)为三种故障情形下磁盘日志内容,请分别给出这三种情况下数据库系统的恢复过程以及数据元素A, B, C, D, E, F和G 在执行了恢复过程后的值。

嵌入式系统原理与应用复习知识点总结

第一章 1、嵌入式系统的应用范围:军事国防、消费电子、信息家电、网络通信、工业 控制。 2、嵌入式系统定义:嵌入式系统是以应用为中心,以计算机技术为基础,软件 与硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专 用计算机系统。(嵌入式的三要素:嵌入型、专用性与计算机系统)。 3、嵌入式系统的特点:1)专用性强;2)实时约束;3)RTOS;4)高可靠性;5) 低功耗;6)专用的开发工具和开发环境;7)系统精简; 4、嵌入式系统的组成: (1)处理器:MCU、MPU、DSP、SOC; (2)外围接口及设备:存储器、通信接口、I/O 接口、输入输出设备、电源等;(3)嵌入式操作系统:windows CE、UCLinux、Vxworks、UC/OS; (4)应用软件:Bootloader 5、嵌入式系统的硬件:嵌入式微处理器(MCU、MPU、DSP、SOC),外围电路, 外部设备; 嵌入式系统的软件:无操作系统(NOSES),小型操作系统软件(SOSE)S,大型 操作系统软件(LOSES)注:ARM 处理器三大部件:ALU、控制器、寄存器。 6、嵌入式处理器特点:(1)实时多任务;(2)结构可扩展;(3)很强的存储区 保护功能;(4)低功耗; 7、DSP处理器两种工作方式:(1)经过单片机的DSP可单独构成处理器;(2) 作为协处理器,具有单片机功能和数字处理功能; 第二章 1、IP核分类:软核、固核、硬核; 2、ARM 处理器系列:(1)ARM7系列(三级流水,thumb 指令集,ARM7TDMI); (2)ARM9系列(DSP处理能力,ARM920T)(3)ARM/OE(增强DSP)(4)SecurCone 系列(提供解密安全方案);(5)StrongARM系列(Zntle 产权);(6)XScale系列(Intel 产权);(7)Cortex 系列(A:性能密集型;R:要求实时性;M:要求低 成本) 3、ARM 系列的变量后缀:(1)T:thumb 指令集;(2)D:JTAG调试器;(3)快

CORTEX-M4知识点总结

Cortex-M4内核知识点总结 余 明

目录 Cortex-M4内核知识点总结 (1) 1 ARM处理器简介 (4) 2 架构 (5) 2.1架构简介 (5) 2.2编程模型 (5) 2.3存储器系统 (8) 2.4复位和复位流程 (12) 3 指令集 (14) 3.1 CM4指令集特点 (14) 3.2 Cortex-M处理器间的指令集比较 (14) 3.3 汇编指令简要介绍 (14) 3.3.1 处理器内传送数据 (14) 3.3.2 存储器访问指令 (15) 3.3.3 算数运算 (16) 3.3.4 逻辑运算 (17) 3.3.5 移位 (17) 3.3.6 异常相关指令 (17) 4 存储器系统 (18) 4.1 存储器外设 (18) 4.2 Bootloader (18) 4.3位段操作 (19) 4.4 存储器大小端 (19) 5 异常和中断 (21) 5.1 中断简介 (21) 5.2异常类型 (21) 5.3 中断管理 (22) 5.4 异常或中断屏蔽寄存器 (23) 5.4.1 PRIMASK (23)

5.4.2 FAULMASK (M0中无) (23) 5.4.3 BASEPRI(M0中无) (23) 5.5 中断状态及中断行为 (23) 5.5.1 中断状态 (23) 5.5.2 中断行为 (24) 5.6 各Cortex-M处理器NVIC差异 (26) 6 异常处理 (28) 6.1 C实现的异常处理 (28) 6.2 栈帧 (28) 6.3 EXC_RETURN (29) 6.4异常流程 (30) 6.4.1 异常进入和压栈 (30) 6.4.2 异常返回和出栈 (31) 7 低功耗和系统控制特性 (32) 7.1 低功耗模式 (32) 7.1 SysTick定时器 (32) 8 OS支持特性 (34) 8.1 OS支持特性简介 (34) 8.2 SVC和PendSV (34) 8.3 实际的上下文切换 (35)

(完整版)中科大软院常见复试题目.doc

1.ipv4 的替代方案; 2.单链表原地逆向转置; 3.折半查找算法 4.简述操作系统中系统调用过程; 5.在数据库中什么是关系,它和普通二维表啥区别; 6.什么是原子操作; 7.路由协议有哪些; 8.进程的三种状态,以及之间转换的过程; 9.快速排序的基本过程; 10.什么叫视图?视图在数据库的第几层; 11.二叉树的搜索; 12.什么叫冲突?解决冲突的办法都有哪些; 13.java 与 C++区别; 14.深度、广度搜索的过程; 15.迪杰斯克拉算法的过程; 16.关系模式和关系; 17.数据链路停发协议,就是流量控制; 18.虚拟存储器及相关算法;段存储器; 19.进程线程树图; 20.传输等待协议; 21.堆栈排序及其与快速排序的不同; 22.386 的保护模式是什么; 23.页表; 24.ER图; 25.关系范式 26.链表查询某个元素,平均时间复杂度是多少; 27.路由协议有哪些; 28.网络服务质量包括哪些方面; 29.并发控制是为了保证事务的?; 30.什么是 DMA; 31.两个时钟不同步的设备怎么通信; 32.操作系统的调度算法有哪些; 33.单链表的原地逆置算法 34.数据库的两级模式以及它们的关系和作用(貌似是这样) 35.操作系统的进程调度算法有哪些,并介绍其中两种 36.计算机的一条指令有几个机器周期,为什么 37.原子操作, pv 操作的要点和注意事项 38.内核、芯片(记不清了) 39.DMA控制器的组成和工作原理 40.简述最短路径的迪杰斯特拉算法 41.什么是 P 操作与 V 操作。 42.一个深度为 N的满二叉树有多少个结点。 43.实现一个队列的方法 44.折半查找调节与时间复杂度

(完整word版)计算机三级嵌入式知识点(2),推荐文档

计算机三级嵌入式考试知识点整理 (计算机三级嵌入式考试只考选择题和填空题) 1.嵌入式系统的设计的三个阶段之一:1. 设计 2.实现 3.测试 2.RISC架构的ARM微处理器的一般特点:1. 体积小、低功耗 2.大量使用寄 存器3. 寻址方式灵活简 3.通常所讲的交叉编译就是在X86架构的宿主机上生成适用于ARM架构的格式 (elf)的可执行代码 4.Boot Loader阶段1所完成的步骤的是:1. 硬件设备初始化 2. 拷贝 Boot Loader的阶段2到RAM空间中3. 设置堆栈 5.ARM的7种运行状态之一:1. 快中断状态2. 中断状态3. 无定义状态4.管 理状态5.快速中断状态6.系统状态7.用户状态 6.命令可以把server的/tmp mount到client的/mnt/tmp并且是: mount-o ro server:/tmp/mnt/tmp 7.哪个GUI是由中国人主持的一个自由软件项目:MinuGUI 8.嵌入式图形用户接口(GUI)的主要特点:1. 运行时占用的系统资源少 2.模 块化结构,便于移植和定制3.可靠性高 9.RISC指令系统特点的是:1. 指令长度固定,指令种类少2.设置大量通用 寄存,访问存储器指令简单3. 选取使用频率较高的一些简单指令 10.通常所说的32位微处理器是指CPU字长为32位 11.在嵌入式软件交叉调试过程中,宿主机与目标机之间的连接与通信方式有:1. 串口2.并口3.网络4.JTAG 12.ADD R0,R1,[R2]属于寄存器间接寻址 13.ADD R0,R0,#1属于立即寻址 14.数据字越长则精度越高 15.典型的计算机系统结构是冯诺依曼体系结构 16.将传统的计算机系统芯片化,是嵌入式系统诞生后的∑发展模式发展模式 17.RISC指令系统特点的是:1. 大量使用寄存器2.采用固定长度指令格式3. 使用单周期指令4.寻址方式多 18.与通用操作系统相比嵌入式操作系统还必须具有的特点是:1. 强稳定性, 弱交互性2. 较强实时性 19.嵌入式系统产品:1. PDA 2.ATM机 3. 机顶盒 20.开源的嵌入式操作系统的是嵌入式linux 21.虚拟文件系统的是vfs 22.嵌入式系统通常执行特定功能 23.在嵌入式产品需求分析阶段完成的任务是操作系统和硬件选型 24.ARM处理器异常工作模式的是1. 快速中断模式2. 未定义模式 3. 数据访问 终止模式 25..嵌入式软件开发与通用软件开发增加了代码固化环节 26.嵌入式系统调试方式中不占用系统资源的调试方式是ICE在线仿真器 27.ARM汇编程序中实现程序跳转的方式使用跳转指令 28.ADD R0,R1,[R2]中的第二操作数属于寄存器间接寻址方式 29.烧写到FLASH里的是.bin格式的文件 二、填空题 1.ARM内核有(T)(D)(M)(I)四个功能模块。

java各知识点详细总结(毕向东笔记整理)

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java 虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目

中科大考博辅导班:2019中科大软件学院考博难度解析及经验分享

中科大考博辅导班:2019中科大软件学院考博难度解析及经验分享中国科学院大学2019年博士研究生招生统一实行网上报名。报考者须符合《中国科学院大学2019年招收攻读博士学位研究生简章》规定的报考条件。考生在报考前请联系所报考的研究所(指招收博士生的中科院各研究院、所、中心、园、台、站)或校部相关院系,了解具体的报考规定。 下面是启道考博辅导班整理的关于中国科学技术大学软件学院考博相关内容。 一、院系简介 中国科学技术大学是中国科学院直属的唯一院校,是一所以前沿科学和高新技术为主、科技人文与科技管理兼备的综合性全国名校,为国家教育重点建设的9所世界知名高水平研究型大学之一,在国际上享有较高的声誉。学校力争在2018年建校60周年前后,把学校建设成为“规模适度、质量优异、结构合理、特色鲜明”的世界知名的高水平研究型大学。目前,校本部共有10个学院、25个系和少年班,43个本科专业;一级学科博士学位授权点17个,国家重点学科19个,二级学科博士学位授权点89个,二级学科硕士学位授权点105个,有工商管理(MBA)、公共管理(MPA)和工程硕士3个专业硕士学位授权点;17个博士后流动站,45个博士后流动站专业,具备培养学士、硕士、博士的完整教育体系。其严谨务实的学风、创新探索的精神、高水平级的成果、国际化办学的追求,都使得这所年轻的研究型大学受到国际社会越来越强的关注 二、招生信息 中国科学技术大学软件学院博士招生专业有1个: 085271电子与信息 研究方向:不区分研究方向 三、报考条件 (1)中华人民共和国公民;拥护中国共产党的领导,愿意为祖国社会主义现代化建设服务;品德良好,遵纪守法,学风端正,无任何考试作弊、学术剽窃及其它违法违纪行为; (2)身体健康状况符合我校规定的体检要求,心理正常; (3)申请者原则上应来自国内重点院校或所在高校学习专业为重点学科; (4)专业基础好、科研能力强,在某一领域或某些方面有特殊学术专长及突出学术成果; (5)对学术研究有浓厚的兴趣,有较强的创新意识、创新能力和专业能力;

嵌入式系统原理与设计知识点整理

第一章嵌入式处理器 1嵌入式系统的概念组成: 定义:以应用为主,以计算机技术为基础,软硬件可裁剪,满足系统对功能、性能、可靠性、体积和功耗有严格要求的计算机系统。 组成:硬件:处理器、存储器、I / O设备、传感器 软件:①系统软件, ②应用软件。 2.嵌入式处理器分类特点: 分类:①MPU(Micro Processor Unit)微处理器。一块芯片,没有集成外设接口。部主要由运算器,控制器,寄存器组成。 ②MCU(Micro Controller Unit)微控制器(单片机)。一块芯片集成整个计算机系统。 ③EDSP(Embled Digital Signal Processor)数字信号处理器。运算速度快,擅长于大量重复数据处理 ④SOC(System On Chip)偏上系统。一块芯片,部集成了MPU和某一应用常用的功能模块 3.嵌入式处理器与通用计算机处理器的区别: ①嵌入式处理器种类繁多,功能多样 ②嵌入式处理器能力相对较弱,功耗低 ③嵌入式系统提供灵活的地址空间寻址能力 ④嵌入式系统集成了外设接口 4.①哈佛体系结构:指令和数据分开存储————————(嵌入式存储结构) 特征:在同一机器周期指令和数据同时传输 ②·诺依曼体系结构:指令和数据共用一个存储器——(通用式存数结构) 数据存储结构(多字节): 大端方式:低地址存高位;小端方式:高地址存高位 6.ARM指令集命名:V1~V8 (ARMV表示的是指令集)

7.ARM核命名:. 命名规则:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{S}{x}——系列(版本) {y}——当数值为“2”时,表示MMU(存管理单元) {z}——当数值为“0”时,表示缓存Cache {T}——支持16位Thumb指令集 {D}——支持片上Debug(调试) {M}——嵌硬件乘法器 {I}——嵌ICE(在线仿真器)——支持片上断点及调试点 {E}——支持DSP指令 {J}——支持Jazzle技术 {F}——支持硬件浮点 {S}——可综合版本 8. JTAG调试接口的概念及作用: ①概念:(Joint Test Action Group)联合测试行动小组→检测PCB和IC芯片标准。(P CB→印刷电路板IC→集成芯片) ②作用(1)硬件基本功能测试读写 (2)软件下载:将运行代码下载到目标机RAM中 (3)软件调试:设置断点和调试点 (4)FLASH烧写:将运行最终代码烧写到FLASH存储器中。 9.GPIO概念:(General Purpose I/O Ports)通用输入/输出接口,即处理器引脚。 10.S3C2410/S3C2440 GPIO引脚 S3C2410共有117个引脚,可分成A——H共8个组,(GPA,GPB,…GPH组) S3C2440共有130个引脚,可分成A——J共9个组,(GPA,GPB,…,GPH,GPJ 组) 11.GPxCON寄存器,GPxDAT寄存器,GpxUP寄存器的功能,各位含义和用法 ①GPxCON寄存器(控制寄存器)——设置引脚功能 →GPACON(A组有23根引脚,一位对应一个引脚,共32位,拿出0~22位,其余没用) (若某一位是)0:(代表该位的引脚是一个)输出引脚 1:地址引脚 →GPBCON——GPH/JCON(用法一致,两位设置一个引脚) 00:输入引脚 01:输出引脚 10:特殊引脚 11:保留不用 GPBCON ②GPxDAT寄存器(数据寄存器)——设置引脚状态及读取引脚状态 若某一位对应的是输出引脚,写此寄存器相应位可令引脚输出高/低电平。 若某一位对应的是输入引脚,读取此寄存器可知相应引脚电平状态。GPBDAT

(完整版)单片机原理及应用期末考试必考知识点重点总结

单片机概述: 单片机是微单片微型计算机的简称,微型计算机的一种。 它把中央处理器(CPU),随机存储器(RAM),只读存储器(ROM),定时器\计数器以及I\O 接口,串并通信等接口电路的功能集成与一块电路芯片的微型计算机。 字长:在计算机中有一组二进制编码表示一个信息,这组编码称为计算机的字,组成字的位数称为“字长”,字长标志着精度,MCS-51是8位的微型计算机。 89c51 是8位(字长)单片机(51系列为8位) 单片机硬件系统仍然依照体系结构:包括CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、输入设备和输出设备、内部总线等。 由于一块尺寸有限的电路芯片实现多种功能,所以制作上要求单片机的高性能,结构简单,工作可靠稳定。 单片机软件系统包括监控程序,中断、控制、初始化等用户程序。 一般编程语言有汇编语言和C语言,都是通过编译以后得到机器语言(二进制代码)。 1.1单片机的半导体工艺 一种是HMOS工艺,高密度短沟道MOS工艺具有高速度、高密度的特点; 另一种是CHMOS工艺,互补金属氧化物的HMOS工艺,它兼有HMOS工艺的特点还具有CMOS的低功耗的特点。例如:8051的功耗是630mW,80C51的功耗只有110mW左右。1.2开发步5骤: 1.设计单片机系统的电路 2.利用软件开发工具(如:Keil c51)编辑程序,通过编译得到.hex的机器语言。 3.利用单片机仿真系统(例如:Protus)对单片机最小系统以及设计的外围电路,进行模拟的硬软件联合调试。 4.借助单片机开发工具软件(如:STC_ISP下载软件)读写设备将仿真中调试好的.hex程序拷到单片机的程序存储器里面。 5.根据设计实物搭建单片机系统。 2.1MCS-51单片机的组成:(有两个定时器) CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线和中断系统等。 工作过程框图如下: 运算器 组成:8位算术逻辑运算单元ALU(Arithmetic Logic Unit)、8位累加器A(Accumulator)、8位寄存器B、程序状态字寄存器PSW(Program Status Word)、8位暂存寄存器TMP1和TMP2等。 功能:完成算术运算和逻辑运算

嵌入式系统基础知识总结

必读:嵌入式系统基础知识总结 2016-07-22电子发烧友网 本文主要介绍嵌入式系统的一些基础知识,希望对各位有帮助。 嵌入式系统基础 1、嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 (2)嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。 (3)知识产权核(IP核):具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现系统芯片(SOC)的基本构件。(4)IP核模块有行为、结构和物理3级不同程度的设计,对应描述功能行为的不同可以分为三类:软核、固核、硬核。 2、嵌入式系统的组成 包含:硬件层、中间层、系统软件层和应用软件层 (1)硬件层:嵌入式微处理器、存储器、通用设备接口和I/O接口。 嵌入式核心模块=微处理器+电源电路+时钟电路+存储器

Cache:位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。它的主要目标是减小存储器给微处理器内核造成的存储器访问瓶颈,使处理速度更快。 (2)中间层(也称为硬件抽象层HAL或者板级支持包BSP). 它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据BSP层提供的接口开发即可。 BSP有两个特点:硬件相关性和操作系统相关性。 设计一个完整的BSP需要完成两部分工作: A、嵌入式系统的硬件初始化和BSP功能。 片级初始化:纯硬件的初始化过程,把嵌入式微处理器从上电的默认状态逐步设置成系统所要求的工作状态。 板级初始化:包含软硬件两部分在内的初始化过程,为随后的系统初始化和应用程序建立硬件和软件的运行环境。 系统级初始化:以软件为主的初始化过程,进行操作系统的初始化。 B、设计硬件相关的设备驱动。 (3)系统软件层:由RTOS、文件系统、GUI、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。 (4)应用软件:由基于实时系统开发的应用程序组成。

中科大软院金老师的数据库实验一

第一次实验报告 1、实验任务 根据下面的需求描述,使用Sybase Power Designer设计相应的数据库概念模型,并转换成Oracle或MS SQL Server上的物理数据库结构: 某银行准备开发一个银行业务管理系统,通过调查,得到以下的主要需求: 银行有多个支行。各个支行位于某个城市,每个支行有唯一的名字。银行要监控每个支行的资产。银行的客户通过其身份证号来标识。银行存储每个客户的姓名及其居住的街道和城市。客户可以有帐户,并且可以贷款。客户可能和某个银行员工发生联系,该员工是此客户的贷款负责人或银行帐户负责人。银行员工也通过身份证号来标识。员工分为部门经理和普通员工,每个部门经理都负责领导其所在部门的员工,并且每个员工只允许在一个部门内工作。每个支行的管理机构存储每个员工的姓名、电话号码、家庭地址及其经理的身份证号。银行还需知道每个员工开始工作的日期,由此日期可以推知员工的雇佣期。银行提供两类帐户——储蓄帐户和支票帐户。帐户可以由2个或2个以上客户所共有,一个客户也可有两个或两个以上的帐户。每个帐户被赋以唯一的帐户号。银行记录每个帐户的余额、开户的支行以及每个帐户所有者访问该帐户的最近日期。另外,每个储蓄帐户有其利率,且每个支票帐户有其透支额。每笔贷款由某个分支机构发放,能被一个或多个客户所共有。每笔贷款用唯一的贷款号标识。银行需要知道每笔贷款所贷金额以及逐次支付的情况(银行将贷款分几次付给客户)。虽然贷款号不能唯一标识银行所有为贷款所付的款项,但可以唯一标识为某贷款所付的款项。对每次的付款需要记录日期和金额。

2、实验过程 (1)确定实体和属性 由上面的需求描述我们可以很容易得出以下几个实体: ●员工(身份证号,姓名,电话号码,家庭地址,开始工作日 期) ●存储账户(账户号,余额,利率) ●支票账户(账户号,余额,透支额) ●客户(身份证号,姓名,街道,城市) ●支行(支行名称,城市,资产) ●贷款(贷款号,总额) ●支付(日期,金额) 图1 PS: 1、在此ER图中我没有设计账户类,然后派生出存储账户和支票账户,因为在客户的需求中,只有两种账户类型,除了支票账户类型就是存储账户类型,没有所谓的“一般的账户”,所以就不

嵌入式系统重点整理汇编

1.嵌入式系统:定义:以应用为中心、以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统是应用于特定环境下执行面对专业领域的应用系统,其特点为:系统内核小,可裁剪;专业性强;系统精简;通常要求有高实时性的操作系统;嵌入式系统开发需要专门的开发工具和环境;一旦进入市场,就具有较长的生命周期。 嵌入式系统的典型组成: 按模块:中央处理器、外设、操作系统、应用 按体系结构:硬件层、中间层、操作系统、功能层 早期的嵌入式系统包含3个部分:硬件平台、嵌入式实时操作系统和应用程序;经过不断发展,在硬件平台和操作系统之间演化出了新的一层——硬件抽象层;硬件抽象层屏蔽了底层硬件的多样性,操作系统不再直接面对具体的硬件环境,而是由硬件抽象层代表的、逻辑上的硬件环境。板级支持包是大多数商用嵌入式操作系统实现可移植性所采用的一种方案,是硬件抽象层的一种实现。 2.嵌入式系统软件体系结构:早期的嵌入式系统包含3个部分:硬件平台、嵌入式实时操作系统和应用程序;经过不断发展,在硬件平台和操作系统之间演化出了新的一层——硬件抽象层;硬件抽象层屏蔽了底层硬件的多样性,操作系统不再直接面对具体的硬件环境,而是由硬件抽象层代表的、逻辑上的硬件环境。板级支持包是大多数商用嵌入式操作系统实现可移植性所采用的一种方案,是硬件抽象层的一种实现。 3.嵌入式系统的分类:按表现形式分(硬件范畴):芯片级嵌入(含程序或算法的处理器),模块级嵌入(系统中的某个核心模块),系统级嵌入。按实时性要求分(软件范畴):非实时系统(PDA),软实时系统,硬实时系统。嵌入式系统软件一般由嵌入式操作系统和应用软件组成;操作系统是连接计算机硬件与应用程序的系统程序,可分为:顺序执行系统(单任务系统,如DOS),分时操作系统:其特点包括多路性、交互性、“独占性”和及时性(UNIX),实时操作系统(RTOS):计算的正确性不仅取决于程序的逻辑正确性,更取决于结果产生的时间,根据对产生时间要求的严格程度又可分为:硬实时操作系统,软实时操作系统。 4.嵌入式操作系统有RTOS和DTOS之分,说明RTOS的实时性含义 答:RTOS意指实时操作系统,RTOS的实时性并非是简单的要求嵌入式操作系统响应速度快,而是要求嵌入式操作系统对外部事件和软件任务请求的响应事件具有严格的确定性。 5.实时操作系统的特点:计算的正确性不仅取决于程序的逻辑正确性,更取决于结果产生的时间。 6.冯·诺伊曼与哈佛结构:冯·诺依曼结构:采用二进制代码表示数据和指令;采用存储程序工作方式,数据和程序都存储在存储器中;由存储器、运算器、控制器、I/O设备组成计算机硬件系统;总结:程序存储,程序执行。哈佛结构:采用分别用于存储数据和程序的两个存储器,两条总线的系统结构;各个部件有专用的数据、地址与控制总线;CPU和外设DMA的操作引入了某种并行度;区别:地址空间和数据空间分开与否。哈佛结构与冯·诺依曼结构的区别:使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,这两条总线之间毫无关联;冯·诺依曼体系结构的特点:数据与指令都存储在存储器中,被大多数计算机所采用,ARM7——冯·诺依曼体系。哈佛体系结构的特点:程序存储器与数据存储器分开,指令和数据可有不同的数据宽度,提供了较大的数据存储器带宽,适合于数字信号处理,大多数DSP都是哈佛结构,ARM9是哈佛结构。 7.中断的重要性:响应突发事件(异步事件)。对计算机发展的影响:使得计算机能解决客观世界的突发事情,如实时系统。使轮询系统到事件驱动系统成为可能。 8.编址方式:独立编址(I/O具有与内存不同的地址空间),统一编址(I/O与内存在同一地址空间) 9.指令:面向程序员(软件)。微指令:复杂指令由微指令有序序列实现(在CPU中实现)。区别:每条微指令所代表的都是很简单的基本操作;所有微指令的格式都很规则、简单、易于解码;取微指令的速度很快;微指令的执行速度很快。 10.机器码是是计算机能理解和执行的唯一语言.机器码的有序集合对应于高级语言的语句.机器码是指令的二进制表示形式.

(完整版)数据库原理与应用重要知识点总结

数据库原理与应用重要知识点总结 三级模式 模式:模式又称逻辑模式,是数据库中全体数据的整体逻辑结构和特征的描述。是所有用户的公共数据视图。 外模式:外模式又称为子模式或用户模式,是数据库用户能看见和使用的局部数据的逻辑结构和特征的描述。是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 内模式:内模式又称存储模式,是数据物理结构和存储方式的描述。是数据在数据库内部的表示方式。 两级映像 外模式/模式映像:对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式的对应关系。当模式改变时,由数据库管理员对各个外模式/模式映像做相应的修改,可以使外模式不变,保证了数据与程序的逻辑独立性——数据的逻辑独立性。 模式/内模式映像:一个数据库只有一个模式,也只有一个内模式。 这一映像是唯一的,用于定义数据全局逻辑结构与存储结构之间的对应关系。当数据库存储结构改变时,由数据库管理员对模式/内模式映像做相应的修改即可,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性——数据的物理独立性。 存取控制机制: 定义用户权限,并将用户权限存入数据字典中(这些定义被称为安全规则或授权规则)。 权限即用户对某一数据对象的操作权力。 合法性检查,当用户发出存取数据库操作的请求后,DBMS查找数据字典,根据安全规则进行合法性检查,若用户的请求超出了定义的权限/密级/角色,系统将拒绝执行此操作。 视图机制: 视图--虚表--导出表 为不同用户定义不同的视图,把数据对象限制在一定的范围。 通过视图机制把要保密的数据对无权操作的用户隐藏起来。 审计 系统提供的一种事后检查的安全机制。 建立审计日志,用以记录用户对数据库的所有操作。 检查审计日志,找出非法存取数据的人、时间和内容。 审计很浪费时间和空间,主要用于安全性要求较高的部门。 RBAC(基于角色的存取控制)role-based access control 特点: 由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。 灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。 强制存取控制MAC mandatory access control 强制存取控制是通过对敏感度标记进行控制的。 定义:每一个数据对象都被标以一定的密级,每一个用户也被授予某一级别的许可证,对于任意一个对象,只有具有合法许可证的用户才可以存取。 特点:严格,不是用户能够直接感知或进行控制的。 适用性:对数据有严格而固定密级分类的部门——军事部门,政府部门。 敏感度标记:绝密、机密、可信、公开

中科大软件学院算法实验报告

算法实验报告 快速排序 1. 问题描述: 实现对数组的普通快速排序与随机快速排序 (1)实现上述两个算法 (2)统计算法的运行时间 (3)分析性能差异,作出总结 2. 算法原理: 2.1快速排序 快速排序是对冒泡排序的一种改进。它的基本思想是:选取一个基准元素,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比基准元素小,另外一部分的所有数据都要比基准元素大,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 设要排序的数组是A[0]……A[N-1],首先选取一个数据(普通快速排序选择的是最后一个元素, 随机快速排序是随机选择一个元素)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。 一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]赋给A[i]; 4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]赋给A[j]; 5)重复第3、4步,直到i=j;(3,4步中,没找到符合条件的值,即3中A[j]不小于key,4中A[i]不大于key的时候改变j、i的值,使得j=j-1,i=i+1,直至找到为止。找到符合条件的值,进行交换的时候i,j指针位置不变。另外,i==j这

一过程一定正好是i+或j-完成的时候,此时令循环结束)。 2.2随机快速排序 快速排序的最坏情况基于每次划分对主元的选择。基本的快速排序选取第一个或者最后一个元素作为主元。这样在数组已经有序的情况下,每次划分将得到最坏的结果。一种比较常见的优化方法是随机化算法,即随机选取一个元素作为主元。这种情况下虽然最坏情况仍然是O(n^2),但最坏情况不再依赖于输入数据,而是由于随机函数取值不佳。实际上,随机化快速排序得到理论最坏情况的可能性仅为1/(2^n)。所以随机化快速排序可以对于绝大多数输入数据达到O(nlogn)的期望时间复杂度。 3. 实验数据 本实验采用对80,000个随机数据进行十次排序,并取出平均值。分别用普通快速排序和随机快速排序对数据排序。用毫秒作为运行计数单位,观测两种算法所用的时间的不同。 4. 实验截图 如下图所示的时间,普通快速排序所用的平均时间为181毫秒,而随机化版本的快速排序所用时间仅仅为119毫秒。 5. 结果分析 5.1 时间分析 从实验截图得到的结果来看,随机化版本的快速排序所用时间比普通快速排序所用的平均时间少。 快速排序的平均时间复杂度为O(nlogn),最坏时间时间可达到O(n^2),最坏情况是当要排序的数列基本有序的时候。根据快速排序的工作原理我们知道,

相关文档
最新文档