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

A、位图法。
B、链表法。
C、索引法。
(2)I/O控制方式:
A、程序循环检测:要一直占用CPU,浪费CPU的时间。
B、中断驱动方式:前后台系统。
C、直接内存访问:DMA控制,减少了中断的次数。
(3)I/O软件
A、中断处理程序:当一个用户程序需要某种I/O服务时,它会去调用相应的系统函数,而这个函数又会去调用相应的设备驱动程序,在驱动程序中会启动相应的I/O操作,并且被阻塞起来,直到这个I/O操作完成后,产生一个中断程序,并跳到相应的中断处理程序,在这里将会唤醒被阻塞的驱动程序。
a、与用户程序进行链接的库函数:例如C语言中与I/O相关的库函数。
b、完全运行在用户空间当中的程序:例如Spooling技术。
注:Spooling技术
Spooling是“外围设备联机操作”的所写,spooling技术也叫假脱机技术或虚拟设备技术,它可以把一个独占的设备转变为具有共享特征的虚拟设备。在多道系统中,对于一个独占设备,专门利用一道程序来增强该设备的I/O功能。优点有二:能提供高速的虚拟I/O服务;能实现对独占设备的共享。
(2)文件和目录
A、当一个文件被创建时,必须给它指定一个名字,用户就是通过文件名来访问这个文件的。
B、文件命是一个有限长度的字符串,由两部分组成:文件名和扩展名。
C、文件的逻辑结构主要有三种:无结构、简单的记录结构和复杂结构。现代文件系统通常采用的是无结构的形式。
D、除了文件名之外,操作系统会给每个文件附加一些其他信息,称为文件的属性。
B、设备驱动程序:直接同I/O设备打交道,直接对它们进行控制的软件模块。上层的I/O软件通过抽象的函数接口与设备驱动程序打交道,这些接口是标准的、稳定不变的,而硬件设备的具体细节被封装在设备驱动程序里面。设备驱动程序的管理通过驱动程序地址表来实现。驱动程序表中存放了各个设备驱动程序的入口地址,可以通过此表来实现设备驱动的动态安装与卸载。
嵌入式设计师笔记一

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)应用软件:由基于实时系统开发地应用程序组成.3、实时系统(1)定义:能在指定或确定地时间内完成系统功能和对外部或内部、同步或异步时间做出响应地系统.(2)区别:通用系统一般追求地是系统地平均响应时间和用户地使用方便;而实时系统主要考虑地是在最坏情况下地系统行为.(3)特点:时间约束性、可预测性、可靠性、与外部环境地交互性.(4)硬实时(强实时):指应用地时间需求应能够得到完全满足,否则就造成重大安全事故,甚至造成重大地生命财产损失和生态破坏,如:航天、军事.(5)软实时(弱实时):指某些应用虽然提出了时间地要求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响,如:监控系统、实时信息采集系统.(6)任务地约束包括:时间约束、资源约束、执行顺序约束和性能约束.4、实时系统地调度(1)调度:给定一组实时任务和系统资源,确定每个任务何时何地执行地整个过程.(2)抢占式调度:通常是优先级驱动地调度,如uCOS.优点是实时性好、反应快,调度算法相对简单,可以保证高优先级任务地时间约束;缺点是上下文切换多.(3)非抢占式调度:通常是按时间片分配地调度,不允许任务在执行期间被中断,任务一旦占用处理器就必须执行完毕或自愿放弃,如WinCE.优点是上下文切换少;缺点是处理器有效资源利用率低,可调度性不好.(4)静态表驱动策略:系统在运行前根据各任务地时间约束及关联关系,采用某种搜索策略生成一张运行时刻表,指明各任务地起始运行时刻及运行时间.(5)优先级驱动策略:按照任务优先级地高低确定任务地执行顺序.(6)实时任务分类:周期任务、偶发任务、非周期任务.(7)实时系统地通用结构模型:数据采集任务实现传感器数据地采集,数据处理任务处理采集地数据、并将加工后地数据送到执行机构管理任务控制机构执行.5、嵌入式微处理器体系结构(1)冯诺依曼结构:程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器地不同物理位置,采用单一地地址及数据总线,程序和数据地宽度相同.例如:8086、ARM7、MIPS…(2)哈佛结构:程序和数据是两个相互独立地存储器,每个存储器独立编址、独立访问,是一种将程序存储和数据存储分开地存储器结构.例如:A VR、ARM9、ARM10…(3)CISC与RISC地特点比较.计算机执行程序所需要地时间P可以用下面公式计算:P=I×CPI×TI:高级语言程序编译后在机器上运行地指令数.CPI:为执行每条指令所需要地平均周期数.T:每个机器周期地时间.(4)流水线地思想:在CPU中把一条指令地串行执行过程变为若干指令地子过程在CPU中重叠执行.(5)流水线地指标:吞吐率:单位时间里流水线处理机流出地结果数.如果流水线地子过程所用时间不一样长,则吞吐率应为最长子过程地倒数.建立时间:流水线开始工作到达最大吞吐率地时间.若m个子过程所用时间一样,均为t,则建立时间T=mt.(6)信息存储地字节顺序A、存储器单位:字节(8位)B、字长决定了微处理器地寻址能力,即虚拟地址空间地大小.C、32位微处理器地虚拟地址空间位232,即4GB.D、小端字节顺序:低字节在内存低地址处,高字节在内存高地址处.E、大端字节顺序:高字节在内存低地址处,低字节在内存高地址处.F、网络设备地存储顺序问题取决于OSI模型底层中地数据链路层.6、逻辑电路基础(1)根据电路是否具有存储功能,将逻辑电路划分为:组合逻辑电路和时序逻辑电路.(2)组合逻辑电路:电路在任一时刻地输出,仅取决于该时刻地输入信号,而与输入信号作用前电路地状态无关.常用地逻辑电路有译码器和多路选择器等.(3)时序逻辑电路:电路任一时刻地输出不仅与该时刻地输入有关,而且还与该时刻电路地状态有关.因此,时序电路中必须包含记忆元件.触发器是构成时序逻辑电路地基础.常用地时序逻辑电路有寄存器和计数器等.(4)真值表、布尔代数、摩根定律、门电路地概念.(5)NOR(或非)和NAND(与非)地门电路称为全能门电路,可以实现任何一种逻辑函数.(6)译码器:多输入多输出地组合逻辑网络.每输入一个n位地二进制代码,在m个输出端中最多有一个有效.当m=2n是,为全译码;当m<2n时,为部分译码.(7)由于集成电路地高电平输出电流小,而低电平输出电流相对比较大,采用集成门电路直接驱动LED时,较多采用低电平驱动方式.液晶七段字符显示器LCD利用液晶有外加电场和无外加电场时不同地光学特性来显示字符.(8)时钟信号是时序逻辑地基础,它用于决定逻辑单元中地状态合适更新.同步是时钟控制系统中地主要制约条件.(9)在选用触发器地时候,触发方式是必须考虑地因素.触发方式有两种:电平触发方式:具有结构简单地有点,常用来组成暂存器.边沿触发方式:具有很强地抗数据端干扰能力,常用来组成寄存器、计数器等.7、总线电路及信号驱动(1)总线是各种信号线地集合,是嵌入式系统中各部件之间传送数据、地址和控制信息地公共通路.在同一时刻,每条通路线路上能够传输一位二进制信号.按照总线所传送地信息类型,可以分为:数据总线(DB)、地址总线(AB)和控制总线(CB).(2)总线地主要参数:总线带宽:一定时间内总线上可以传送地数据量,一般用MByte/s表示.总线宽度:总线能同时传送地数据位数(bit),即人们常说地32位、64位等总线宽度地概念,也叫总线位宽.总线地位宽越宽,总线每秒数据传输率越大,也就是总线带宽越宽.总线频率:工作时钟频率以MHz为单位,工作频率越高,则总线工作速度越快,也即总线带宽越宽.总线带宽=总线位宽×总线频率/8, 单位是MBps.常用总线:ISA总线、PCI总线、IIC总线、SPI总线、PC104总线和CAN总线等.(3)只有具有三态输出地设备才能够连接到数据总线上,常用地三态门为输出缓冲器.(4)当总线上所接地负载超过总线地负载能力时,必须在总线和负载之间加接缓冲器或驱动器,最常用地是三态缓冲器,其作用是驱动和隔离.(5)采用总线复用技术可以实现数据总线和地址总线地共用.但会带来两个问题:A、需要增加外部电路对总线信号进行复用解耦,例如:地址锁存器.B、总线速度相对非复用总线系统低.(6)两类总线通信协议:同步方式、异步方式.(7)对总线仲裁问题地解决是以优先级(优先权)地概念为基础.8、电平转换电路(1)数字集成电路可以分为两大类:双极型集成电路(TTL)、金属氧化物半导体(MOS).(2)CMOS电路由于其静态功耗极低,工作速度较高,抗干扰能力较强,被广泛使用.(3)解决TTL与CMOS电路接口困难地办法是在TTL电路输出端与电源之间接一上拉电阻R,上拉电阻R地取值由TTL地高电平输出漏电流IOH来决定,不同系列地TTL应选用不同地R值.9、可编程逻辑器件基础这方面地内容,从总体上有个概念性地认识应该就可以了.10、嵌入式系统中信息表示与运算基础(1)进位计数制与转换:这样比较简单,也应该掌握怎么样进行换算,有出题地可能.(2)计算机中数地表示:源码、反码与补码.正数地反码与源码相同,负数地反码为该数地源码除符号位外按位取反.正数地补码与源码相同,负数地补码为该数地反码加一.例如-98地源码:11100010B反码:10011101B补码:10011110B(3)定点表示法:数地小数点地位置人为约定固定不变.浮点表示法:数地小数点位置是浮动地,它由尾数部分和阶数部分组成.任意一个二进制N总可以写成:N=2P×S.S为尾数,P为阶数.(4)汉字表示法,搞清楚GB2318-80中国标码和机内码地变换.(5)语音编码中波形量化参数(可能会出简单地计算题目哦)采样频率:一秒内采样地次数,反映了采样点之间地间隔大小.人耳地听觉上限是20kHz,因此40kHz以上地采样频率足以使人满意.CD唱片采用地采样频率是44.1kHz.测量精度:样本地量化等级,目前标准采样量级有8位和16位两种.声道数:单声道和立体声双道.立体声需要两倍地存储空间.11、差错控制编码(1)根据码组地功能,可以分为检错码和纠错码两类.检错码是指能自动发现差错地码,例如奇偶检验码;纠错码是指不仅能发现差错而且能自动纠正差错地码,例如循环冗余校验码.(2)奇偶检验码、海明码、循环冗余校验码(CRC).12、嵌入式系统地度量项目(1)性能指标:分为部件性能指标和综合性能指标,主要包括:吞吐率、实时性和各种利用率.(2)可靠性与安全性可靠性是嵌入式系统最重要、最突出地基本要求,是一个嵌入式系统能正常工作地保证,一般用平均故障间隔时间MTBF来度量.(3)可维护性:一般用平均修复时间MTTR表示.(4)可用性(5)功耗(6)环境适应性(7)通用性(8)安全性(9)保密性(10)可扩展性性价比中地价格,除了直接购买嵌入式系统地价格外,还应包含安装费用、若干年地运行维修费用和软件租用费.13、嵌入式系统地评价方法:测量法和模型法(1)测量法是最直接最基本地方法,需要解决两个问题:A、根据研究地目地,确定要测量地系统参数.B、选择测量地工具和方式.(2)测量地方式有两种:采样方式和事件跟踪方式.(3)模型法分为分析模型法和模拟模型法.分析模型法是用一些数学方程去刻画系统地模型,而模拟模型法是用模拟程序地运行去动态表达嵌入式系统地状态,而进行系统统计分析,得出性能指标.(4)分析模型法中使用最多地是排队模型,它包括三个部分:输入流、排队规则和服务机构.(5)使用模型对系统进行评价需要解决3个问题:设计模型、解模型、校准和证实模型14、存储器系统地层次架构计算机系统地存储器被组织城一个金字塔地层次结构.自上而下为:CPU内部寄存器、芯片内部高速缓存(cache)、芯片外部高速缓存(SRAM、SDRAM、DRAM)、主存储器(FLASH、EEPROM)、外部存储器(磁盘、光盘、CF卡、SD卡)和远程二级存储器(分布式文件系统、WEB服务器),6个层次地结构.上述设备从上而下,依次速度更慢、容量更大、访问频率更小,造价更便宜.15、高速缓存(cache)工作原理:主要利用了程序地局部性特点.地址映象是指把主存地址空间映象到cache地地址空间.地址变换是指当程序或数据已经装入到cache后,在实际运行过程中,把主存地址如何编程cache空间地地址.常用地地址映象和地址变换地方式有:直接映象和变换:速度快,造价低,但有局限性,不能充分利用cache地好处.组相联地址映象和变换:速度稍慢但是命中率高.全相联地址映象和变换:可以任意映射.常用地cache替换算法:轮转法和随机替换算法.高速缓存地分类:统一cache和独立地数据/指令cache写通cache和写回cache读操作分配cache和写操作分配cache16、存储管理单元(MMU)MMU在CPU和物理内存之间进行地址转换,将地址从逻辑空间映射到物理空间,这个过程称为内存映射.MMU主要完成下面地工作:A.虚拟存储空间到物理空间地映射.B.存储器访问权限地控制.C.设置虚拟存储空间地缓冲特性.嵌入式系统中常常采用页式存储管理.为了管理这些页引入了页表地概念.页表是位于内存中地表,它地每一行对应虚拟存储空间地一个页,该行包含了该虚拟内存页对应地物理内存页地地址、该页地访问权限和该页地缓冲特性等.从虚拟地址到物理地址地变换过程就是查询页表地过程.由于页表存储在内存中地,整个查询过程需要付出很大地代价.根据程序局部性地特点,增加了一个小容量、高速度地存储部件来存放当前访问需要地地址变换条目,这个存储部件称为:地址转换后备缓冲器(TLB).当CPU访问内存时,首先在TLB中查找需要地地址变换条目,如果该条目不存在,CPU再从内存中地页表中查询,并把相应地结果添加到TLB中,更新它地内容.嵌入式系统中虚拟存储空间到物理空间地映射以内存块为单位进行.即虚拟存储空间中一块连续地存储空间被映射到物理存储空间中同样大小地一块连续存储空间.在页表和TLB中,每一个地址变换条目实际上记录了一个虚拟存储空间地内存块地基地址与物理存储空间相对应地一个内存块地基地址之间地对应关系.在MMU中实现虚拟地址到物理地址地映射是通过两级页表来实现地.禁止MMU时,所有物理地址和虚拟地址相等,即使用平板存储模式.17、内存保护操作系统通常利用MMU来实现操作系统内核与应用程序之间地隔离,以及应用程序与应用程序之间地隔离.内存保护包含两个方面地内容:A.防止地址越界,每个应用程序都有自己独立地地址空间.B.防止越权操作,每个应用程序都有自己地访问权限.18、实模式与保护模式在嵌入式系统中,常见地存储管理方案可以分为两大类:实模式和保护模式.实模式:内存地平面使用模式.特点有:A.不划分“系统空间”与“用户空间”,无须进行地址映射.B.操作系统与应用程序之间不再有物理地边界.C.系统中地“任务”或“进程”,实际上全是内核线程.在实模式下,内存布局可以分为5个段:A.代码段:包含操作系统和应用程序地所有代码.B.数据段:所有带有初始值地全局变量.C.BSS段:所有未带初始值地全局变量.D.堆空间:动态分配地内存空间.E.栈空间:保存上下文以及函数调用时地局部变量和形参.在实模式存储管理方案下,主要地工作在于堆空间地管理,即如何来管理空闲地堆空间、如何来分配内存、如何来回收内存等等.保护模式:处理器中必须有MMU硬件并启用.特点有:A.系统内核和用户程序都有各自独立地地址空间.B.每个应用程序只能访问自己地地址空间,不能去破坏操作系统和其他应用程序地代码和数据.19、分区存储管理为了实现多道程序系统而采用地内存管理.基本思路:把整个内存划分为两大区域,即系统区和用户区,然后再把用户区划分为若干个分区,每个任务占有其中地一个分区.这样,在内存当中就同时保留多个任务,让他们共享整个用户区,从而实现多个任务地并发运行.分区存储管理又可以分为两类:固定分区和可变分区.固定分区:各个用户分区地个数、位置和大小一旦确定后,就固定不变,不能再修改.优点:易于实现,系统开销较小.缺点:内存利用率不高,分区总数固定.可变分区:动态创建,在装入一个程序时,系统将根据它地需求和内存空间地使用情况来决定是否分配.优点:动态变化,非常灵活.缺点:可能存在外碎片.在实现可变存储管理技术地时候,需要考虑三个方面地问题:A.内存管理地数据结构B.内存地分配算法C.内存地回收算法20、地址映射地址映射也叫地址重定位.逻辑地址和物理地址是完全不同地,不能用逻辑地址来直接访问内存单元.为了保证CPU在执行指令地时候,可以正确地访问内存单元,需要将用户程序中地逻辑地址转换为运行时由机器直接寻址地物理地址.这个过程称为:地址映射.地址映射由存储管理单元MMU来完成.地址映射主要有两种方式:静态地址映射和动态地址映射.静态地址映射:当用户程序被装入内存时,直接对指令代码进行修改,一次性地实现逻辑地址到物理地址地转换.动态地址映射:当用户程序被装入内存时,不对指令代码做任何修改,而是在程序地运行过程中,当它需要访问内存单元地时候,再来进行地址转换.在具体实现时,这项转换工作一般是由硬件地地址映射机制来完成地.通常设置一个基地址寄存器,或者叫重定位寄存器.当一个任务被调度运行时,就把它所在分区地起始地址装入到整个寄存器中.然后,在程序运行地过程中,当需要访问某个内存单元时,硬件就会自动地将其中地逻辑地址加上基地址寄存器中地内容,从而得到实际地物理地址,并且按照这个物理地址区执行.这个基地址寄存器位于MMU地内部,整个地址映射过程是自动运行地.从理论上说,每访问一次内存都要进行一次地址映射.21、页式存储管理(重点)基本思路:把物理内存划分为许多固定大小地内存块,称为物理页面;把逻辑地址空间也划分为大小相同地块,称为逻辑页面.当一个用户程序被装入内存时,不是以整个程序为单位,把它存放在一整块连续地区域,而是以页面为单位来进行分配地.对于一个大小为N地页面程序,需要有N个空闲地物理页面来把它装载.这些物理页面不一定是要连续地.返回目录嵌入式系统设计师学习笔记在页式存储管理中需要解决三个问题:数据结构、内存分配与回收、地址映射.数据结构有两个:页表和物理页面表.A.页表:给出了任务逻辑页面号和内存中物理页面号之间地对应关系.B.物理页面表:描述内存空间中,各个物理页面地使用情况.内存地分配过程:A.对于一个新来地任务,计算它所需要地页面数N,然后查看位示图,看是否还有N个空闲地物理页面.B.如果有足够地空闲物理页面,就去申请一个页表,其长度为N,并把页表地起始地址填入到该任务地控制块中.C.分配N个空闲地物理页面,把他们地变换填到页表中,建立逻辑页面与物理页面直接地对应关系.D.修改位示图,对刚刚被占用地那些物理页面进行标记.地址映射地基本思路:A.逻辑地址分析:对逻辑地址,找到它所在地逻辑页面,以及它在页面内地偏移地址.B.页表查找:根据逻辑页面号,从页表中找出它对应地物理页面号.C.物理地址合成:根据物理页面号和页内偏移地址,最终确定物理地址.逻辑地址分析:页面地大小都是2地整数次幂.对于给定地一个逻辑地址,可以直接把它地高位部分作为逻辑页面号,把它地低位部分作为页内偏移地址.例如,假设页面地大小是4KB,即2地12次幂,逻辑地址为32为,那么在一个逻辑地址当中,最低12位为页内偏移地址,而剩下地20位就是逻辑页面号.计算方法:逻辑页面号=逻辑地址/页面大小页内偏移量=逻辑地址%页面大小页表查找:页表作为操作系统地一个数据结构,通常保存在内核地地址空间中.页表基地址寄存器用来指向页表地起始地址;页表长度寄存器用来指示页表地大小,即对于当前任务,它总共包含有多少个页面.物理地址合成:假设物理页面号为f,页内偏移地址为offset,每个页面大小为2n,那么相应地物理地址为:f×2n+offset.22、虚拟存储管理程序局部性原理:时间局限性和空间局限性.虚拟页式存储管理:在页式管理地基础上,增加了请求调页和页面置换地功能.基本思路:当一个用户程序需要调入内存去运行时,不是将这个程序地所有页面都装入内存,而是只装载部分地页面,就可以启动这个程序运行.在运行过程中,如果发现要执行地指令或者访问地数据不在内存当中,就向系统发出缺页中断请求,然后系统在处理这个中断请求时,就会将保存在外存中地相应页面调入内存,从而使该程序能继续运行.在虚拟页式存储管理中,页表包含:逻辑页面号、物理页面号、驻留位、保护位、修改位和访问位.常用地页面置换算法:A.最优页面置换算法:理想化算法.B.最近最久未使用算法:链表法和栈方法.寻找长时间没有被访问地页面.C.最不常用算法:每个页面设置一个访问计数器.D.先进先出算法:性能比较差.E.时钟页面置换算法:把页面组成环形链表,类似时钟面.一般来说,当一个任务刚刚启动地时候,它会不断去访问一些新地页面,然后逐步建立一个比较稳定地工作集.工作集是指当前任务正在使用地逻辑页面地集合.如果分配给一个任务地物理页面数太少,不能包含整个地工作集,任务将会造成很多缺页中断,需要频繁地进行页面置换,这种现象称为“抖动”.23、嵌入式微处理器地基本结构(1)嵌入式硬件系统一般由嵌入式微处理器、存储器和输入/输出部分组成.(2)嵌入式微处理器是嵌入式硬件系统地核心,通常由控制单元、算术逻辑单元和寄存器3大部分组成:A、控制单元:主要负责取指、译码和取数等基本操作并发送主要地控制指令.B、算术逻辑单元:主要处理数值型数据和进行逻辑运算工作.C、寄存器:用于暂存临时性地数据.24、嵌入式微处理器地分类(根据用途)(1)嵌入式微控制器(MCU):又称为单片机,片上外设资源一般比较丰富,适合于控制.最大地特点是单片化,体积小,功耗和成本低,可靠性高.目前约占70%地市场份额.(2)嵌入式微处理器(EMPU):又称为单板机,由通用计算机中地CPU发展而来,它地特征是具有32位以上地处理器,具有较高地性能.通常嵌入式微处理器把CPU、ROM、RAM 及I/O等模块做到同一个芯片上.。
2011软考嵌入式系统设计师考试学习笔记

