




已阅读5页,还剩141页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统基础复习吴立锋 嵌入式系统的定义 基本概念计算机分类嵌入式系统的定义实时系统定义嵌入式系统的特点嵌入式系统的体系结构 IEEE定义 根据IEEE 国际电气和电子工程师协会 的定义 嵌入式系统是 用于控制 监视或者辅助操作机器和设备的装置 原文为devicesusedtocontrol monitor orassisttheoperationofequipment machineryorplants 嵌入式系统广义和狭义定义 广义上讲 凡是带有微处理器的专用软硬件系统都可称为嵌入式系统 狭义上讲 我们更加强调那些使用嵌入式微处理器构成独立系统 具有自己操作系统 具有特定功能 用于特定场合的嵌入式系统 这里所谓的嵌入式系统是指狭义上的嵌入式系统 一般定义 以应用为中心 以计算机技术为基础 软件硬件可裁剪 功能 可靠性 成本 体积 功耗严格要求的专用计算机系统 实时系统定义 实时系统的正确性依赖于运行结果的逻辑正确性和运行结果产生的时间正确性 即实时系统必须在规定的时间范围内正确地响应外部物理过程的变化 嵌入式系统的特点 1 系统内核小 2 嵌入专用 3 综合性强 4 设计高效 5 程序固化 6 需要独立的开发系统 7 生命周期长 8 可靠性高 成本低 资源受限 功耗低等等 嵌入式系统的应用领域 嵌入式应用 信息家电 智能玩具 军事电子 通信设备 移动存贮 工控设备 智能仪表 汽车电子 网络设备 消费电子 军事国防 电子商务 网络 工业控制 嵌入式微处理器介绍嵌入式处理器体系结构嵌入式微处理器的分类存储器介绍嵌入式微处理器分类 嵌入式系统硬件基础 嵌入式微处理器概述 嵌入式硬件系统的基本结构 硬件层 1 微处理器体系结构冯诺依曼体系结构哈佛体系结构指令系统RISCCISC种类很多 ARM MIPS X86等 控制单元 作用 取指 译码和取操作数等发送主要的控制指令构成程序计数器 ProgramCounter PC 指令寄存器 InstructionRegister IR 记录下一条指令在内存中的位置 以便控制单元能到正确的内存位置取指 存放被控单元所取的指令 译码 控制信号 算数逻辑单元处理 算数逻辑单元 作用 算数运算逻辑运算寄存器存储暂时性数据 从存储器中取数据 给算数逻辑单元 和处理后数据 算数逻辑单元 冯 诺依曼体系结构 哈佛体系结构 冯 8086系列的CPU ARM7 MIPS系列哈 MC68系列 ARM9 ARM10 ARM11 CISC和RISC CISC 复杂指令集 ComplexInstructionSetComputer 具有大量的指令和寻址方式8 2原则 80 的程序只使用20 的指令大多数程序只使用少量的指令就能够运行 RISC 精简指令集 ReducedInstructionSetComputer 在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单 CISC与RISC的对比 Load Store指令体系由于ARMCPU并不直接处理内存中的数据指令体系就担起了在寄存器和内存之间交换数据的重要媒介 它要比x86的内存访问机制复杂一些 信息存储的字节顺序 字节最小的可寻址的存储单元每个字节用唯一的数字标识 即地址 address 通常8位构成1个字节地址集合 存储空间软件而言 将存储器看作字节数组 虚拟存储器字长表明整数和指令数据的大小字长表明处理器寻址能力 如32位处理器一次处理4个字节 n位字长 寻址 0 2n 1 多字节的数据存储问题Little Endian低位字节排放在内存的低地址端 高位字节排放在内存的高地址端 Big Endian高位字节排放在内存的低地址端 低位字节排放在内存的高地址端 例 32位字长微处理器定义int常量a 地址 0 x8000十六进制 0 x01234567 小端存储法 大端存储法 各种存储器特性的比较 存储器系统 SRAM比DRAM快SRAM比DRAM耗电多DRAM存储密度比SRAM高得多DRAM需要周期性刷新 嵌入式微处理器分类 ARM嵌入式微处理器体系结构 ARM ARM流水线 计算机指令执行过程的各个阶段相对独立 因此CPU内部的指令译码执行逻辑电路可以设计成分级的处理部件 实行流水处理 即流水线方式 实质 几个指令可以并行执行流水线技术大大加快了处理器的指令执行速度 现代CPU设计方案中几乎都采用了流水线技术 ARM处理器设计也不例外 所有的ARM处理器核都使用了流水线设计 ARM7流水线 ARM7TDMI核使用3级指令流水线 ARM7处理器核的指令执行分为3个阶段 取指 译码和执行 取指 由取指部件处理 把指令从内存中取出 放入指令流水线 译码 指令被译码 在这一级指令占有译码逻辑 不占有数据通路 执行 执行流水线中已经被译码的指令 在这一级 指令占有数据通路 移位操作 读通用寄存器 ALU产生结果 写通用寄存器 并非所有的ARM机器指令能够在一个时钟周期内完成执行阶段的操作单周期指令一个时钟周期内能够完成执行阶段操作的指令ADD AND多周期指令两个或两个以上时钟周期能够完成执行阶段的指令数据装载和存储指令STR LDR 单周期指令 问题 1 单周期指令如何理解3级流水执行方式3条指令同时进行 每个时钟周期完成1条指令的执行 多周期指令 执行需要2个周期计算保存寄存器数值的内存地址存储数据 占用存储器 占用数据通道 流水线技术相关问题 流水线结构问题指令在流水线中重叠执行时 产生资源冲突三级流水线冯诺依曼结构中 指令和数据同存储器 访问数据和指令不能同时进行采用分离式指令cache和数据cacheALU中采用单独加法器来完成地址计算 使执行周期的运算不产生资源冲突 流水线技术相关问题 流水线数据问题指令需要前面指令的执行结果 但这些指令均在流水线中重叠执行定向技术将前一条指令的运算结果直接传递给后面需要的指令 而不必写入寄存器之后 再读取流水线互锁当指令需要的数据因为以前的指令没有执行完且没有准备好就回产生互锁 编译器以及汇编程序员可以通过重新设计代码的顺序或其他方法减少管道互锁的数量 互锁例子 LDRRO R1 R1 R0ADDR4 R3 R0 R3 R0 R4SUBR6 R7 R8 R7 R8 R6LDR需要2个时钟周期完成执行可将后两条指令颠倒顺序 指令流水线 以ARM为例 为增加处理器指令流的速度 ARM7系列使用3级流水线 允许多个操作同时处理 比逐条指令执行要快 PC指向正被取指的指令 而非正在执行的指令 Fetch Decode Execute 从存储器中读取指令 解码指令 寄存器读 从寄存器Bank 移位及ALU操作寄存器写 到寄存器Bank PCPC PC 4PC 2 PC 8PC 4 ARMThumb ARM微处理器的工作状态 从编程的角度看 ARM微处理器的工作状态一般有两种 并可在两种状态之间切换 ARM状态 此时处理器执行32位的字对齐的ARM指令Thumb状态 此时处理器执行16位的 半字对齐的Thumb指令 处理器工作模式 1 ARM处理器有7种工作模式 处理器工作模式 2 特权模式 除用户模式外 其它模式均为特权模式 ARM内部寄存器和一些片内外设在硬件设计上只允许 或者可选为只允许 特权模式下访问 此外 特权模式可以自由的切换处理器模式 而用户模式不能直接切换到别的模式 处理器工作模式 3 用户和系统模式 这两种模式都不能由异常进入 而且它们使用完全相同的寄存器组 系统模式是特权模式 不受用户模式的限制 操作系统在该模式下访问用户模式的寄存器就比较方便 而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源 ARM状态各模式下的寄存器 ARM状态各模式下的寄存器 所有的37个寄存器 分成两大类 31个通用32位寄存器 6个状态寄存器 ARM状态各模式下可以访问的寄存器 一般的通用寄存器 在汇编语言中寄存器R0 R13为保存数据或地址值的通用寄存器 它们是完全通用的寄存器 不会被体系结构作为特殊用途 并且可用于任何使用通用寄存器的指令 一般的通用寄存器 其中R0 R7为未分组的寄存器 也就是说对于任何处理器模式 这些寄存器都对应于相同的32位物理寄存器 一般的通用寄存器 寄存器R8 R14为分组寄存器 它们所对应的物理寄存器取决于当前的处理器模式 几乎所有允许使用通用寄存器的指令都允许使用分组寄存器 一般的通用寄存器 寄存器R8 R12有两个分组的物理寄存器 一个用于除FIQ模式之外的所有寄存器模式 另一个用于FIQ模式 这样在发生FIQ中断后 可以加速FIQ的处理速度 一般的通用寄存器 寄存器R13 R14分别有6个分组的物理寄存器 一个用于用户和系统模式 其余5个分别用于5种异常模式 堆栈指针寄存器R13 SP 寄存器R13常作为堆栈指针 SP 在ARM指令集当中 没有以特殊方式使用R13的指令或其它功能 只是习惯上都这样使用 但是在Thumb指令集中存在使用R13的指令 链接寄存器R14 LR R14为链接寄存器 LR 在结构上有两个特殊功能 在每种模式下 模式自身的R14版本用于保存子程序返回地址 当发生异常时 将R14对应的异常模式版本设置为异常返回地址 有些异常有一个小的固定偏移量 程序计数器R15 PC 寄存器R15为程序计数器 PC 它指向正在取指的地址 可以认为它是一个通用寄存器 但是对于它的使用有许多与指令相关的限制或特殊情况 如果R15使用的方式超出了这些限制 那么结果将是不可预测的 程序状态寄存器 1 ARM7TDMI包含当前程序状态寄存器 CPSR 加上5个程序状态保存寄存器SPSR 当异常发生时 用于保存CPSR的状态这些寄存器的功能是 保存ALU当前操作信息控制允许和禁止中断设置处理器操作模式 程序状态寄存器 条件位 N 1 结果为负 0 结果为正或0Z 1 结果为0 0 结果不为0C 1 进位 0 借位V 1 结果溢出 0结果没溢出Q位 仅ARM5TE J架构支持指示增强型DSP指令是否溢出J位仅ARM5TE J架构支持J 1 处理器处于Jazelle状态 中断禁止位 I 1 禁止IRQ F 1 禁止FIQ TBit仅ARMxT架构支持T 0 处理器处于ARM状态T 1 处理器处于Thumb状态Mode位 处理器模式位 0b10000User0b10001FIQ0b10010IRQ0b10011Supervisor0b10111Abort0b11011Undefined0b11111System 异常和中断 异常 Exception 是指任何打断处理器正常执行 并且迫使处理器进入一个由有特权的特殊指令执行的事件 异常可分为两类 同步异常 synchronousexceptions 和异步异常 asynchronousexceptions 异常向量 ExceptionVectors ARM的异常优先级 VectorTable 异常处理 当异常产生时 ARMcore 拷贝CPSR到SPSR 设置适当的CPSR位 改变处理器状态进入ARM态改变处理器模式进入相应的异常模式设置中断禁止位禁止相应中断 如需要 保存返回地址到LR 设置PC为相应的异常向量返回时 异常处理需要 从SPSR 恢复CPSR从LR 恢复PCNote 这些操作只能在ARM态执行 Vectortablecanbeat0 xFFFF0000onARM720TandonARM9 10familydevices FIQ IRQ Reserved DataAbort PrefetchAbort SoftwareInterrupt UndefinedInstruction Reset 图示进入异常过程 1 程序在系统模式下运行用户程序 假定当前处理器状态为Thumb状态 允许IRQ中断 2 用户程序运行时发生IRQ中断 硬件完成以下动作 置位I位 禁止IRQ中断 清零T位 进入ARM状态 设置MOD位 切换处理器模式至IRQ模式 将下一条指令的地址存入IRQ模式的LR寄存器 将CPSR寄存器内容存入IRQ模式的SPSR寄存器 将跳转地址存入PC 实现跳转 BackAddr JumpAddr 表示对该位不关心 在异常处理结束后 异常处理程序完成以下动作 图示退出异常过程 将SPSR寄存器的值复制回CPSR寄存器 将LR寄存的值减去一个常量后复制到PC寄存器 跳转到被中断的用户程序 BackAddr JumpAddr return BackAddr 4 表示对该位不关心 ARM指令集与编程 指令长度 指令集可以是以下任一种32bits长 ARM状态 16bits长 Thumb状态 ARM7TDMI支持3种数据类型字节 8 bit 半字 16 bit 字 32 bit 字必须被排成4个字节边界对齐 半字必须被排列成2个字节边界对齐 ARM指令集的特点 Load store结构 load store 从存储器中读某个值 操作完后再将其放回存储器中只对存放在寄存器的数据进行处理 对于存储器中的数据 只能使用load store指令进行存取 ARM指令的寻址方式 寻址方式 处理器根据指令中给出的地址信息来寻找物理地址的方式 7种寻址方式寄存器寻址立即寻址寄存器间接寻址寄存器变址寻址多寄存器寻址相对寻址堆栈寻址 ARM指令的寻址方式 立即寻址也叫立即数寻址 是一种特殊的寻址方式 操作数本身就在指令中给出 只要取出指令也就取到了操作数 这个操作数被称为立即数 对应的寻址方式也就叫做立即寻址 例如以下指令 ADDR0 R0 1 R0 R0 1ADDR0 R0 0 x3f R0 R0 0 x3f ARM指令的寻址方式 寄存器寻址寄存器寻址就是利用寄存器中的数值作为操作数 指令中地址码给出的是寄存器编号 例如以下指令 ADDR0 R1 R2 R0 R1 R2 ARM指令的寻址方式 寄存器间接寻址寄存器间接寻址就是以寄存器中的值作为操作数的地址 这个寄存器相当于指针的作用 在基址加变址的寻址方式中 它作为基址寄存器来存放基址地址 而操作数本身存放在存储器中 例如以下指令 ADDR0 R1 R2 R0 R1 R2 LDRR0 R1 R0 R1 ARM指令的寻址方式 基址变址寻址基址变址寻址就是将寄存器 该寄存器一般称作基址寄存器 的内容与指令中给出的地址偏移量相加 从而得到一个操作数的有效地址 用于访问基址附近的存储器单元 ARM指令的寻址方式 基址变址寻址变址寻址方式可分为 前变址模式LDRR0 R1 4 R0 R1 4 自动变址模式LDRR0 R1 4 R0 R1 4 R1 R1 4后变址模式LDRR0 R1 4 R0 R1 R1 R1 4偏移地址LDRR0 R1 R2 R0 R1 R2 LDRR0 R1 R2 LSL 2 R0 R1 R2 4 ARM指令的寻址方式 多寄存器寻址多寄存器寻址又称为块拷贝寻址 是多寄存器传送指令Load Store的寻址方式 Load Store指令可把存储器中的一个数据块加载到多个寄存器中 也可把多个寄存器中的内容保存到存储器中 例如以下指令 LDMIAR0 R1 R2 R3 R4 R1 R0 R2 R0 4 R3 R0 8 R4 R0 12 ARM指令的寻址方式 堆栈寻址堆栈是一种数据结构 按先进后出 FirstInLastOut FILO 的方式工作 使用一个称作堆栈指针 SP 的专用寄存器指示当前的操作位置 堆栈指针总是指向栈顶 ARM指令的寻址方式 堆栈寻址在ARM指令中 堆栈寻址也是通过Load Store指令来实现的 例如 STMFDSP R1 R7 LR 将R1 R7 LR入栈LDMFDSP R1 R7 LR 数据出栈 放入R1 R7 LR寄存器在Thumb指令中 堆栈寻址通过PUSH POP指令来实现 例如 PUSH R1 R7 LR 将R1 R7 LR入栈POP R1 R7 PC 数据出栈 放入R1 R7 PC寄存器 ARM指令的寻址方式 相对寻址与基址变址寻址方式相类似 相对寻址以程序计数器PC的当前值为基地址 指令中的地址标号作为偏移量 将两者相加之后得到操作数的有效地址 ARM指令的寻址方式 相对寻址以下程序段完成子程序的调用和返回 跳转指令BL采用了相对寻址方式 BLNEXT 跳转到子程序NEXT处执行 NEXT 子程序入口地址 MOVPC LR 从子程序返回 ARM指令集 ARM指令集 ARM指令集总体分为六大类 1 数据处理指令2 程序状态寄存器访问指令3 Load Store指令4 跳转指令 转移指令 5 异常中断指令6 协处理器指令 ARM指令集 数据处理指令 1 数据处理指令数据传送指令用于在寄存器和存储器之间进行数据的双向传输 算术逻辑运算指令完成常用的算术与逻辑的运算 该类指令不但将运算结果保存在目的寄存器中 同时更新CPSR中的相应条件标志位 比较指令不保存运算结果 只更新CPSR中相应的条件标志位 桶形移位器的使用 PREr0 8 r2 5MOVr0 r2 LSL 2 逻辑左移两位 r2 2 r5 4 POSTr0 20 r2 5 ARM指令集 2 程序状态寄存器访问指令ARM微处理器支持程序状态寄存器访问指令 用于在程序状态寄存器和通用寄存器之间传送数据 程序状态寄存器访问指令包括以下两条 MRS 程序状态寄存器到通用寄存器的数据传送指令 MSR 通用寄存器到程序状态寄存器的数据传送指令 MRSR3 CPSR 将CPSR的内容送到R3MRSR2 SPSR 将SPSR的内容送到R2适用的三个场合状态寄存器的内容不能直接访问 通过 读 修改 写 异常中断允许嵌入时 进入中断前 保存当前的SPSR当进程切换时要保存当前的SPSR ADS与ARM汇编程序设计 生成二进制文件的过程 ARM汇编程序的段 ARM汇编语言是以段 section 为单位来组织源文件的 段是相对独立的 具有特定名称的 不可分割的指令或者数据序列 段又可以分为代码段和数据段 代码段存放执行代码 数据段存放代码运行时需要用到的数据 一个ARM源程序至少需要一个代码段 大的程序可以包含多个代码段和数据段 ARM程序结构 AREAAmex CODE READONLYENTRYStartMOVR0 10MOVR1 3ADDR0 R0 R1StopMOVR1 0X18SWI0 x123456END 1 ARM汇编程序 以段为单位组织程序2 段可以分为代码段和数据段 一个汇编程序至少应该有一个代码段 当程序较长时 可以分割为多个代码段和数据段4 多个段在程序编译链接时最终形成一个可执行的映象文件5 可执行映象文件通常由以下几部分构成一个或多个代码段 代码段的属性为只读零个或多个包含初始化数据的数据段 数据段的属性为可读写 6 使用AREA伪指令定义一个段 程序入口 即程序中第一条可执行的指令 可执行指令 程序结束 其他伪指令 AREA AREA段名属性 说明 AREA用于定义一个代码段 数据段或者特定属性的段 如果段名以数字开头 那么该段名需用 字符括起来 如 7wolf 用C的编译器产生的代码一般也用 括起来 属性部分表示该代码段 数据段的相关属性 多个属性可以用 分隔 常见属性如下 DATA 定义数据段 CODE 定义代码段 READONLY 表示本段为只读 READWRITE 表示本段可读写 ALIGN 表达式 对齐方式为2表达式次方 例如 表达式 3 则对齐方式为8字节对齐 表达式的取值范围为0 31 COMMON属性 定义一个通用段 这个段不包含用户代码和数据 其他伪指令 CODE16 CODE32 CODE16 CODE32说明 CODE16伪操作指示编译器后面的代码为16位的Thumb指令 CODE32伪操作指示编译器后面的代码为32位的ARM指令 ENTRY ENTRY说明 ENTRY用于指定汇编程序的入口 在一个完整的汇编程序中至少要有一个ENTRY 程序中也可以有多个 此时 程序的真正入口点可在链接时指定 但在一个源文件里最多只能有一个ENTRY或者没有ENTRY 其他伪指令 END END说明 END 告诉编译器已经到了源程序的结尾 实时操作系统 C OS II 1 上下文切换 ContextSwitching 多任务系统中 上下文切换是指CPU的控制权由运行任务转移到另外一个就绪任务时所发生的事件 当前运行任务转为就绪 或者挂起 删除 状态 另一个被选定的就绪任务成为当前任务 上下文切换包括保存当前任务的运行环境 恢复将要运行任务的运行环境 上下文的内容依赖于具体的CPU 2 互斥 MutualExclusion 互斥是用来控制多任务对共享数据进行串行访问的同步机制 在多任务应用中 当两个或多个任务同时访问共享数据时 可能会造成数据破坏 互斥使它们串行地访问数据 从而达到保护数据的目的 3 任务 Tasks 任务是OS中独立运行的单元 4 进程 Aprocess aprograminexecution 一个进程应该包括 程序的代码 程序的数据 PC中的值 用来指示下一条将运行的指令 一组通用的寄存器的当前值 堆 栈 一组系统资源 如打开的文件 总之 进程包含了正在运行的一个程序的所有状态信息 main A PROCESS AprogramisCstatementsorcommands静态的 Aprocessisprogram runningcontext动态的 main A PROGRAM heap StackAMain Registers PC Process Program 5 任务的调度 在操作系统中 负责去做这个选择的那部分程序 称为调度程序或调度器 scheduler 调度程序在决策过程中所采用的算法 称为是调度算法 调度程序是CPU资源的管理者 程序进行时可使用的软硬件环境称为资源 2个以上任务可同时访问的共享资源称为临界资源 任何任务所占用的实体都可称为资源 资源可以是输入输出设备 例如打印机 键盘 显示器 资源也可以是一个变量 一个结构或一个数组等 资源与临界资源 7 内核 Kernel 多任务系统中 内核负责管理各个任务 或者说为每个任务分配CPU时间 并且负责任务之间的通讯 内核提供的基本服务是任务切换 内核本身也增加了应用程序的额外负荷 代码空间增加ROM的用量 内核本身的数据结构增加了RAM的用量 但更主要的是 每个任务要有自己的栈空间 通过提供必不可少的系统服务 诸如信号量管理 邮箱 消息队列 延时等 实时内核使得CPU的利用更为有效 8 调度 Scheduler 内核的主要职责之一 决定该轮到哪个任务运行了 多数实时内核是基于优先级调度法的 每个任务根据其重要程度的不同被赋予一定的优先级 基于优先级的调度法指 CPU总是让处在就绪态的优先级最高的任务先运行 究竟何时让高优先级任务掌握CPU的使用权 有两种不同的情况 这要看用的是什么类型的内核 是不可剥夺型 非占先式 的还是可剥夺型 占先式 内核 两种调度方式 不可抢占 non preemptive 调度方式 一个进程若被选中就一直运行下去 直到它被阻塞 I O 或正在等待其他进程 或主动地交出CPU 可抢占 preemptive 调度方式 当一个进程在运行时 调度程序可以打断它 1 4 C OS简介 1 C OS MicroControllerOS 微控制器操作系统2 C OS简介美国人JeanLabrosse1992年完成1998年 C OS II2000年 得到美国航空管理局 FAA 的认证 可以用于飞行器中网站www ucos II com 应用面覆盖了诸多领域 如照相机 医疗器械 音响设备 发动机控制 高速公路电话系统 自动提款机等 公开源代码 C OS的性能特点 一 可移植性 Portable 绝大部分 C OS II的源码是用移植性很强的ANSIC写的和微处理器硬件相关的那部分是用汇编语言写的 汇编语言写的部分已经压到最低限度 使得 C OS II便于移植到其他微处理器上 汇编语言写的部分只有200行左右 C OS II可以在绝大多数8位 16位 32位以至64位微处理器 微控制器 数字信号处理器 DSP 上运行 移植范例的源代码可以从因特网上下载 可裁剪 Scalable os cfg h 可以只使用 C OS II中应用程序需要的那些系统服务 也就是说某产品可以只使用很少几个 C OS II调用 而另一个产品则使用了几乎所有 C OS II的功能 这样可以减少产品中的 C OS II所需的存储器空间 RAM和ROM 这种可剪裁性是靠条件编译实现的 多任务 C OS II可以管理64个任务 然而 目前这一版本保留8个给系统 应用程序最多可以有56个任务占先式 Preemptive C OS的性能特点 二 可确定性全部 C OS II的函数调用与服务的执行时间具有可确定性 任务栈每个任务有自己单独的栈 C OS II允许每个任务有不同的栈空间 以便压低应用程序对RAM的需求 系统服务 C OS II提供很多系统服务 例如邮箱 消息队列 信号量 块大小固定的内存的申请与释放 时间相关函数等 中断管理中断可以使正在执行的任务暂时挂起 如果优先级更高的任务被该中断唤醒 则高优先级的任务在中断嵌套全部退出后立即执行 中断嵌套层数可达255层 可固化 ROMable C OS II是为嵌入式应用而设计的 这就意味着 只要读者有固化手段 C编译 连接 下载和固化 C OS II可以嵌入到读者的产品中成为产品的一部分 稳定性与可靠性 C OS的性能特点 三 C OS IITaskStructure 任务的几个特征 任务通常是一个无限的循环返回参数类型必须定义成void 当任务开始执行时 可以有一个参数传递给用户任务代码 也可以使用while 1 语句 实现无限的循环 任务可以有返回值类型和参数 但任务函数永远不会返回 任务完成后 任务可以自我删除 C OS 可以管理多达64个任务 每个任务被赋以不同的优先级 取值从0到OS LOWEST PRIO 2 数值越小 优先级越高 系统保留了优先级为0 1 2 3 OS LOWEST PRIO 3 OS LOWEST PRI0 2 OS LOWEST PRI0 1以及OS LOWEST PRI0这8个任务以被将来使用 用户可以有56个应用任务 任务的优先级同样也是它的标识号ID OS CFG H中定义 63 状态的转换 删除任务 任务的调度 C OS是可抢占实时多任务内核 它总是运行就绪任务中优先级最高的那一个 C OS中不支持时间片轮转法 每个任务的优先级要求不一样且是唯一的 所以任务调度的工作就是 查找准备就绪的最高优先级的任务并进行上下文切换 C OS任务调度所花的时间为常数 与应用程序中建立的任务数无关 任务间通信与同步 任务间通信的管理 事件控制块ECB 信号量 Semaphores 邮箱 MessageMailboxes 消息队列 MessageQueues 嵌入式系统S3C2410及硬件系统结构设计 S3C2410A片上资源 ARM920T核 工作频率203MHz 16KB数据Cache 16KB指令Cache MMU 外部存储器控制器 LCD控制器 支持黑白 灰度 ColorSTN TFT屏 触摸屏接口 NANDFLASH控制器 SD MMC接口支持 4个DMA通道 3通道UART 1个多主I2C总线控制器 1个IIS总线控制器 4通道PWM定时器及一个内部定时器 117个通用I O口 24个外部中断源 8通道10位ADC 实时时钟及看门狗定时器等 两个USB主 一个USB从 寻址 内核提供了 位的地址总线 可以访问 的线性地址空间 而 的内部地址总线是 能够访问的最大外部地址空间是 即 的地址空间 可见 仅利用了 的 位地址总线的低 位 将 的外部地址空间分成了 个存储器组 每个组的大小为 其中 个用于 等存储器 个用于 等存储器 当 对外寻址时 采用了部分译码的方式 即低位地址线用于外围存储器的片内寻址 而高位地址线用于外围存储器的片外寻址 可以利用内部地址总线的高 位 来选择该地址属于哪一个存储器组 从而激活相应的 选择信号 并且使用外部地址总线 来实现相应 的内部寻址 寻址范围为 从而使得其外围地址访问空间为 正是通过这种机制来完成外部地址空间的寻址全过程 串行接口设计 概念 1 通信的基本形式串行传输并行传输 单工半双工全双工 串行通讯 串行通讯协议有很多种 像RS232 RS485 RS422 甚至现今流行的USB等都是串行通讯协议 而串行通讯技术的应用无处不在 最多就是电脑的串口与Modem的通讯 一条串行线进行两台电脑之间的数据共享 手机 PDA USB鼠标 键盘等等都是以串行通讯的方式与电脑连接 多串口卡 各种种类的具有串口通讯接口的检测与测量仪器 串口通讯的网络设备等 波特率 波特率即调制速率 指的是信号被调制以后在单位时间内的波特数 即单位时间内载波参数变化的次数 它是对信号传输速率的一种度量 通常以 波特每秒 Bps 为单位 比特率是对信息传输速率 传信率 的度量 波特率可以被理解为单位时间内传输码元符号的个数 传符号率 通过不同的调制方法可以在一个码元上负载多个比特信息 因此信息传输速率即比特率在数值上和波特率有这样的关系 RS232 RS485 RS422的区别 1 传输电缆长度RS 232一般用于20m以内的通信 RS422和RS485在19kpbs下能传输1200米 2 工作方式RS232是单端输入输出 双工工作时至少需要数字地线 发送线和接受线三条线 异步传输 还可以加其它控制线完成同步等功能 存在共地噪声和不能抑制共模干扰等问题 RS422通过两对双绞线可以全双工工作收发互不影响 而RS485只能半双工工作 发收不能同时进行 但它只需要一对双绞线 RS485和RS422电路原理基本相同 都是以差动方式发送和接受 不需要数字地线 RS232 RS485 RS422的转换 3 电气特性RS 485 RS422的电气特性 逻辑 1 以两线间的电压差为 2 6 V表示 逻辑 0 以两线间的电压差为 2 6 V表示2 在RS 232 C中任何一条信号线的电压均为负逻辑关系 即 逻辑 1 5 15V 逻辑 0 5 15V 使用UART0通信 S3C2410的I O电压为3 3V 可承受5V 连接时须注意电平的匹配 与PC机相连时 由于PC机串口是RS232电平 所以连接时需要使用RS232转换器 IO口设计 I O接口的编址方式 端口映射 1 I O接口独立编址 端口映射方式这种编址方式是将存储器地址空间和I O接口地址空间分开设置 互不影响 设有专门的输入指令 IN 和输出指令 OUT 来完成I O操作 主要优点 内存地址空间与I O接口地址空间分开 互不影响 译码电路较简单 并设有专门的I O指令 所以编程序易于区分 且执行时间短 快速性好 缺点 只用I O指令访问I O端口 功能有限且要采用专用I O周期和专用I O控制线 使微处理器复杂化 I O接口的编址方式 内存映射 2 I O接口与存储器统一编址方式 内存映射这种编址方式不区分存储器地址空间和I O接口地址空间 把所有的I O接口的端口都当作是存储器的一个单元对待 每个接口芯片都安排一个或几个与存储器统一编号的地址号 也不设专门的输入 输出指令 所有传送和访问存储器的指令都可用来对I O接口操作 主要优点 访问内存的指令都可用于I O操作 数据处理功能强 同时I O接口可与存储器部分共用译码和控制电路 缺点 一是I O接口要占用存储器地址空间的一部分 二是因不用专门的I O指令 程序中较难区分I O操作 A DD A 显示LEDLCD LCD的显示方式 反射型LCD透射型LCD透反射型LCD 键盘接口设计 键盘模块可能用来输入数字型数据或者选择控制设备的操作模式 键盘有两种方案 一是采用现有的一些芯片实现键盘扫描 再就是用软件实现键盘扫描 嵌入式控制器的功能很强 可能允分利用这一资源 触摸屏接口设计 触摸屏的分类电阻式触摸屏表面声波触摸屏红外式触摸屏电容式触摸屏 以太网接口的基本知识 1 传输编码曼彻斯特编码差分曼彻斯特编码 JTAG JTAG是一种片上调试接口 即OCD接口 OCD英文原文 On ChipDebuggingInterfaceJTAG的建立使得集成电路固定在PCB PrintedCircuitBoard 印刷电路板 上 只通过边界扫描便可以被测试 含有JTAG口的芯片种类较多 如CPU DSP CPLD FPGA等 广泛得到应用 JTAG基本概念 JTAG是JointTestActionGroup 联合测试行动组 的缩写 联合测试行动组是IEEE的一个下属组织该组织研究标准测试访问接口和边界扫描结构 StandardTestAccessPortandBoundary ScanArchitecture JTAG的研究成果被接纳为IEEE1149 1 1990规范JTAG成为电子行业的一种国际测试标准现在 人们通常用JTAG来表示IEEE1149 1 1990规范 或者满足IEEE1149规范的接口或者测试方法 本节提要 1 3 2 5 4 6 基于ARM的硬件系统体系结构 存储器接口设计 网络接口设计 I O接口设计 人机交互接口设计 其它通讯接口设计 CAN总线设计 CAN总线接口设计 ControllerAreaNetwork 控制器局域网 现场总线之一 是一种多主方式的串行通讯总线 基本设计规范要求有高的位速率 高抗电磁干扰性 而且能够检测出产生的任何错误 主要应用于汽车电控制系统 电梯控制系统 安全监控系统 医疗仪器 纺织机械 船舶运输等方面CiA CANinAutomation 为全球应用CAN技术的权威 嵌入式文件系统 常见文件格式比较 minix 最老的UNIX文件系统之一 每个文件系统最多64MBext2 LI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年4月北京门头沟龙泉镇城市协管员招聘1人考前自测高频考点模拟试题及答案详解(易错题)
- 2025昆明市第三人民医院重症医学科见习护理人员招聘(7人)模拟试卷及完整答案详解1套
- 2025春季河南新乡工商职业学院招聘考前自测高频考点模拟试题及答案详解1套
- 2025年中职高考对口升学(理论考试)真题卷【旅游大类】模拟练习
- 2025河南郑州市中华保险招聘模拟试卷及答案详解参考
- 2025辽宁抚顺高新热电有限责任公司招聘专业技术人员18人考前自测高频考点模拟试题及答案详解参考
- 安全培训效果评语课件
- 2025年山东第一医科大学附属省立医院(山东省立医院)公开招聘部分紧缺岗位聘用制工作人员(58人)模拟试卷及一套完整答案详解
- 2025广东阳春市高校毕业生就业见习招募31人(第三期)模拟试卷及答案详解(必刷)
- 安全培训效果考核课件
- 《幼儿园保育教育质量评估指南》知识专题培训
- 艾青诗选向太阳课件
- 电站反恐防暴安全
- 学科带头人管理制度
- 第9课《创新增才干》第1框《创新是引领发展的第一动力》【中职专用】中职思想政治《哲学与人生》(高教版2023基础模块)
- 工业机器人离线编程与应用-认识FANUC工业机器人
- JCT 932-2013 卫生洁具排水配件
- 法院宣传稿范文大全500字
- 3.2.2新能源汽车电机控制器结构及工作原理课件讲解
- JTG-D40-2011公路水泥混凝土路面设计规范
- 夹芯板安装施工工艺方案
评论
0/150
提交评论