嵌入式系统设计师必须掌握的东西

三年过去··这篇文章是3年前转的···要学的东西真的很多~~全部学会几乎是个不可能的事情···按需索取,不断学习吧-_-

 

---

大体上的:

1、基础知识: 
目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。 
科目:数字电路、计算机组成原理、嵌入式微处理器结构。 
汇编语言、C/C++、编译原理、离散数学。 
数据结构和算法、操作系统、软件工程、网络、数据库。 
方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。 
主攻书籍:the c++ programming language(一直没时间读)、数据结构-C2。 

2、学习linux: 
目的:深入掌握linux系统。 
方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.11版,适合学习。最后深入代码。 
主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。 

3、学习嵌入式linux: 
目的:掌握嵌入式处理器其及系统。 
方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。 
(2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。 
(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。 
主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。 

4、深入学习: 
A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。 
B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。 
C、网络与信息安全技术:如加密技术,数字证书CA等。 
D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。 

说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。

 

 

嵌入式系统设计师考试大纲 

一、考试说明 
1、考试要求: 
(1)掌握科学基础知识; 
(2)掌握嵌入式系统的硬件、软件知识; 
(3)掌握嵌入式系统分析的方法; 
(4)掌握嵌入式系统设计与开发的方法及步骤; 
(5)掌握嵌入式系统实施的方法 
(6)掌握嵌入式系统运行维护知识; 
(7)了解信息化基础知识、信息技术引用的基础知识; 
(8)了解信息技术标准、安全,以及有关法律的基本知识; 
(9)了解嵌入式技术发展趋势; 
(10)正确阅读和理解计算机及嵌入式领域的英文资料。 
2、通过本考试的合格人员能根据项目管理和工程技术的实际要求,按照系统总体设计规格进行软、硬件实际,编写系统开发规格说明书等相应的文档;组织和指导嵌入式系统靠法实施人员实施硬件电路、编写和调试程序,并对嵌入式系统硬件设备和程序进行优化和集成测试,开发出符合系统总体设计要求的高质量嵌入式系统;具有工程师的实际工作能力和业务水平。 
二、考试范围 
考试科目1:嵌入式系统基础知识 
1.计算机科学基础 
1.1数制及转换 
o 二进制、八进制、十进制和十六进制等常用数制及其相互转换 
1.2数据的表示 
o 数的机内表示(原码、反码、补码、移码,定点和浮点,精度和溢出) 
o 字符、汉字、声音、图像的编码方式 
o 校验方法和校验码(奇偶验码、海明校验码、循环校验码) 
1.3算术和逻辑运算 
o 计算机中的二进制数运算方法 
o 逻辑代数的基本运算和逻辑表达式的化简 
1.4计算机系统结构和重要部件的基本工作原理 
o CPU和存储器的组成、性能、基本工作原理 
o 常用I/O设备、通信设备的性能,以及基本工作原理 
o I/O接口的功能、类型和特点 
o 虚拟存储存储基本工作原理,多级存储体系 
1.5安全性、可靠性与系统性能评测基础知识 
o 诊断与容错 
o 系统可靠性分析评价 
o 计算机系统性能评测方法 
2.嵌入式系统硬件知识 
2.1数字电路和逻辑电路基础 
2.1.1组合电路和时序电路 
2.1.2总线电路与电平转换电路 
2.1.3可编程逻辑器件 
2.2嵌入式微处理器基础 
2.2.1嵌入式微处理器体系结构 
o 冯.诺伊曼结构与哈佛结构 
o CISC与RISC 
o 流水线技术 
o 信息存储的字节顺序(大端存储法和小端存储法) 
2.2.2嵌入式系统处理器的结构和类型 
o 常用8位处理器的体系结构和类型 
o 常用16位处理器的体系结构特点 
o 常用32位处理器的体系结构特点 
o 常用DSP处理器的体系结构特点 
o 多核处理器的体系结构特点 
2.2.3异常 
o 同步异常(陷阱、故障、终止) 
o 异步异常(中断) 
o 可屏蔽中断、不可屏蔽中断 
o 中断优先级、中断嵌套 
2.3 嵌入式系统的存储体系 
2.3.1存储器系统 
o 存储器系统的层次结构 
o 高速缓存(Cache) 
o 内存管理单元(MMU) 
2.3.2 ROM的种类与选型 
o 常见ROM的种类 
o PROM、EPROM、E2PROM型ROM的典型特征和不同点 
2.3.3 Flash Memory的种类与选型 
o Flash Memory的种类 
o NOR和NAND型Flash Memory的典型特征和不同点 
2.3.4 RAM的种类与选型 
o 常见RAM的种类 
o SRAM、DRAM、DDRAM、NVRAM的典型特征和不同点 
2.3.5 外存 
o 常见外存的种类 
o 磁盘、光盘、CF、SD等的典型特征和不同点 
2.4 嵌入式系统I/O接口 
2.4.1 定时器和计数器基本原理与结构 
2.4.2 GPIO、PWM接口基本原理与结构 
2.4.3 A/D、D/A接口基本原理与结构 
2.4.4键盘、显示、触摸屏接口基本与结构 
2.4.5嵌入式系统音频接口 
2.5嵌入系统通信及网络接口 
o PCI、USB、串口、红外、并口、SPI、IIC、PCMCIA的基本原理与结构 
o 以太网、CAN、WLAN、蓝牙、1394的基本原理与结构 
2.6嵌入式系统电源分类及电源原理 
2.7电子电路设计 
2.7.1电子电路设计基础知识 
o 电子电路设计原理 
o 电子电路设计方法及步骤 
o 电子电路设计中的可靠知识 
2.7.2 PCB设计基础知识 
o PCB设计原理 
o PCB设计方法及步骤 
o 多层PCB设计的注意事项及布线原则 
o PCB设计中的可靠性知识 
2.7.3电子电路测试基础知识 
o 电子电路测试原理与方法 
o 硬件抗干扰测试 
3. 嵌入式系统软件知识 
3.1嵌入式软件基础知识 
3.1.1嵌入式软件的分类(系统软件、支撑软件、应用软件) 
3.1.2无操作系统支持的嵌入式软件体系结构(轮询、中断、前后台) 
3.1.3有操作系统支持的嵌入式软件体系结构 
3.1.4板极支持包基础知识(系统初始化、设备驱动程序) 
3.1.5嵌入式中间件(GUI、数据库) 
3.2 嵌入式操作系统基础知识 
3.2.1嵌入式操作系统体系结构 
o 单体结构、分层结构和微内核结构 
3.2.2任务管理 
o 多道程序技术 
o 进程、线程、任务的概念 
o 任务的实现(任务的层次结构、任务控制块、任务的状态及状态转换、任务队列) 
o 任务调度(调度算法的性能指标、可抢占调度、不可抢占调度、先来先服务、短作业优先算法、时间片轮转算法、优先级算法) 
o 实时系统及任务调度(RMS、EDF算法) 
o 任务间通信(共享内存、消息、管道、信号) 
o 同步与互斥(竞争条件、临界区、互斥、信号量、死锁) 
3.2.3存储管理 
o Flat存储管理方式 
o 分区存储管理(固定分区、可变分区) 
o 地址重定位(逻辑地址、物理地址、地址映射) 
o 页式存储管理 
o 虚拟存储技术(程序局部性原理、虚拟页式存储管理、页面置换算法、工作集模型) 
3.2.4设备管理 
o 设备无关性、I/O地址、I/O控制、中断处理、缓冲技术、假脱机技术) 
3.2.5文件系统基础知识 
o 文件和目录 
o 文件的结构和组织 
o 存取方法、存取控制 
o 常见嵌入式文件系统(FAT、JFFS、YAFFS) 
3.2.6操作系统移植基础知识 
3.3 嵌入式系统程序设计 
3.3.1嵌入式软件开发基础知识 
3.3.2嵌入式程序设计语言 
o 汇编、编译、解释系统的基础知识和基本工作原理 
o 汇编语言 
o 基于过程的语言(过程/函数、参数传递、全局变量、递归、动态内存分配、数据类型) 
o 面向对象的语言(对象、数据抽象、继承、多态、自动内存管理) 
o 各类程序设计语言的主要特点和适用情况 
3.3.3嵌入式软件开发环境 
o 宿主机、目标机 
o 编辑器、编译器、链接器、调试器、模拟器 
o 常用嵌入式开发工具(编程器、硬件仿真器、逻辑分析仪、示波器) 
o 集成开发环境 
o 开发辅助工具 
3.3.4嵌入式软件开发 
o 软件设计(模块结构设计、数据结构设计、内存布局、面向对象的分析与设计) 
o 嵌入式引导程序的设计、设备驱动程序设计、内核设计、网络程序设计、应用软件设计) 
o 编码(编程规范、代码审查) 
o 测试(测试环境、测试用例、测试方法、测试工具) 
o 下载和运行 
3.3.5嵌入式应用软件移植 
4.嵌入式系统的开发与维护知识 
4.1系统开发过程及其项目管理 
o 系统开发生命周期各阶段的目标和任务的划分方法 
o 系统开发项目挂你基础知识及其常用管理工具使用方法 
o 主要的系统开发方法 
o 系统开发工具与环境知识 
4.2 系统分析基础知识 
o 系统分析的目的和任务 
o 系统分析方法 
o 系统规格说明书的编写方法 
4.3 系统设计知识 
o 传统系统设计方法 
o 软硬件协同设计方法 
4.4 系统实施知识 
o 系统架构设计 
o 系统详细设计 
o 系统调试技术 
o 系统测试 
4.5 系统维护知识 
o 系统运行管理知识 
o 系统维护知识 
o 系统评价知识 
5.安全性知识 
o 安全性基本概念 
o 加密与解密机制 
6.标准化知识 
o 标准化的概念 
o 国际标准、国家标准、行业标准、企业标准基本知识 
o 代码标准、文件格式标准、安全标准、软件开发规范和文档标准知识 
o 标准化机构 
o 嵌入式系统相关标准 
7.信息化基础知识 
o 信息化和信息系统基本概念 
o 有关的法律、法规 
8.嵌入式技术发展趋势 
9.计算机专业英语 
o 正确阅读和理解相关领域的英文资料 