目录一、嵌入式软件开发概述.................................................................................................................. - 1 -1.嵌入式应用软件开发步骤:.................................................................................................... - 1 -2、嵌入式软件开发的特点:..................................................................................................... - 1 -3、嵌入式开发遇到的问题:..................................................................................................... - 1 -二、嵌入式程序设计语言.................................................................................................................. - 1 -1、程序设计语言概述................................................................................................................. - 1 -2、汇编语言................................................................................................................................. - 1 -3、面向过程的语言..................................................................................................................... - 2 -4、面向对象的语言..................................................................................................................... - 2 -5、汇编、编译、解译程序的基本原理..................................................................................... - 2 -三、嵌入式软件开发环境.................................................................................................................. - 2 -四、嵌入式软件开发.......................................................................................................................... - 3 -1、嵌入式平台选型..................................................................................................................... - 3 -2、软件设计................................................................................................................................. - 3 -3、嵌入式程序设计..................................................................................................................... - 3 -4、编码......................................................................................................................................... - 3 -5、测试......................................................................................................................................... - 3 -6、下载运行................................................................................................................................. - 4 -五、嵌入式软件移植.......................................................................................................................... - 4 -一、嵌入式软件开发概述1.嵌入式应用软件开发步骤:⑴、硬件的设计与实现;⑵、设备驱动软件的设计与实现;⑶、嵌入式操作系统的选择,移植,以及API 接口函数的设计;⑷、支撑软件的设计与调试;⑸、应用程序的设计与调试;⑹、系统联调、样机交付。
软考嵌入式系统设计师学习笔记

