学习嵌入式开发要学习哪些知识

学习嵌入式开发要学习哪些知识,第1张

嵌入式Linux *** 作系统学习规划\x0d\ARM+LINUX路线,主攻嵌入式Linux *** 作系统及其上应用软件开发目标:\x0d\(1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)\x0d\(2)必须掌握一个嵌入式 *** 作系统(初步定为uclinux或linux,版本待定)\x0d\(3)必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。\x0d\从事嵌入式软件开发的好处是:\x0d\(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。\x0d\(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。\x0d\(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。\x0d\(4)兴趣所在,这是最主要的。\x0d\从事嵌入式软件开发的缺点是:\x0d\(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是 *** 作系统级软件功底不深,则可能不适于此行。\x0d\(2)这方面的企业数量要远少于企业计算类企业。\x0d\(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。\x0d\(4)平台依托强,换平台比较辛苦。\x0d\兴趣的由来:\x0d\1、成功观念不同,不虚度此生,就是我的成功。\x0d\2、喜欢思考,挑战逻辑思维。\x0d\3、喜欢C\x0d\C是一种能发挥思维极限的语言。关于C的精神的一些方面可以被概述成短句如下:\x0d\相信程序员。\x0d\不要阻止程序员做那些需要去做的。\x0d\保持语言短小精干。\x0d\一种方法做一个 *** 作。\x0d\使得它运行的够快,尽管它并不能保证将是可移植的。\x0d\4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。\x0d\5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。\x0d\方法步骤:\x0d\1、基础知识:\x0d\目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是 *** 作系统级软件,那将是我的优势。\x0d\科目:数字电路、计算机组成原理、嵌入式微处理器结构。\x0d\汇编语言、C/C++、编译原理、离散数学。\x0d\数据结构和算法、 *** 作系统、软件工程、网络、数据库。\x0d\方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。\x0d\主攻书籍:thec++programminglanguage(一直没时间读)、数据结构-C2。\x0d\\x0d\2、学习linux:\x0d\目的:深入掌握linux系统。\x0d\方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是011版,适合学习。最后深入代码。\x0d\主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。\x0d\3、学习嵌入式linux:\x0d\目的:掌握嵌入式处理器其及系统。\x0d\方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。\x0d\(2)嵌入式 *** 作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。\x0d\(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。\x0d\主攻书籍:毛德 *** 的《嵌入式系统》及其他arm9手册与arm汇编指令等。\x0d\\x0d\4、深入学习:\x0d\A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。\x0d\B、通信协议及编程技术:TCP/IP协议、80211,Bluetooth,GPRS、GSM、CDMA等。\x0d\\x0d\2010-8-2116:46回复\x0d\122901732楼\x0d\\x0d\C、网络与信息安全技术:如加密技术,数字证书CA等。\x0d\D、DSP技术:DigitalSignalProcess,DSP处理器通过硬件实现数字信号处理算法。\x0d\说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。\x0d\注意:要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。\x0d\不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻**。还有一些不愿意做但必须要做的!\x0d\技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。\x0d\\x0d\嵌入式书籍推荐\x0d\Linux基础\x0d\1、《Linux与UnixShell编程指南》\x0d\C语言基础\x0d\1、《CPrimerPlus,5thEdition》美StephenPrata着\x0d\2、《TheCProgrammingLanguage,2ndEdition》美BrianWKernighanDavidMRithie(K&R)着\x0d\3、《AdvancedProgrammingintheUNIXEnvironment,2ndEdition》(APUE)\x0d\4、《嵌入式Linux应用程序开发详解》\x0d\Linux内核\x0d\1、《深入理解Linux内核》(第三版)\x0d\2、《Linux内核源代码情景分析》毛德 *** 胡希明著\x0d\研发方向\x0d\1、《UNIXNetworkProgramming》(UNP)\x0d\2、《TCP/IP详解》\x0d\3、《Linux内核编程》\x0d\4、《Linux设备驱动开发》(LDD)\x0d\5、《Linux高级程序设计》杨宗德著\x0d\硬件基础\x0d\1、《ARM体系结构与编程》杜春雷着\x0d\2、S3C2410Datasheet\x0d\英语基础\x0d\1、《计算机与通信专业英语》\x0d\系统教程\x0d\1、《嵌入式系统——体系结构、编程与设计》\x0d\2、《嵌入式系统——采用公开源代码和StrongARM/Xscale处理器》毛德 *** 胡希明着\x0d\3、《BuildingEmbeddedLinuxSystems》\x0d\4、《嵌入式ARM系统原理与实例开发》杨宗德著\x0d\理论基础\x0d\1、《算法导论》\x0d\2、《数据结构(C语言版)》\x0d\3、《计算机组织与体系结构性能分析》\x0d\4、《深入理解计算机系统》美RandalEBryantDavidO''Hallaron着\x0d\5、《 *** 作系统:精髓与设计原理》\x0d\6、《编译原理》\x0d\7、《数据通信与计算机网络》\x0d\8、《数据压缩原理与应用》\x0d\\x0d\C语言书籍推荐\x0d\1TheCprogramminglanguage《C程序设计语言》\x0d\2PointersonC《C和指针》\x0d\3Ctrapsandpitfalls《C陷阱与缺陷》\x0d\4ExpertCLanuage《专家C编程》\x0d\5WritingCleanCode-----MicrosoftTechiniquesforDevelopingBug-freeCPrograms\x0d\《编程精粹--Microsoft编写优质无错C程序秘诀》\x0d\6ProgrammingEmbeddedSystemsinCandC++《嵌入式系统编程》\x0d\7《C语言嵌入式系统编程修炼》\x0d\8《高质量C++/C编程指南》林锐\x0d\尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。\x0d\\x0d\这里很多书其实是推荐而已,不必太在意,关键还是基础,才是重中之重!!!

呵呵 想进华为啊 ~~~~~ 不知道你什么水平 要是什么水平也没有 先学好一门语言 比如 c 再学学模拟电路和数字电路 我这有一个今年嵌入式系统的考试要求 你看看吧

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

一、考试说明

1、考试要求:

(1)掌握科学基础知识;

(2)掌握嵌入式系统的硬件、软件知识;

(3)掌握嵌入式系统分析的方法;

(4)掌握嵌入式系统设计与开发的方法及步骤;

(5)掌握嵌入式系统实施的方法

(6)掌握嵌入式系统运行维护知识;

(7)了解信息化基础知识、信息技术引用的基础知识;

(8)了解信息技术标准、安全,以及有关法律的基本知识;

(9)了解嵌入式技术发展趋势;

(10)正确阅读和理解计算机及嵌入式领域的英文资料。

2、通过本考试的合格人员能根据项目管理和工程技术的实际要求,按照系统总体设计规格进行软、硬件实际,编写系统开发规格说明书等相应的文档;组织和指导嵌入式系统靠法实施人员实施硬件电路、编写和调试程序,并对嵌入式系统硬件设备和程序进行优化和集成测试,开发出符合系统总体设计要求的高质量嵌入式系统;具有工程师的实际工作能力和业务水平。

二、考试范围

考试科目1:嵌入式系统基础知识

1计算机科学基础

11数制及转换

o 二进制、八进制、十进制和十六进制等常用数制及其相互转换

12数据的表示

o 数的机内表示(原码、反码、补码、移码,定点和浮点,精度和溢出)

o 字符、汉字、声音、图像的编码方式

o 校验方法和校验码(奇偶验码、海明校验码、循环校验码)

13算术和逻辑运算

o 计算机中的二进制数运算方法

o 逻辑代数的基本运算和逻辑表达式的化简

14计算机系统结构和重要部件的基本工作原理

o CPU和存储器的组成、性能、基本工作原理

o 常用I/O设备、通信设备的性能,以及基本工作原理

o I/O接口的功能、类型和特点

o 虚拟存储存储基本工作原理,多级存储体系

15安全性、可靠性与系统性能评测基础知识

o 诊断与容错

o 系统可靠性分析评价

o 计算机系统性能评测方法

2嵌入式系统硬件知识

21数字电路和逻辑电路基础

211组合电路和时序电路

212总线电路与电平转换电路

213可编程逻辑器件

22嵌入式微处理器基础

221嵌入式微处理器体系结构

o 冯诺伊曼结构与哈佛结构

o CISC与RISC

o 流水线技术

o 信息存储的字节顺序(大端存储法和小端存储法)

222嵌入式系统处理器的结构和类型

o 常用8位处理器的体系结构和类型

o 常用16位处理器的体系结构特点

o 常用32位处理器的体系结构特点

o 常用DSP处理器的体系结构特点

o 多核处理器的体系结构特点

223异常

o 同步异常(陷阱、故障、终止)

o 异步异常(中断)

o 可屏蔽中断、不可屏蔽中断

o 中断优先级、中断嵌套

23 嵌入式系统的存储体系

231存储器系统

o 存储器系统的层次结构

o 高速缓存(Cache)

o 内存管理单元(MMU)

232 ROM的种类与选型

o 常见ROM的种类

o PROM、EPROM、E2PROM型ROM的典型特征和不同点

233 Flash Memory的种类与选型

o Flash Memory的种类

o NOR和NAND型Flash Memory的典型特征和不同点

234 RAM的种类与选型

o 常见RAM的种类

o SRAM、DRAM、DDRAM、NVRAM的典型特征和不同点

235 外存

o 常见外存的种类

o 磁盘、光盘、CF、SD等的典型特征和不同点

24 嵌入式系统I/O接口

241 定时器和计数器基本原理与结构

242 GPIO、PWM接口基本原理与结构

243 A/D、D/A接口基本原理与结构

244键盘、显示、触摸屏接口基本与结构

245嵌入式系统音频接口

25嵌入系统通信及网络接口

o PCI、USB、串口、红外、并口、SPI、IIC、PCMCIA的基本原理与结构

o 以太网、CAN、WLAN、蓝牙、1394的基本原理与结构

26嵌入式系统电源分类及电源原理

27电子电路设计

271电子电路设计基础知识

o 电子电路设计原理

o 电子电路设计方法及步骤

o 电子电路设计中的可靠知识

272 PCB设计基础知识

o PCB设计原理

o PCB设计方法及步骤

o 多层PCB设计的注意事项及布线原则

o PCB设计中的可靠性知识

273电子电路测试基础知识

o 电子电路测试原理与方法

o 硬件抗干扰测试

3 嵌入式系统软件知识

31嵌入式软件基础知识

311嵌入式软件的分类(系统软件、支撑软件、应用软件)

312无 *** 作系统支持的嵌入式软件体系结构(轮询、中断、前后台)

313有 *** 作系统支持的嵌入式软件体系结构

314板极支持包基础知识(系统初始化、设备驱动程序)

315嵌入式中间件(GUI、数据库)

32 嵌入式 *** 作系统基础知识

321嵌入式 *** 作系统体系结构

o 单体结构、分层结构和微内核结构

322任务管理

o 多道程序技术

o 进程、线程、任务的概念

o 任务的实现(任务的层次结构、任务控制块、任务的状态及状态转换、任务队列)

o 任务调度(调度算法的性能指标、可抢占调度、不可抢占调度、先来先服务、短作业优先算法、时间片轮转算法、优先级算法)

o 实时系统及任务调度(RMS、EDF算法)

o 任务间通信(共享内存、消息、管道、信号)

o 同步与互斥(竞争条件、临界区、互斥、信号量、死锁)

323存储管理

o Flat存储管理方式

o 分区存储管理(固定分区、可变分区)

o 地址重定位(逻辑地址、物理地址、地址映射)

o 页式存储管理

o 虚拟存储技术(程序局部性原理、虚拟页式存储管理、页面置换算法、工作集模型)

324设备管理

o 设备无关性、I/O地址、I/O控制、中断处理、缓冲技术、假脱机技术)

325文件系统基础知识

o 文件和目录

o 文件的结构和组织

o 存取方法、存取控制

o 常见嵌入式文件系统(FAT、JFFS、YAFFS)

326 *** 作系统移植基础知识

33 嵌入式系统程序设计

331嵌入式软件开发基础知识

332嵌入式程序设计语言

o 汇编、编译、解释系统的基础知识和基本工作原理

o 汇编语言

o 基于过程的语言(过程/函数、参数传递、全局变量、递归、动态内存分配、数据类型)

o 面向对象的语言(对象、数据抽象、继承、多态、自动内存管理)

o 各类程序设计语言的主要特点和适用情况

333嵌入式软件开发环境

o 宿主机、目标机

o 编辑器、编译器、链接器、调试器、模拟器

o 常用嵌入式开发工具(编程器、硬件仿真器、逻辑分析仪、示波器)

o 集成开发环境

o 开发辅助工具

334嵌入式软件开发

o 软件设计(模块结构设计、数据结构设计、内存布局、面向对象的分析与设计)

o 嵌入式引导程序的设计、设备驱动程序设计、内核设计、网络程序设计、应用软件设计)

o 编码(编程规范、代码审查)

o 测试(测试环境、测试用例、测试方法、测试工具)

o 下载和运行

335嵌入式应用软件移植

4嵌入式系统的开发与维护知识

41系统开发过程及其项目管理

o 系统开发生命周期各阶段的目标和任务的划分方法

o 系统开发项目挂你基础知识及其常用管理工具使用方法

o 主要的系统开发方法

o 系统开发工具与环境知识

42 系统分析基础知识

o 系统分析的目的和任务

o 系统分析方法

o 系统规格说明书的编写方法

43 系统设计知识

o 传统系统设计方法

o 软硬件协同设计方法

44 系统实施知识

o 系统架构设计

o 系统详细设计

o 系统调试技术

o 系统测试

45 系统维护知识

o 系统运行管理知识

o 系统维护知识

o 系统评价知识

5安全性知识

o 安全性基本概念

o 加密与解密机制

6标准化知识

o 标准化的概念

o 国际标准、国家标准、行业标准、企业标准基本知识

o 代码标准、文件格式标准、安全标准、软件开发规范和文档标准知识

o 标准化机构

o 嵌入式系统相关标准

7信息化基础知识

o 信息化和信息系统基本概念

o 有关的法律、法规

8嵌入式技术发展趋势

9计算机专业英语

o 正确阅读和理解相关领域的英文资料

考试科目2:嵌入式系统设计应用技术

1嵌入式系统开发过程

11系统需求分析方法与步骤

12系统设计

o 系统硬件配置

o 系统功能组成分配

o 软硬件功能的分配

o 可行性验证及设计审查

o 系统规格

o 周期,成本及工作量估计

o 开发计划

13软硬件协同设计

14硬件设计

15软件设计

o 软件结构

o 设计评审

o 软件详细设计

16系统测试

o 测试环境

o 测试计划(内容、方法、标准、过程、检验)

o 硬件测试

o 软件测试(单元测试、集成测试)

o 软硬件联合测试

o 实施测试

17系统评估

18 软件维护

2嵌入式系统硬件设计

21嵌入式系统硬件基本结构

211嵌入式微处理结构与应用

212 异常及中断处理技术

213 DMA技术

214 多处理系统

o 多处理器系统特点

o 多处理器系统构建技术

215 总线架构

o 应用系统中的总线配置

216 内存种类及架构

o 存储器系统接口设计

217数字电路和逻辑电路

o 专用集成电路

o 可编程逻辑控制器件

22输入/输出接口设计

221 输入/输出接口

o 接口信号电平转换

o 接口驱动电路设计

222输入/输出接口应用技术

o 外围设备

o 串口通信

o 并口通信

o 模拟接口

o 通信接口设备

o 通信标准和协议

o 数据传输方式

23外围设备接口应用技术

231 外围存储设备

o 存储卡,记忆棒,IC卡,MMC卡,SD卡

o DVD 、CD-R 、CD-RW

232外围输入/输出设备

o 键盘,鼠标,触摸屏

o 液晶板、LED、7段数码管、蜂鸣器

233电源设计技术

24可靠性与安全性设计技术

241 错误检测与隔离技术

242 冗余设计

243 系统恢复设计

244 诊断技术

245常用安全标准

246 抗干扰设计

247电磁兼容设计

248系统加密

3嵌入式系统软件设计

31嵌入式系统软件结构设计

32嵌入式 *** 作系统应用技术

321 时间管理

o 系统时间

o 时钟中断

322内存管理

o 静态内存管理

o 动态内存管理

323任务管理和任务间的通信

o 任务间的通信机制

o 信号量

o 邮箱

o 消息队列

324异常处理

o 异常处理方法

o 中断优先级处理方法

o 系统调用

325嵌入式文件系统应用技术

326嵌入式系统图形用户接口(GUI)应用技术

327嵌入式系统数据库应用技术

33嵌入式软件设计技术

331汇编语言设计

o 数据类型

o 汇编语言程序结构

o 汇编语言程序设计及优化

o 子程序调用

332嵌入式C语言设计

o ANSI-C的数据类型

o C程序结构

o C语言程序设计及优化

o 程序的编译与链接

333面向对象程序设计与开发

o 面向对象的分析与设计方法UML

o 面向对象的编程语言

o 使用C++进行嵌入式系统开发

o 使用Java进行嵌入式系统开发

34 系统级软件设计技术

o 嵌入式系统固件与系统初始化设计

o 设备驱动程序设计

o 硬件抽象层、板级支持包设计

o 嵌入式软件的移植技术

4嵌入式系统开发技术

41系统开发环境

411开发工具

o 文本编辑器

o 汇编、编译和连接程序

o ICE和ICE监控器

o 配置管理工具

o 逆工程工具

412平台

o *** 作系统

o 分布式开发环境

413开发环境创建方法及评估

o 开发工作分析

o 开发环境的建立

o 维护、管理、使用开发环境的方法

o 开发环境的评测

42实时系统的分析技术

421实时系统的分析技术

o 结构化分析方法

o 面向对象分析方法

422实时系统的设计技术

o 结构化分析方法

o 面向对象分析方法

43硬件设计环境

431硬件描述语言

o 硬件开发设计过程

o 硬件描述语言的种类与特点

432仿真技术

o 逻辑仿真方法

o 逻辑仿真工具

433大规模集成电路系统的开发方法

o ASIC开发方法

o FPGA设计方法

o IP(intellectual property)

44协同设计

o 软硬件任务工和切调

o 设计评审

45嵌入式系统低功耗设计技术

o 低功耗系统工作机制

o 低功耗系统模型结构

o 低功耗的硬件设计技术

o 低功耗的软件设计技术

46分布式嵌入系统设计

o 分布式系统设计原理

o 分布式系统的通信技术

o 分布式系统设计应用

5嵌入式系统应用

51嵌入式系统在控制领域中的应用

52嵌入式系统在手持设备中的应用

53嵌入式系统在模式识别中的应用

三、题型举例

1、选择题

若嵌入式系统中采用I/O地址统一编址模式,访问内存单元和I/O设备是通过 (1) 来区分的。

(1) A数据总线上输出的数据

B不同的地址代码

C不同的地址总路线

D不同的指令

2、问答题

在某个嵌入式 *** 作系统中,任务的状态转换图(不完整)如下,请阅读该图以及下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。

〔说明〕

任务总共有五个状态:休眠状态、就绪状态、运行状态、中断服务状态和等待状态,在任何时候,一个任务只会处于其中的某一个状态。

〔问题1〕(3分)

在单个CPU的系统中,处于运行状态的任务最多有多少个

〔问题2〕(3分)

对于运行状态、就绪状态和等待状态这间的相互转换,图中并没有画出来,请补充。用文字处理的形式来进行描述,格式形如"运行状态→中断服务状态"。

〔问题3〕6分)

从运行状态可以直接变为等待状态吗?如果不能为什么?如果能什么时候会发生这种转换?举例说明。

〔问题4〕(3分)

从就绪状态可以直接变为等待状态吗?如果不能,为什么?如果能,什么时候会发生这种转换?举例说明。

根据使用的开发工具套件不同,软件开发流程会有差异,但主要步骤大致相同。对于使用宿主机(PC)的集成化开发环境,软件开发流程一般包括创建项目、添加文件、编译连接、下载调试等步骤,如下图所示。

图1:嵌入式软件开发流程

(1)创建工程项目:在配置硬件设备和安装软件开发工具后,就可以开始创建工程项目,通常需要选择项目文件的存储位置及目标处理器。

(2)添加项目文件:开发人员需要创建源程序文件,编写应用程序代码,并添加到工程项目中;还将使用设备驱动程序的库文件,包括启动代码、头文件和一些外设控制函数,甚至中间件(Middleware)等。这些文件也需要添加到项目中。

(3)配置工程选项:源于硬件设备的多样性和软件工具的复杂性,工程项目提供了不少选项,需要开发人员配置,如输出文件类型和位置、编译选项和优化类型等,还要根据选用的开发板和在线仿真器,配置代码调试和下载选项等。

(4)交叉编译连接:利用开发软件工具对项目的多个文件分别编译,生成相应的目标文件,然后连接生成最终的可执行文件映像,以下载到目标设备的文件格式保存。如果编译连接有错误,返回修改;如果没有错误,先进行软件模拟运行和调试,再下载到开发板运行和调试。

(5)程序下载:目前,绝大多数微控制器都使用闪存(Flash Memory)保存程序。创建可执行文件映像后,需要使用在线仿真器(或串口、网口)将其下载到微控制器的闪存中,实现闪存的编程;还可以将可执行文件下载到SRAM中运行。

(6)运行和调试:程序下载后,可以启动运行,看是否正常工作。如果有问题,连接在线仿真器,借助软件开发工具的调试环境进行断点和单步调试,观察程序 *** 作的详细过程。如果应用程序运行有错误,返回修改。

嵌入式Linux *** 作系统学习规划\x0d\ARM+LINUX路线,主攻嵌入式Linux *** 作系统及其上应用软件开发目标: \x0d\(1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) \x0d\(2) 必须掌握一个嵌入式 *** 作系统 (初步定为uclinux或linux,版本待定) \x0d\(3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。 \x0d\从事嵌入式软件开发的好处是: \x0d\(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。 \x0d\(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。 \x0d\(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。 \x0d\(4)兴趣所在,这是最主要的。 \x0d\从事嵌入式软件开发的缺点是: \x0d\(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是 *** 作系统级软件功底不深,则可能不适于此行。 \x0d\(2)这方面的企业数量要远少于企业计算类企业。 \x0d\(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。 \x0d\(4)平台依托强,换平台比较辛苦。 \x0d\兴趣的由来: \x0d\1、成功观念不同,不虚度此生,就是我的成功。 \x0d\2、喜欢思考,挑战逻辑思维。 \x0d\3、喜欢C \x0d\C是一种能发挥思维极限的语言。关于C的精神的一些方面可以被概述成短句如下: \x0d\相信程序员。 \x0d\不要阻止程序员做那些需要去做的。 \x0d\保持语言短小精干。 \x0d\一种方法做一个 *** 作。 \x0d\使得它运行的够快,尽管它并不能保证将是可移植的。 \x0d\4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。 \x0d\5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。 \x0d\方法步骤: \x0d\1、基础知识: \x0d\目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是 *** 作系统级软件,那将是我的优势。 \x0d\科目:数字电路、计算机组成原理、嵌入式微处理器结构。 \x0d\汇编语言、C/C++、编译原理、离散数学。 \x0d\数据结构和算法、 *** 作系统、软件工程、网络、数据库。 \x0d\方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。 \x0d\主攻书籍:the c++ programming language(一直没时间读)、数据结构-C2。 \x0d\\x0d\2、学习linux: \x0d\目的:深入掌握linux系统。 \x0d\ 方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是011版,适合学习。最后深入代码。 \x0d\主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。 \x0d\3、学习嵌入式linux: \x0d\目的:掌握嵌入式处理器其及系统。 \x0d\方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。 \x0d\ (2)嵌入式 *** 作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。 \x0d\ (3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。 \x0d\ 主攻书籍:毛德 *** 的《嵌入式系统》及其他arm9手册与arm汇编指令等。 \x0d\\x0d\4、深入学习: \x0d\ A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。 \x0d\ B、通信协议及编程技术:TCP/IP协议、80211,Bluetooth,GPRS、GSM、CDMA等。 \x0d\\x0d\2010-8-21 16:46 回复 \x0d\12290173 2楼\x0d\\x0d\ C、网络与信息安全技术:如加密技术,数字证书CA等。 \x0d\ D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。 \x0d\ 说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。 \x0d\ 注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。 \x0d\ 不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻**。还有一些不愿意做但必须要做的! \x0d\ 技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。 \x0d\\x0d\ 嵌入式书籍推荐 \x0d\ Linux基础 \x0d\ 1、《Linux与Unix Shell 编程指南》 \x0d\ C语言基础 \x0d\ 1、《C Primer Plus,5th Edition》美Stephen Prata着 \x0d\ 2、《The C Programming Language, 2nd Edition》美Brian W Kernighan David M Rithie(K & R)着 \x0d\ 3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE) \x0d\ 4、《嵌入式Linux应用程序开发详解》 \x0d\ Linux内核 \x0d\ 1、《深入理解Linux内核》(第三版) \x0d\ 2、《Linux内核源代码情景分析》毛德 *** 胡希明著 \x0d\ 研发方向 \x0d\ 1、《UNIX Network Programming》(UNP) \x0d\ 2、《TCP/IP详解》 \x0d\ 3、《Linux内核编程》 \x0d\ 4、《Linux设备驱动开发》(LDD) \x0d\ 5、《Linux高级程序设计》 杨宗德著\x0d\ 硬件基础 \x0d\ 1、《ARM体系结构与编程》杜春雷着 \x0d\ 2、S3C2410 Datasheet \x0d\ 英语基础 \x0d\ 1、《计算机与通信专业英语》 \x0d\ 系统教程 \x0d\ 1、《嵌入式系统——体系结构、编程与设计》 \x0d\ 2、《嵌入式系统——采用公开源代码和StrongARM/Xscale处理器》毛德 *** 胡希明着 \x0d\ 3、《Building Embedded Linux Systems》 \x0d\ 4、《嵌入式ARM系统原理与实例开发》 杨宗德著\x0d\ 理论基础 \x0d\ 1、《算法导论》 \x0d\ 2、《数据结构(C语言版)》 \x0d\ 3、《计算机组织与体系结构性能分析》 \x0d\ 4、《深入理解计算机系统》美Randal E Bryant David O''Hallaron着 \x0d\ 5、《 *** 作系统:精髓与设计原理》 \x0d\ 6、《编译原理》 \x0d\ 7、《数据通信与计算机网络》 \x0d\ 8、《数据压缩原理与应用》 \x0d\\x0d\ C语言书籍推荐 \x0d\ 1 The C programming language 《C程序设计语言》 \x0d\ 2 Pointers on C 《C和指针》 \x0d\ 3 C traps and pitfalls 《C陷阱与缺陷》 \x0d\ 4 Expert C Lanuage 《专家C编程》 \x0d\ 5 Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs \x0d\ 《编程精粹--Microsoft 编写优质无错C程序秘诀》 \x0d\ 6 Programming Embedded Systems in C and C++ 《嵌入式系统编程》 \x0d\ 7《C语言嵌入式系统编程修炼》 \x0d\ 8《高质量C++/C编程指南》林锐 \x0d\ 尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。 \x0d\\x0d\这里很多书其实是推荐而已,不必太在意,关键还是基础,才是重中之重!!!

第一步、建立交叉编译环境

没有交叉开发经验的读者,可能一时很难接受这个概念。首先,要明白两个概念:一般

我们工作的机器,称为开发机、主机;我们制作好的系统将要放到某台机器,如手机或另一

台PC机,这台机我们称为目标主机。

我们一般开发机上已经有一套开发工具,我们称之为原生开发套件,我们一般就是用它

们来写程序,那么,那什么又是交叉编译环境呢?其实一点也不神秘,也就是在开发机上再

安装一套开发工具,这套开发工具编译出来的程序,如内核、系统工作或者我们自己的程序,

是放在目标主机上运行的。

那么或许有初学者会问,直接用原生开发工具为目标主机编译程序不就完了?至少我当

初是这么想的。一般来说,我们的开发机都是X86

平台,原生开发套件开发的工具,也针

对X86

平台,而我们的目标主机可能是PowerPC、IXP、MIPS……所以,我们的交叉编译

环境是针对某一类具体平台的。

一般来讲,交叉开发环境需要二进制工具程序、编译器、C链接库,嵌入式开发常用的

这三类软件是:

Binutils

Gcc

uClibc

当然,GNU包含的工具套件不仅于此,你还要以根据实际需要,进行选择

第二步、编译内核

开发工具是针对某一类硬件平台,内核同样也是。这一步,我们需要用第一步中建立的

工具,对内核进行编译,对于有内核编译经验的人来说,这是非常简单的;

第三步、建立根文件系统

也就是建立我们平常看到的bin、dev、proc……这一大堆目录,以及一些必备的文件;

另外,我们还需要为我们的目标系统安装一些常用的工具软件,如ls、ifconfig……当然,

一个办法是找到这些工具的源代码,用第一步建立的交叉编译工具来编译,但是这些软件一

是数量多,二是某些体积较大,不适合嵌入式系统,这一步,我们一般都是用busybox来完

成的,包括系统引导软件init;

最后,我们为系统还需要建立初始化的引导文件,如inittab……

嵌入式软件开发专业主要课程如下:

主干学科:马克思主义理论、大学外语、高等数学、大学物理、物理实验、线性代数、概率论与数理统计、程序设计语言、数据结构、离散数学、 *** 作系统、编译技术、软件工程概论、统一建模语言、软件体系结构、软件需求、软件项目管理

该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代 *** 作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。

实践环节:毕业实习、课程设计、计算机工程实践、生产实习、毕业设计(论文)。

扩展资料:

嵌入式开发技能及就就业方向:

1、可视化编程掌握程序设计方法及可视化技术,精通一种可视化平台及其软件开发技术。获取Delphi程序员系列、Java初级或VB开发能手认证。 就业方向:企业、政府、社区、各类学校等可视化编程程序员。

2 、WEB应用程序设计 具有美工基础和网页动画设计能力,掌握交互式网页程序的设计技术,能进行网站建设和维护。获取Macromedia多媒体互动设计师或Delphi初级程序员或Delphi快速网络开发工程师认证。 就业方向:企业、政府、社区、各类学校等WEB应用程序员。

3 、软件测试 掌握软件测试的基本原理、方法和组织管理,精通软件测试工具。获取ATA软件测试工程师或Delphi初级程序员或Java初级程序员认证。 就业方向:企业、政府、社区、各类学校等软件测试员。

4 、数据库管理 能应用关系范式进行数据库设计,精通SQL语言,胜任数据库服务器管理与应用工作。获取Oracle数据库管理或SQL Server数据库应用或Windows XP应用认证。 就业方向:企业、政府、社区、各类学校等部门的中、大型数据库管理员。

5 、图形图像制作 精通国际上流行的图形/图像制作工具(如CorelDraw、Photoshop、Pagemaker等)。获取平面设计师相关的认证。 就业方向:广告制作公司、建筑设计公司、包装装璜设计公司、居室装修公司、出版印刷公司。

6 、网络构建技术 熟悉网络结构和组网方式,掌握建网方法,能利用工具分析和排除常见网络故障。获取Cisco路由配置或华为网络工程或AMP应用工程师认证。 就业方向:企业、政府、社区、各类学校等网络构建工程师。

7 、网络系统管理 掌握网络系统管理的基本知识与应用技能,能进行网络系统的安全设置。获取Window2000 Server或TurboLinux TLCE或Cisco路由配置专家认证。 就业方向:企业、政府、社区、各类学校等网络系统管理员。

8 、多媒体制作 具有多媒体程序设计与多媒体制作策划的能力。基本掌握面向对象程序设计与建模、造型设计、场景设计、分镜头原理等技能。获取多媒体设计师相关的认证。 就业方向:多媒体设计与制作公司、动画美术制作出版公司、广告制作公司。

9、 计算机办公应用 精通办公自动化应用与管理,熟悉服务器的安装、管理和维护,基于应用服务器的相关服务和软件系统,具备对服务器的网络安全设置、邮件、网页发布、FTP、OA、BBS等系统的应用和维护能力。 就业方向:企业、政府、社区、各类学校等系统管理。

参考资料来源:百度百科-软件工程

以上就是关于学习嵌入式开发要学习哪些知识全部的内容,包括:学习嵌入式开发要学习哪些知识、什么是嵌入式软件开发高分悬赏中~~~资深的进来谈.、嵌入式软件开发方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9283807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存