考试科目2:嵌入式系统设计应用技术 
1.嵌入式系统开发过程 
1.1系统需求分析方法与步骤 
1.2系统设计 
o 系统硬件配置 
o 系统功能组成分配 
o 软硬件功能的分配 
o 可行性验证及设计审查 
o 系统规格 
o 周期,成本及工作量估计 
o 开发计划 
1.3软硬件协同设计 
1.4硬件设计 
1.5软件设计 
o 软件结构 
o 设计评审 
o 软件详细设计 
1.6系统测试 
o 测试环境 
o 测试计划(内容、方法、标准、过程、检验) 
o 硬件测试 
o 软件测试(单元测试、集成测试) 
o 软硬件联合测试 
o 实施测试 
1.7系统评估 
1.8 软件维护 
2.嵌入式系统硬件设计 
2.1嵌入式系统硬件基本结构 
2.1.1嵌入式微处理结构与应用 
2.1.2 异常及中断处理技术 
2.1.3 DMA技术 
2.1.4 多处理系统 
o 多处理器系统特点 
o 多处理器系统构建技术 
2.1.5 总线架构 
o 应用系统中的总线配置 
2.1.6 内存种类及架构 
o 存储器系统接口设计 
2.1.7数字电路和逻辑电路 
o 专用集成电路 
o 可编程逻辑控制器件 
2.2输入/输出接口设计 
2.2.1 输入/输出接口 
o 接口信号电平转换 
o 接口驱动电路设计 
2.2.2输入/输出接口应用技术 
o 外围设备 
o 串口通信 
o 并口通信 
o 模拟接口 
o 通信接口设备 
o 通信标准和协议 
o 数据传输方式 
2.3外围设备接口应用技术 
2.3.1 外围存储设备 
o 存储卡,记忆棒,IC卡,MMC卡,SD卡 
o DVD 、CD-R 、CD-RW 
2.3.2外围输入/输出设备 
o 键盘,鼠标,触摸屏 
o 液晶板、LED、7段数码管、蜂鸣器 
2.3.3电源设计技术 
2.4可靠性与安全性设计技术 
2.4.1 错误检测与隔离技术 
2.4.2 冗余设计 
2.4.3 系统恢复设计 
2.4.4 诊断技术 
2.4.5常用安全标准 
2.4.6 抗干扰设计 
2.4.7电磁兼容设计 
2.4.8系统加密 
3.嵌入式系统软件设计 
3.1嵌入式系统软件结构设计 
3.2嵌入式操作系统应用技术 
3.2.1 时间管理 
o 系统时间 
o 时钟中断 
3.2.2内存管理 
o 静态内存管理 
o 动态内存管理 
3.2.3任务管理和任务间的通信 
o 任务间的通信机制 
o 信号量 
o 邮箱 
o 消息队列 
3.2.4异常处理 
o 异常处理方法 
o 中断优先级处理方法 
o 系统调用 
3.2.5嵌入式文件系统应用技术 
3.2.6嵌入式系统图形用户接口(GUI)应用技术 
3.2.7嵌入式系统数据库应用技术 
3.3嵌入式软件设计技术 
3.3.1汇编语言设计 
o 数据类型 
o 汇编语言程序结构 
o 汇编语言程序设计及优化 
o 子程序调用 
3.3.2嵌入式C语言设计 
o ANSI-C的数据类型 
o C程序结构 
o C语言程序设计及优化 
o 程序的编译与链接 
3.3.3面向对象程序设计与开发 
o 面向对象的分析与设计方法UML 
o 面向对象的编程语言 
o 使用C++进行嵌入式系统开发 
o 使用Java进行嵌入式系统开发 
3.4 系统级软件设计技术 
o 嵌入式系统固件与系统初始化设计 
o 设备驱动程序设计 
o 硬件抽象层、板级支持包设计 
o 嵌入式软件的移植技术 
4.嵌入式系统开发技术 
4.1系统开发环境 
4.1.1开发工具 
o 文本编辑器 
o 汇编、编译和连接程序 
o ICE和ICE监控器 
o 配置管理工具 
o 逆工程工具 
4.1.2平台 
o 操作系统 
o 分布式开发环境 
4.1.3开发环境创建方法及评估 
o 开发工作分析 
o 开发环境的建立 
o 维护、管理、使用开发环境的方法 
o 开发环境的评测 
4.2实时系统的分析技术 
4.2.1实时系统的分析技术 
o 结构化分析方法 
o 面向对象分析方法 
4.2.2实时系统的设计技术 
o 结构化分析方法 
o 面向对象分析方法 
4.3硬件设计环境 
4.3.1硬件描述语言 
o 硬件开发设计过程 
o 硬件描述语言的种类与特点 
4.3.2仿真技术 
o 逻辑仿真方法 
o 逻辑仿真工具 
4.3.3大规模集成电路系统的开发方法 
o ASIC开发方法 
o FPGA设计方法 
o IP(intellectual property) 
4.4协同设计 
o 软硬件任务工和切调 
o 设计评审 
4.5嵌入式系统低功耗设计技术 
o 低功耗系统工作机制 
o 低功耗系统模型结构 
o 低功耗的硬件设计技术 
o 低功耗的软件设计技术 
4.6分布式嵌入系统设计 
o 分布式系统设计原理 
o 分布式系统的通信技术 
o 分布式系统设计应用 
5.嵌入式系统应用 
5.1嵌入式系统在控制领域中的应用 
5.2嵌入式系统在手持设备中的应用 
5.3嵌入式系统在模式识别中的应用 