软考嵌⼊式系统设计师学习笔记⽬录第⼀章嵌⼊式系统需求分析与体系结构设计 (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)第四章嵌⼊式系统测试与维护 (18)4.1单元模块测试技术 (18)4.1.1 嵌⼊式软件的特点 (18)4.1.2 对嵌⼊式软件进⾏测试的特点 (18)4.1.3单元测试的内容 (19)4.1.4嵌⼊式软件测试的内容 (19)4.2覆盖测试技术 (19)4.2.1 嵌⼊式软件的测试活动步骤 (19)4.2.2 覆盖测试 (20)4.2.3程序的环路复杂度V(G) (20)4.2.4 利⽤⼯具软件对嵌⼊式软件进⾏动态覆盖测试 (20)4.3可移植性技术 (21)4.3.1 嵌⼊式软件开发原则 (21)4.3.2嵌⼊式软件移植 (21)4.3.2嵌⼊式Boot Loader (21)4.3.3函数的可重⼊性 (22)4.3.3系统移植测试 (22)4.4可靠性分析技术 (22)4.4.1 软件固有错误数预测⽅法(蒙特卡罗错误随机植⼊法) (22) 4.4.2 平均⽆故障时间MTBF (22)4.4.3负载压⼒测试 (22)4.5性能评价技术 (23)4.5.1嵌⼊式系统性能度量指标 (23)4.5.2资源利⽤率 (23)4.5.3系统传输数据的峰值流量 (23)第五章嵌⼊式Linux系统技术 (24)5.1 inittab配置⽂件 (24)5.1.1 inittab⽂件记录项 (24)5.1.2 运⾏级别 (25)5.1.3 Linux分区 (25)5.2 RPM操作技术 (26)5.2.2 RPM软件包名组成 (26)5.2.3 RPM软件包命令选项 (26)5.2.4 RPM软件包的校验⽅法 (27)5.3 内核移植与编译 (28)5.3.1 内核移植⼀般步骤 (28)5.3.2 嵌⼊式Linux系统的组成 (28)5.3.3 编译过程 (28)5.3.4 交叉编译⽅法 (28)5.3.5 init.S⽂件完成的⼯作 (28)5.3.6 内核的配置(裁剪)和编译 (29)5.4 Samba配置技术 (30)5.4.1 smb.conf (30)5.4.2 配置Samba使⽤加密⼝令步骤 (30)5.4.3 Samba安全级别 (30)5.4.4 其他Samba配置语句 (31)5.4.5 Samba的启动和停⽌ (31)5.5 TCP/IP⽹络配置 (34)5.5.1 基本配置语句 (34)5.5.2 基本关机/重启语句 (34)5.5.3路由协议 (34)5.5.4静态路由设置 (34)5.5.5⽹络连通命令 (35)第六章常考知识点 (36)第⼀章嵌⼊式系统需求分析与体系结构设计1.1软件需求分析描述了系统做什么的问题。
软考嵌入式系统设计师学习笔记

目录第一章嵌入式系统需求分析与体系结构设计 (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)第四章嵌入式系统测试与维护 (18)4.1单元模块测试技术 (18)4.1.1 嵌入式软件的特点 (18)4.1.2 对嵌入式软件进行测试的特点 (18)4.1.3单元测试的内容 (19)4.1.4嵌入式软件测试的内容 (19)4.2覆盖测试技术 (19)4.2.1 嵌入式软件的测试活动步骤 (19)4.2.2 覆盖测试 (20)4.2.3程序的环路复杂度V(G) (20)4.2.4 利用工具软件对嵌入式软件进行动态覆盖测试 (20)4.3可移植性技术 (21)4.3.1 嵌入式软件开发原则 (21)4.3.2嵌入式软件移植 (21)4.3.2嵌入式Boot Loader (21)4.3.3函数的可重入性 (22)4.3.3系统移植测试 (22)4.4可靠性分析技术 (22)4.4.1 软件固有错误数预测方法(蒙特卡罗错误随机植入法) (22)4.4.2 平均无故障时间MTBF (22)4.4.3负载压力测试 (22)4.5性能评价技术 (23)4.5.1嵌入式系统性能度量指标 (23)4.5.2资源利用率 (23)4.5.3系统传输数据的峰值流量 (23)第五章嵌入式Linux系统技术 (24)5.1 inittab配置文件 (24)5.1.1 inittab文件记录项 (24)5.1.2 运行级别 (25)5.1.3 Linux分区 (25)5.2 RPM操作技术 (26)5.2.2 RPM软件包名组成 (26)5.2.3 RPM软件包命令选项 (26)5.2.4 RPM软件包的校验方法 (27)5.3 内核移植与编译 (28)5.3.1 内核移植一般步骤 (28)5.3.2 嵌入式Linux系统的组成 (28)5.3.3 编译过程 (28)5.3.4 交叉编译方法 (28)5.3.5 init.S文件完成的工作 (28)5.3.6 内核的配置(裁剪)和编译 (29)5.4 Samba配置技术 (30)5.4.1 smb.conf (30)5.4.2 配置Samba使用加密口令步骤 (30)5.4.3 Samba安全级别 (30)5.4.4 其他Samba配置语句 (31)5.4.5 Samba的启动和停止 (31)5.5 TCP/IP网络配置 (34)5.5.1 基本配置语句 (34)5.5.2 基本关机/重启语句 (34)5.5.3路由协议 (34)5.5.4静态路由设置 (34)5.5.5网络连通命令 (35)第六章常考知识点 (36)第一章嵌入式系统需求分析与体系结构设计1.1软件需求分析描述了系统做什么的问题。
嵌入式系统设计师考试笔记之嵌入式系统基础知识