三、题型举例 
1、选择题 
若嵌入式系统中采用I/O地址统一编址模式,访问内存单元和I/O设备是通过 (1) 来区分的。 
(1) A.数据总线上输出的数据 
B.不同的地址代码 
C.不同的地址总路线 
D.不同的指令 

2、问答题 
在某个嵌入式操作系统中,任务的状态转换图(不完整)如下,请阅读该图以及下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。 
〔说明〕 
任务总共有五个状态:休眠状态、就绪状态、运行状态、中断服务状态和等待状态,在任何时候,一个任务只会处于其中的某一个状态。 
〔问题1〕(3分) 
在单个CPU的系统中,处于运行状态的任务最多有多少个? 
〔问题2〕(3分) 
对于运行状态、就绪状态和等待状态这间的相互转换,图中并没有画出来,请补充。用文字处理的形式来进行描述,格式形如"运行状态→中断服务状态"。 
〔问题3〕6分) 
从运行状态可以直接变为等待状态吗?如果不能为什么?如果能什么时候会发生这种转换?举例说明。 
〔问题4〕(3分) 
从就绪状态可以直接变为等待状态吗?如果不能,为什么?如果能,什么时候会发生这种转换?举例说明。

你可能感兴趣的:(汇编,嵌入式,存储,任务,linux内核,嵌入式操作系统)