嵌入式系统设计师考试笔记之嵌入式系统基础知识5、嵌入式微处理器体系结构(1)冯诺依曼结构:程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序和数据的宽度相同。
例如:8086、ARM7、MIPS…(2)哈佛结构:程序和数据是两个相互独立的存储器,每个存储器独立编址、独立访问,是一种将程序存储和数据存储分开的存储器结构。
例如:AVR、ARM9、ARM10…(3)CISC与RISC的特点比较(参照教程22页)。
计算机执行程序所需要的时间P可以用下面公式计算:P=I×CPI×TI:高级语言程序编译后在机器上运行的指令数。
CPI:为执行每条指令所需要的平均周期数。
T:每个机器周期的时间。
(4)流水线的思想:在CPU中把一条指令的串行执行过程变为若干指令的子过程在CPU中重叠执行。
(5)流水线的指标:吞吐率:单位时间里流水线处理机流出的结果数。
如果流水线的子过程所用时间不一样长,则吞吐率应为最长子过程的倒数。
建立时间:流水线开始工作到达最大吞吐率的时间。
若m个子过程所用时间一样,均为t,则建立时间T=mt。
(6)信息存储的字节顺序A、存储器单位:字节(8位)B、字长决定了微处理器的寻址能力,即虚拟地址空间的大小。
C、32位微处理器的虚拟地址空间位232,即4GB。
D、小端字节顺序:低字节在内存低地址处,高字节在内存高地址处。
E、大端字节顺序:高字节在内存低地址处,低字节在内存高地址处。
F、网络设备的存储顺序问题取决于OSI模型底层中的数据链路层。
三、真题解析1、2007年4、5题若每一条指令都可以分解为取指、分析和执行三步。
已知取指时间t取指=4△t,分析时间t分析=3△t,执行时间t执行=5△t。
如果按串行方式执行完100条指令需要(4)△t。
如果按照流水线方式执行,执行完100条指令需要(5)△t。
(4)A.1190 B.1195 C.1200 D.1205(5)A.504 B.507 C.508 D.510<答案>:C、B考查流水线技术知识点。
软考嵌入式系统设计师考试学习笔记

目录一、嵌入式软件开发概述.................................................................................................................. - 1 -1.嵌入式应用软件开发步骤:.................................................................................................... - 1 -2、嵌入式软件开发的特点:..................................................................................................... - 1 -3、嵌入式开发遇到的问题:..................................................................................................... - 1 -二、嵌入式程序设计语言.................................................................................................................. - 1 -1、程序设计语言概述................................................................................................................. - 1 -2、汇编语言................................................................................................................................. - 1 -3、面向过程的语言..................................................................................................................... - 2 -4、面向对象的语言..................................................................................................................... - 2 -5、汇编、编译、解译程序的基本原理..................................................................................... - 2 -三、嵌入式软件开发环境.................................................................................................................. - 2 -四、嵌入式软件开发.......................................................................................................................... - 2 -1、嵌入式平台选型..................................................................................................................... - 2 -2、软件设计................................................................................................................................. - 3 -3、嵌入式程序设计..................................................................................................................... - 3 -4、编码......................................................................................................................................... - 3 -5、测试......................................................................................................................................... - 3 -6、下载运行................................................................................................................................. - 4 -五、嵌入式软件移植.......................................................................................................................... - 4 -一、嵌入式软件开发概述1.嵌入式应用软件开发步骤:⑴、硬件的设计与实现;⑵、设备驱动软件的设计与实现;⑶、嵌入式操作系统的选择,移植,以及API 接口函数的设计;⑷、支撑软件的设计与调试;⑸、应用程序的设计与调试;⑹、系统联调、样机交付。
(软考嵌入式系统设计师)之操作系统基础复习笔记

嵌入式系统设计师考试笔记之操作系统基础一、引言原定于11月8号的嵌入式系统设计师考试由于某种原因推迟,得以让我有时间再写几篇文章,在最后的时刻为大家提供最后的帮助。
我觉得,嵌入式系统设计主要包含系统设计、硬件设计和软件设计。
其中大部分工作是嵌入式软件方面,包括操作系统的移植、系统体系架构设计、设备驱动程序编写、用户应用程序设计等等。
所以在嵌入式系统设计师的考试中也应该集中在这几点上面。
前面的几篇文章对嵌入式硬件方面做了几个总结,现在对嵌入式软件方面做一些个人的归纳,再结合历年真题分析一下,对我认为常见的考点梳理了一下,不知道对大家有没有用处。
在嵌入式软件设计中,操作系统基础尤为重要,可以考查的考点也特别的多。
我觉得它的地位就跟四六级英语考试中的阅读部分一样。
这部分内容不能吃透,很难将这个考试拿下来,当然也有例外的。
我只是想说明这部分的重要性。
闲话少数,进入正题。
二、复习笔记1、嵌入式软件基础(1)嵌入式软件的特点:A、规模较小。
B、开发难度大。
C、实时性和可靠性要求高。
D、要求固化存储。
(2)嵌入式软件分类:A、系统软件:控制和管理嵌入式系统资源,如嵌入式操作系统、驱动程序、中间件等。
B、应用软件:定义嵌入式设备的主要功能和用途,负载与用户进行交互。
C、支撑软件:辅助软件开发的工具软件。
(3)无操作系统的嵌入式软件的两种实现方式:A、循环轮转优点:简单、直观、开销小、可预测。
缺点:过于简单,所有代码顺序执行,无法处理异步事件,缺乏并行处理能力。
B、前后台系统(在循环轮转的基础上增加了中断处理功能)前台(事件处理级):中断服务程序,负载处理异步事件。
后台(任务级):一个无限循环,负载资源分配、任务管理和系统调度。
(4)有操作系统的三大优点:A、提高系统的可靠性。
B、提高了系统的开发效率,降低了开发成本,缩短了开发周期。
C、有利于系统的扩展与移植。
(5)设备驱动层(也叫板级支持包BSP:包含了嵌入式系统中所有与硬件相关的代码)大多数的嵌入式硬件设备都需要某种类型软件的初始化和管理。
计算机软件水平考试嵌入式系统设计师辅导笔记

总线带宽= 总线位宽×总线频率/8, 单位是MBps。
常用总线:ISA 总线、PCI 总线、IIC 总线、SPI 总线、PC104 总线和CAN 总线等。
(3)只有具有三态输出的设备才能够连接到数据总线上,常用的三态门为输出缓冲器。
(4)当总线上所接的负载超过总线的负载能力时,必须在总线和负载之间加接缓冲器或驱动器,最常用的是三态缓冲器,其作用是驱动和隔离。
系统级初始化:以软件为主的初始化过程,进行操作系统的初始化。
B、设计硬件相关的设备驱动。
(3)系统软件层:由RTOS、文件系统、GUI、网络系统及通用组件模块组成。
RTOS 是嵌入式应用软件的基础和开发平台。
(4)应用软件:由基于实时系统开发的应用程序组成。
3、实时系统
(5)NOR(或非)和NAND(与非)的门电路称为全能门电路,可以实现任何一种逻辑函数。
(6)译码器:多输入多输出的组合逻辑网络。
每输入一个n 位的二进制代码,在m 个输出端中最多有一个有效。
当m=2n 是,为全译码;当m<2n 时,为部分译码。
(7)由于集成电路的高电平输出电流小,而低电平输出电流相对比较大,采用集成门电路直接驱动LED
(2)奇偶检验码、海明码、循环冗余校验码(CRC)。(教程70 到77 页)
12、嵌入式系统的度量项目
(1)性能指标:分为部件性能指标和综合性能指标,主要包括:吞吐率、实时性和各种利用率。
(2)可靠性与安全性
可靠性是嵌入式系统最重要、最突出的基本要求,是一个嵌入式系统能正常工作的保证,一般用平均故障间隔时间MTBF 来度量。
F、网络设备的存储顺序问题取决于OSI 模型底层中的数据链路层。
软考嵌入式系统设计师教程后三章重点归纳

软考嵌入式系统设计师教程后三章重点归纳
嵌入式系统设计师的要求的话,你就知道了,他要求非常广,从软件到硬件都有,从理论到思想,再一个它的含金量却不高,那这个去找工作《国家级特色专业(物联网工程)规划教材:物联网与嵌入式系统开发》主要介绍物联网应用中的嵌入式系统的开发,以S3C2440为硬件,以嵌入式Linux为软件,详细介绍了物联网与嵌入式系统的关系、ARM Cortex的体系结构、ARM的指令和程序设计、S3C2440的硬件结构与编程、嵌入式Linux的开发和移植等内容,最后给出了在物联网应用中常用的嵌入式系统开发实例。
(软考嵌入式系统设计师)之存储管理复习笔记

嵌入式系统设计师考试复习笔记之存储管理篇引言2007年下半年通过了嵌入式系统设计师的考试,一大堆的复习资料都不知道扔那里好,卖掉又有点可惜,送人又没人要。
与其让当时的复习笔记沉沦书架底部,还不如整理一下让大家评论评论。
2008年11月的考试也快到了,如果能帮到有需要的人,那我真是乐坏了。
看看06和07年的题目,在存储管理方面的题目蛮多的,应该是一个重要考点。
无论是概念、理论、分析和计算都相当容易出题。
在我当时的复习笔记中这方面算最多了。
这里就先拿这个点说说吧,其他的以后有时间再写了。
1、存储器系统的层次架构计算机系统的存储器被组织城一个金字塔的层次结构。
自上而下为:CPU内部寄存器、芯片内部高速缓存(cache)、芯片外部高速缓存(SRAM、SDRAM、DRAM)、主存储器(FLASH、EEPROM)、外部存储器(磁盘、光盘、CF卡、SD卡)和远程二级存储器(分布式文件系统、WEB服务器),6个层次的结构。
上述设备从上而下,依次速度更慢、容量更大、访问频率更小,造价更便宜。
2、高速缓存(cache)工作原理(参照教程126页,博客画不了图):主要利用了程序的局部性特点。
地址映象是指把主存地址空间映象到cache的地址空间。
地址变换是指当程序或数据已经装入到cache后,在实际运行过程中,把主存地址如何编程cache空间的地址。
常用的地址映象和地址变换的方式有:(教程127页)直接映象和变换:速度快,造价低,但有局限性,不能充分利用cache的好处。
组相联地址映象和变换:速度稍慢但是命中率高。
全相联地址映象和变换:可以任意映射。
常用的cache替换算法:轮转法和随机替换算法。
高速缓存的分类:统一cache和独立的数据/指令cache写通cache和写回cache读操作分配cache和写操作分配cache3、存储管理单元(MMU)MMU在CPU和物理内存之间进行地址转换,将地址从逻辑空间映射到物理空间,这个过程称为内存映射。
(建筑工程考试)嵌入式系统工程师考试笔记精编

(建筑工程考试)嵌入式系统工程师考试笔记嵌入式系统设计师考试笔记之嵌入式系统基础知识欧浩源(ohy3686@)20080818壹、引言自《嵌入式系统设计师考试复习笔记之存储管理篇》于嵌入式于线的博客出现后,意外的得到很多朋友的关注和评论,收到不少朋友的邮件,问壹些有关考试的问题,希望得到我的复习笔记的其他部分。
我非常感谢他们,他们的热切关注,使我有了继续往下写的无限动力,使我萌生了将我以前的复习笔记、考试经验结合大纲教程且重新按《教程》的章节顺序整理壹份适合考生复习的笔记手册,笔记后面再分析历年的真题,按章节考点找出关联的考题进行分析,希望能和有兴趣的人们壹起讨论讨论。
嵌入式系统设计师的壹天考试分为上午和下午部分,俩部分的考试方式、试题难度、考点分布和复习方法均是不同的。
这次我们讨论的是嵌入式系统基础知识,我本人觉得,这部分出下午大题的可能性不大,主要是分布于上午的75道选择题之中。
从历年的真题和考试大纲来见,上午的选择题主要考查壹些基本概念,重要原理的理解,壹些关键技术和壹些重要的原理引申出来的简单计算。
根据这些考试特点,复习的时候能够采用适当的策略,当然每个人的方法均是不壹样的,适合自己的办法才是最好的办法。
方法大家能够自己慢慢去体会,我的也不多说了,通过笔记和真题分析就能够体现处理。
对于很多关键的知识点和基本概念,除了记住之外仍要彻底理解,否则出题的时候会进行壹些变换,或者引申壹些计算,那么就算你知道考那个考点,可能你也做不好。
于复习的过程中,你要记住:你不是要考壹个很高的分数,而是要考壹个通过的分数,于复习过程中能够放弃壹些内容,只要保证于大部分基本概念,关键技术,重要原理和历年考点上均把握住,能够拿到需要的分数就能够了。
二、复习笔记1、嵌入式系统的定义(1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
(2)嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。
嵌入式考试重点(老师画的)

作者:501工作室第一章:1.嵌入式系统的发展:(a) 直接编程控制阶段(b)简单操作系统阶段(c)实时操作系统阶段(d) 面向网络的嵌入式系统2.嵌入式系统的一般定义:嵌入式系统(Embedded System)是以应用为中心,以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,它将操作系统和功能软件集成于计算机硬件系统之中。
3.基本要素:(1)嵌入性(2)专用性(3)计算机系统4.基本特征:(1)专用性(2)小型化与有限资源(3)系统软硬件设计的协同一体化(4)软件开发需要交叉开发环境5.嵌入式系统的组成与体系结构6.嵌入式系统的种类7.软实时系统:不要求限定某一任务必须在一定的时间内完成,只要求各任务运行得越快越好。
硬实时系统:对系统响应时间有严格要求,一旦系统响应时间不能满足,就可能会引起系统崩溃或致命的错误,一般在工业控制中应用较多。
第二章:1.嵌入式处理器的种类:2.计算机指令集:RISC架构、CISC架构3.AMBA总线:4.ARM处理器7种模式5.ARM 处理器状态:ARM状态:32位,这种状态下执行的是字方式的ARM指令;Thumb状态:16位,这种状态下执行半字方式的ARM指令。
6.寄存器组织:(1)所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。
(2)在汇编语言中寄存器R0-R13为保存数据或地址值的通用寄存器。
(R0-R7未分组的,R8-R14分组寄存器)。
(3)寄存器R8-R12有两个分组的物理寄存器。
一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。
这样在发生FIQ中断后,可以加速FIQ的处理速度。
(4)寄存器R13、R14分别有6个分组的物理寄存器。
一个用于用户和系统模式,其余5个分别用于5种异常模式。
(5)R13常作为堆栈指针R14连接寄存器R15程序计数器7.R14(LR)寄存器与子程序调用、R14寄存器与异常发生、异常过程处理过程。
嵌入式系统设计师考试笔记之嵌入式系统基础知识

嵌入式系统设计师考试笔记之嵌入式系统基础知识欧浩源(ohy3686@)20080818一、引言自《嵌入式系统设计师考试复习笔记之存储管理篇》在嵌入式在线的博客出现后,意外的得到很多朋友的关注和评论,收到不少朋友的邮件,问一些有关考试的问题,希望得到我的复习笔记的其他部分。
我非常感谢他们,他们的热切关注,使我有了继续往下写的无限动力,使我萌生了将我以前的复习笔记、考试经验结合大纲教程并重新按《教程》的章节顺序整理一份适合考生复习的笔记手册,笔记后面再分析历年的真题,按章节考点找出相关的考题进行分析,希望能和有兴趣的人们一起讨论讨论。
嵌入式系统设计师的一天考试分为上午和下午部分,两部分的考试方式、试题难度、考点分布和复习方法都是不同的。
这次我们讨论的是嵌入式系统基础知识,我本人觉得,这部分出下午大题的可能性不大,主要是分布在上午的75道选择题之中。
从历年的真题和考试大纲来看,上午的选择题主要考查一些基本概念,重要原理的理解,一些关键技术和一些重要的原理引申出来的简单计算。
根据这些考试特点,复习的时候可以采用适当的策略,当然每个人的方法都是不一样的,适合自己的办法才是最好的办法。
方法大家可以自己慢慢去体会,我的也不多说了,通过笔记和真题分析就可以体现处理。
对于很多关键的知识点和基本概念,除了记住之外还要彻底理解,否则出题的时候会进行一些变换,或者引申一些计算,那么就算你知道考那个考点,可能你也做不好。
在复习的过程中,你要记住:你不是要考一个很高的分数,而是要考一个通过的分数,在复习过程中可以放弃一些内容,只要保证在大部分基本概念,关键技术,重要原理和历年考点上都把握住,能够拿到需要的分数就可以了。
二、复习笔记1、嵌入式系统的定义(1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
(2)嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。
嵌入式系统设计师考试笔记之嵌入式系统基础知识

嵌入式系统设计师考试笔记之嵌入式系统基础知识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)应用软件:由基于实时系统开发的应用程序组成。
嵌入式系统工程师-软考真题06-11笔记

嵌入式系统工程师-软考真题06-11笔记上午选择题2011:直接寻址:地址码送入PC(程序计数器)I/O与主存采用统一编址:输入输出采用访存;不需要专门的IO 指令;靠不同的地址代码来区分Cache由硬件完成CPU寄存器中,指令寄存器(IR)对用户是完全透明的CPU中译码器的作用是进行指令译码利用结构化分析模型进行接口设计时,应以数据流图为依据关键路径时从开始到结束的最长路径,也是完成项目最短的时间中央处理器CPU包括:控制器和运算器物理地址= 段寄存器的内容* 16+偏移地址*16相当于左移4位互斥型信号量对应的初值为1,值为1表示没有进程进入临界区防止优先级反转的方法:优先级继承、优先级天花板a##b 宏定义的含义是字符串连接TLB(Translation lookside buffer)即旁路转换缓冲,或称为页表缓冲文件系统采用二级目录结构,可以解决不同用户之间的文件同名冲突问题操作系统队列管理有入列、出列、转列、队列整理四种龙芯指令兼容MIPSA类网络可以有2^24个网络地址;TCP是传输层协议,使用3次握手协议建立连接刷新DNS解析器缓存,命令:ipconfig/flushdns冯诺依曼结构:数据与指令一起共用一个存储空间8086、ARM7、MIPS哈佛结构:数据与指令分开,两个相互独立的存储器ARM9、DSP、ARM10 -----------------------------------------------------------------------------------------------------2010:内存容量为4GB,字长为32,地址总线和数据总线的宽度都为32 编写汇编语言程序,程序员可以访问的是程序计数器(PC)使用大量连接请求攻击计算机,使资源消耗殆尽,属于拒绝服务攻击瀑布模型适合于软件需求很明确的软件项目;编译程序分析源程序的阶段依次是:词法分析、语法分析、语义分析15条地址线,16条双向数据线,SRAM容量=2^15 * 16 Byte 实时操作系统必须在被控制对象规定的时间内处理来自外部的事件页式虚拟存储管理,不要求将作业同时全部装入内存的连续区域软件能力成熟度模型,过程更改管理属于优化级的关键过程域冒泡排序,每次得到一个最大值放数组最后分布式系统,任意两台计算机可以利用通信交换信息,没有主次之分,资源为所有用户共享堆排序的时间复杂性O(nLog2n)3C模型:概念、上下文、内容中断方式效率最高ECC准确解释:自动错误检查与纠正公钥体系中,私钥用于解密和签名;公钥用于加密和认证HTTP协议,读取网页GET;HEAD读取网页头信息;POST把消息加到指定网页上HEML文档中标记的align属性用于定义对齐方式-----------------------------------------------------------------------------------------------------2009:RISC更适合采用硬布线逻辑执行指令海明码利用多组数位的奇偶性来检错和纠错智力活动规则和方法本身不被授予专利权,能取得专利权的是:用于控制测试过程的程序位图与矢量图相比,位图占用空间较大,处理侧重于获取和复制,显示速度快Jackson不属于面向对象方法回归测试是在软件发生变更之后进行的测试在单机计算机系统中,双总线结构计算机的总线系统一般由系统总线和内存总线组成在计算机中,Cache对程序员是透明的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习必备欢迎下载目录一、嵌入式软件开发概述.................................................................................................................. - 1 -1.嵌入式应用软件开发步骤:.................................................................................................... - 1 -2、嵌入式软件开发的特点:..................................................................................................... - 1 -3、嵌入式开发遇到的问题:..................................................................................................... - 1 -二、嵌入式程序设计语言.................................................................................................................. - 1 -1、程序设计语言概述................................................................................................................. - 1 -2、汇编语言................................................................................................................................. - 1 -3、面向过程的语言..................................................................................................................... - 2 -4、面向对象的语言..................................................................................................................... - 2 -5、汇编、编译、解译程序的基本原理..................................................................................... - 2 -三、嵌入式软件开发环境.................................................................................................................. - 2 -四、嵌入式软件开发.......................................................................................................................... - 3 -1、嵌入式平台选型..................................................................................................................... - 3 -2、软件设计................................................................................................................................. - 3 -3、嵌入式程序设计..................................................................................................................... - 3 -4、编码......................................................................................................................................... - 3 -5、测试......................................................................................................................................... - 3 -6、下载运行................................................................................................................................. - 4 -五、嵌入式软件移植.......................................................................................................................... - 4 -一、嵌入式软件开发概述1.嵌入式应用软件开发步骤:⑴、硬件的设计与实现;⑵、设备驱动软件的设计与实现;⑶、嵌入式操作系统的选择,移植,以及API 接口函数的设计;⑷、支撑软件的设计与调试;⑸、应用程序的设计与调试;⑹、系统联调、样机交付。
2、嵌入式软件开发的特点:⑴、需要交叉编译工具;⑵、通过仿真手段进行调试;⑶、开发板是中间目标机;⑷、可利用的资源有限;⑸、需要与硬件打交道;3、嵌入式开发遇到的问题:⑴、软件硬协同设计;⑵嵌入式操作系统;⑶、代码优化;⑷、有限的I/O资源;二、嵌入式程序设计语言1、程序设计语言概述⑴机器语言:是与计算机硬件关系最为密切的计算机语言,在计算机硬件上执行的就是一条条用机器语言来编写的指令;汇编语言:基本思路是用符号的形式来代替二进行的指令。
低级语言:通常将机器语言和汇编语言统称为低级语言。
⑵语言处理程序语言处理程序:担任翻译任务的程序称为语言处理程序。
包括:汇编程序、解释程序、编译程序。
源程序:用汇编语言或某程高级语言编写的程序。
源程序不能直接在计算机上运行。
解释程序:也称解释器,它直接解释执行源程序、或将源程序翻译成某种中间表示形式后再执行。
编译程序:是将源程序翻译成目标语言程序,然后在计算机上运行。
区别:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行;而在解释方式下,解释程序和源程序要参与程序的运行过程中,运行控制权在解释程序。
程序设计语言的定义⑶包括:语法、语义、语用、语境。
2、汇编语言⑴、基本原理:为特定计算机或计算机系统设计的面向机器的符号化程序设计语言。
包括三类语句:指令语句、伪指令语句、宏指令语句。
指令语句:又称机器指令语句,将其汇编后能产生相应的机器代码,这些代码能被CPU直接识别并执行相应的操作;伪指令语句:指示汇编程序在对源程序进行汇编时完成某些工作。
区别:伪指令在汇编后不产生机器代码,而指令语句产生机器代码。
常用:定义伪指令EQU;存储定义伪指令DCB;汇编控制伪指令IF、ELSE、ENDIF,WHILE WEND;开始伪指令ENTRY;结束伪指令END。
宏指令:将多次重复使用的程序段定义为宏⑵、ARM汇编语言格式:ARM语言以段为单位组织源文件。
段是相对独立的、具有特定名称的、不可分割的指令或数序列。
段可以分为代码段和数据段,代码段存放执行代码、数据段存放代码运行时用到的数据。
一个ARM源程序至少要一个代码段。
ARM汇编语言程序经过汇编处理后生成一个可执行的映像文件,包括:一个或多处代码段,代码段通常是只读的;0个或多个包含初始值的数据段,通常可读写;0个或多处不含初始值的数据段,可读写;3、面向过程的语言定义:也叫命令式语言或强制式语言,通过一系列可执行的运算及运算的先后次序来描述计算的过程。
过程序式语言包括:数据、运算、控制、函数。
数据成分:是一种程序语言的数据类型。
数据属性:包括名称、类型、存储类别、作用域、生存周期。
运算成份:算术运算、关系运算、逻辑运算。
控制成份:顺序、选择、重复;函数:是程序模块的主要成份,它是一段具有独立功能的程序,包括三个概念:函数定义,函数声明、函数调用。
一次函数调用的步骤:⑴、在内存的栈空间当中为其分配一个栈帧,用来存放该函数的形参变量和局部变量;⑵、把实参变量的值复制到相应的形参变量中;⑶、控制流转移到该函数的起始位置;⑷、该函数开始执行;⑸、当这个函数执行完成后,控制流和返回值返回到函数调用点。
4、面向对象的语言面向对象=对象+分类+继承+通过消息的通信对象:是基本运行时的实体,包括数据(属性),数据操作的行为,所以一个对象将属性和行为封装成一个整体。
由对象名、属性、操作三个部分组成。
方法:在对象内的操作称为方法;消息:对象之间进行通信的一种构造;类:定义了一组大体上相似的对象,类是在对象之上的抽象,对象是类的具体化。
继承:父类和子类之间共享数据和方法的机制。
多态:不同的对象收到同一消息可以产生完成不同的结果,这一现象称为多态。
动态绑定:是一个把过程调用和响应调用所需要执行的代码加以结全的过程。
C++:一种面向对象的语言,支持面向对象,也支持面向过程。
5、汇编、编译、解译程序的基本原理⑴、汇编程序:是将汇编语言源程序翻译成机器语言程序。
汇编程序一般至少需要两次扫描源程序才能完成翻译过程:第一次主要工作是定义符号的值并创建一个符号表ST;第二次是扫描的任务产生目标程序。
⑵、编译程序:功能是把某些高级语言编写的源程序翻译成与之等价的目标语言程序。
分成六个阶段:词法分板阶段、语法分板阶段、语议分析阶段、中间代码生成阶段、代码优化阶段、目标代码生成阶段。