如何成为linux嵌入式工程师
成为嵌入式开发工程师需要学习哪些

成为嵌入式开发工程师需要学习哪些学习技术不难,看你自己怎么规划希望给参加深圳单片机培训的朋友一些分享和帮助ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:(1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)(2)必须掌握一个嵌入式操作系统(初步定为uclinux或linux,版本待定)(3)必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。
从事嵌入式软件开发的好处是:(1)目前国内外这方面的人都很稀缺。
这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。
(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。
(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。
硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。
(4)兴趣所在,这是最主要的。
从事嵌入式软件开发的缺点是:(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。
(2)这方面的企业数量要远少于企业计算类企业。
(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。
但大多数公司也并无此要求,只要有经验即可。
(4)平台依托强,换平台比较辛苦。
兴趣的由来:1、成功观念不同,不虚度此生,就是我的成功。
2、喜欢思考,挑战逻辑思维。
3、喜欢C,C是一种能发挥思维极限的语言。
关于C的精神的一些方面可以被概述成短句如下:相信程序员。
不要阻止程序员做那些需要去做的。
保持语言短小精干。
一种方法做一个操作。
使得它运行的够快,尽管它并不能保证将是可移植的。
4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。
5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。
方法步骤:1、基础知识:目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。
嵌入式软件工程师工作要求

嵌入式软件工程师工作要求无锡市瑞丰精密机电技术有限公司任职要求:1、电子、计算机、自动化相关专业本科以上学历。
2、掌握电子行业专业英语,能够熟练阅读相关器件英文数据文档。
3、熟悉C/C++编程语言。
4、对力学、温湿度知识有一定基础。
5、欢迎应届毕业生。
薪水范围:1500-1999北京江河瑞通技术发展有限公司岗位要求:1.计算机科学与技术及相关专业,获得硕士或学士学位的优秀毕业生;2.熟悉掌握RTOS(WINCE、Linux等)之上的嵌入式软件开发;3.熟悉数据通信原理,熟悉VLAN,STP等相关二层协议;4.有一定的水利或软件行业相关专业知识背景;5.有通信、计算机网络协议开发经验者优先;6.有强烈的责任心和团队合作精神,具有较强的沟通及协调能力。
上海华虹集成电路有限责任公司职位描述1、负责公司软件产品的设计/实现/编码/维护/文档编制/公共模块积累等工作,为客户提供应用技术支持。
2、协助产品应用方案的推广,反馈客户信息。
技能描述1、有一定的软件开发经验2、熟悉C语言、汇编语言,有单片机软件设计经验;熟悉C++、C#、Java等;3、具有良好的逻辑思维能力、创新能力和团队协作精神;良好的沟通协调能力和服务意识;4、熟悉智能卡的相关知识的优先;应聘人员条件1、熟练使用KEIL,ADS,IAR,,Eclipse等开发环境。
2、熟悉51和ARM7架构及其软件开发和仿真调试。
北京北科亿力科技有限公司职位描述:电子或嵌入式软件工程师一、岗位职责:1、负责公司电子、工控、仪表等硬件产品的研发、优化及相关技术文档的编写;2、负责嵌入式软件的设计、编程、测试及技术文档的编写;3、负责公司新产品知识产权文档的编写和申报;4、完成上级领导交办的其它工作任务。
二、任职条件:1、本科及以上学历,计算机、电子、通信等相关专业应往届毕业生;2、身体健康,品行端正,有较强的学习能力、团队精神和良好的职业道德;3、熟悉单片机系统结构,精通单片机外围芯片接口技术,熟悉I2C、I2S、SPI、UART等常用接口;4、熟练掌握C 、C++,有嵌入式应用经验者优先;5、熟悉数字电路、模拟电路及各种基本电路,熟练运用PROTEL/Altium Designer 等软件,具备独立进行硬件原理图和PCB 设计以及软硬件调试的能力;6、至少精通ARM、A VR、STM32、8051、MSP430中一种MCU的结构和编程;7、熟悉CC1110、CC430、CC2430、CC2530、SI4432、SI1000等无线单片机者优先;8、可独立查阅芯片资料和文档(英文)。
嵌入式软件工程师职位目标

嵌入式软件工程师职位目标嵌入式软件工程师是一种专门从事嵌入式系统软件开发的职位。
嵌入式系统是指嵌入到物理设备中,具有特定功能的计算机系统,常见于我们日常生活中的各种智能设备,如手机、电视、家电、汽车等。
嵌入式软件工程师通过编写软件代码,为这些嵌入式系统提供功能和性能支持。
嵌入式软件工程师对于我来说是一个非常有吸引力的职位。
首先,我对计算机编程和系统设计方面有着浓厚的兴趣。
从小就对计算机技术产生了浓厚的兴趣,曾经在学校的电脑课上表现出色,并且在进入大学后选择了计算机科学作为我的专业。
我热衷于深入了解计算机系统的内部工作原理,并且享受通过编写代码来解决问题的过程。
成为一个嵌入式软件工程师,我能够将我的兴趣与工作结合起来,深入研究和开发嵌入式系统中的软件。
其次,嵌入式系统的应用范围非常广泛,与人们的日常生活息息相关。
从手机上的应用程序到汽车中的驾驶辅助系统,嵌入式系统的应用已经成为现代社会不可或缺的一部分。
作为嵌入式软件工程师,我可以参与开发这些创新的技术和产品,为人们的生活带来便利和改善。
作为一名嵌入式软件工程师,我可以在以下几个方面实现个人职业目标。
首先,我希望能不断提升自己在嵌入式系统方面的专业知识和技能。
由于嵌入式系统的技术更新速度很快,需要不断学习新的技术和工具。
我将参与培训课程和研讨会,以增加自己的专业知识和技能,并将这些知识应用到实际的项目中。
其次,我希望能够参与更多的嵌入式软件开发项目,积累丰富的工作经验。
通过参与不同类型的项目,我可以学习到不同的技术和方法,提高自己的软件开发能力。
我将努力提高自己的技术水平,熟悉嵌入式软件开发的各个环节,包括需求分析、系统设计、编码和测试等。
另外,我还希望能够成为一个团队的重要成员,并发挥自己的领导力。
嵌入式软件开发往往是一个团队合作的过程,需要多个工程师的协同工作。
作为一个有责任心和团队合作精神的人,我将努力与团队成员合作,有效地完成项目任务。
同时,我还希望能够成为团队的领导,带领团队完成复杂的嵌入式软件开发项目。
中国电子学会“嵌入式系统工程师”认证考试工作介绍

4
嵌入式(助理) 嵌入式(助理)工程师认证考试大纲
一、编写嵌入式助理工程师考试大纲的指导思想 1、考试的性质:嵌入式助理工程师是一种评价考试,而不是选拔考试; 2、规范评价嵌入式工程师认证体系,对今后高校设置嵌入式技术课程起指导 作用; 3、该评价体系与标准可以作为衡量当前高等院校学生掌握嵌入式技术的一个 尺度; 4、该评价体系与标准主要从工程应用型人才的要求出发,检查大学生今后从 事嵌入式系统应用设计所需的基本知识与技能; 5、评价体系与标准不能离开大学的基础课程与基础实验的训练; 6、教材标准与评价标准是有区别的; 7、该评价体系与标准的制定与有效执行,可以为嵌入式工程师考试大纲的制 定奠定基础,助理工程师主要考察会做会用,工程师主要考察不但要会做 会用,更重要是系统的开发能力和系统的性能以及程序代码的优化能力。
时间: 月 日 时间:6月6日 12月26日 月 日
方向:嵌入式硬件方向 ;嵌入式软件方向 方向: 地点:各个认证中心,全国统考 地点:各个认证中心,
18
目前已有考试中心: 目前已有考试中心
青岛大学自动化工程学院 东北大学软件学院 北方工业大学信息工程学院 大连理工大学城市学院 东北师范大学物理学院 南京理工大学计算机学院 华中科技大学工程实训中心 山东科技大学济南校区 兰州交通大学电子与信息工程学 院 黑龙江大学电子工程学院 南京工程学院自动化学院 中国石油大学(华东 华东) 中国石油大学 华东) 西安科技大学通信与信息工程学 院 天津职业大学电子信息工程学院 北京印刷学院信息与机电工程学 院 番禺职业技术学院软件学院 华南师范大学计算机学院 华南师范大学计算机学院 集美大学计算机工程学院 集美大学计算机工程学院 北京工商大学 北京工商大学 沈阳农业大学 沈阳农业大学 东莞理工大学 东莞理工大学 河北理工大学轻工学院 河北理工大学轻工学院 西北师范大学物理与电子工程学院 西北师范大学物理与电子工程学院 宁波大学信息科学与工程学院 宁波大学信息科学与工程学院 湖北工业大学商贸学院 湖北工业大学商贸学院 上海第二工业大学计算机与信息学院 上海第二工业大学计算机与信息学院 徐州工业职业技术学院 徐州工业职业技术学院 厦门城市职业学院 厦门城市职业学院 江苏科技大学张家港校区 江苏科技大学张家港校区 中科院西安网络中心 中科院西安网络中心 河北软件职业技术学院 河北软件职业技术学院 景德镇高等专科学校 景德镇高等专科学校 江西财经大学 江西财经大学 北理工珠海学院 北理工珠海学院 常熟理工学院 常熟理工学院 武汉华立教育咨询有限公司 武汉华立教育咨询有限公司 黑龙江工程学院 黑龙江工程学院 北京服装学院 北京服装学院 天津工程师范学院 天津工程师范学院 扬州科技学院 扬州科技学院 首钢工学院 首钢工学院 辽宁交通高等专科学校 辽宁交通高等专科学校
嵌入式软件工程师必须要掌握那些知识?

嵌入式软件工程师必须要掌握那些知识?嵌入式是当下最流行的开发模式,早在Android之前,这一领域的发展势头就非常强劲,但我们想想看,是不是Android从本质上来讲,也属于嵌入式开发的一部分,在最近几年被Android开发的风头盖过,但随之移动互联网时代的高速发展,嵌入式软件开发又开始羽翼丰满,重新占领舞台,下面就简单来了解下嵌入式开发的一些必备技能吧。
必备技能一、c/c++, 没有之一。
c/c++即能很好的跟底层硬件打交道,程序执行效率那也是相当有效率的。
基础的东西,就一定要学扎实,如果没有基础,那都是花把势。
所以嵌入式学习必需学习c/c++。
所谓基础是前提,有前提的后面的才会有保障。
对于嵌入式来讲,主要有两大发展方向,一是硬件方向,另外一种则是软件方向。
从硬件方向来讲,需要掌握的内容有:第一步:PCB设计,拿个芯片解决方案公版改改电路,换换零件,设计自己的电路,做自己的产品。
第二步:SOPC技术,一般为FPGA,CPLD开发,利用VHDL等硬件描述语言做专用芯片开发,写出自己的逻辑电路,搞个简单的外围芯片还是可以的。
第三步:整个arm架构,学学习习arm指令,看看芯片手册,搞搞bootloader。
第四步:玩玩系统移植,写写驱动这个已经上一个层次了第五步:SOC设计,这是硬件设计的核心技术:芯片设计。
能做到这步,已经不属于平凡的技术人员。
从软件方向来讲,需要掌握的内容有:除了一些基础语言开发之外,我们还必须要掌握一些更多的东西。
1、懂得linux系统,并会应用linux系统博大精深。
要想会玩那也是需要下工夫的。
基本命令会不会,简单脚本能不能写。
2、掌握相关的调试手段说道这个也是一个重要指标,嵌入式开发不同于pc开发,在pc 上断点跟踪代码什么的都十分方便,在嵌入设备上就比较麻烦了,串口,文件等这些是我们常用的调试手段,找问题基本上是看打印输出。
3、熟悉相关的环境配置嵌入式开发要想顺利,配置各种环境也是必需,没环境搞啥!学嵌入式开发要不停的折腾,环境配置虽然是个力气活,没它你还真干不了活。
嵌入式系统开发学习路线

1华清远见嵌入式培训官网:嵌入式系统开发学习路线嵌入式人才成为了IT业界的新宠儿也就在这几年。
在这样一个炙手可热的行业当中,越来越多的人想跻身这个行业。
怎样才能成为一名优秀的嵌入式大师。
只要你积极不断提升自己的专业技能。
哪怕以后有再多的人跻身这个专业。
你同样可以成为业内的佼佼者。
想学好嵌入式单单找几本书看看是远远不够的。
其实嵌入式的门槛还是比较高的,当然只要我们找到合适的应对方法。
也就把握了解决嵌入式开发的“死穴”华清远见小编就跟大家分享一下嵌入式系统学习路线,希望能够帮助到大家!基础学习:Linux入门+C语言+Linux应用程序设计Linux入门:目前嵌入式主要开发环境有 Linux、Wince等;Linux因其开源、开发操作便利而被广泛采用。
不应纠结于那个版本,而是尽快把 Linux系统尽快安装好。
如果打算坚持长期学习,那么建议您把自己的电脑做成双系统,而不要在虚拟机上安装;C语言:C 语言是嵌入式开发必备的基础知识。
学习C语言,如果不会用指针,那么就称不上会C语言。
做嵌入式开发指针更显得尤为重要,在嵌入式学习过程当中,C语言就像是整栋嵌入式大厦的基础,你只需要通过多敲、多练就一定可以成为一名准嵌入式工程师。
Linux应用程序设计:Linux的思想源于Unix,Linux继承了Unix的优点,而且Linux与Unix的源码级兼容。
“万丈高楼平地起”也就是说这三方面是非常重要的。
嵌入式入门:ARM体系结构从这部分开始,我们就真正要进入嵌入式开发学习的阶段了,首先我们应该了解ARM的技术特征,明白他的成功主要是基于两方面,一、得益于它独特的公司运作模式;二、来自于ARM处理器自身的优良性能,以及ARM处理器的相关特点等等……嵌入式提升:Linux内核、驱动众所周知嵌入式开发包含至少两个级别,一个是嵌入式内核驱动级别,另外一个是嵌入式应用层开发,而薪酬高的、最具价值的无疑是嵌入式内核驱动级别的开发者。
嵌入式软件工程师岗位的理解

嵌入式软件工程师岗位的理解嵌入式软件工程师岗位的理解一、前言嵌入式软件工程师岗位是当前社会上需求量较大的一个职业岗位,嵌入式软件工程师需要具备扎实的计算机相关专业知识和技能,掌握多门编程语言和技术,能够独立完成嵌入式软件开发工作。
本文将从嵌入式软件工程师的职责、技能要求、发展前景等方面进行分析和探讨。
二、嵌入式软件工程师的职责1. 嵌入式软件系统设计与开发嵌入式软件工程师需要承担嵌入式软件系统的设计与开发工作。
在嵌入式系统中,软件和硬件是紧密结合的,嵌入式软件工程师需要根据产品需求和硬件评台的特点,设计合理的嵌入式软件系统结构,并编写高质量的嵌入式软件代码。
2. 嵌入式软件测试与调试嵌入式软件工程师还需要参与嵌入式软件的测试与调试工作。
他们需要编写测试用例,进行软件功能测试和性能测试,并对软件中出现的问题进行调试和修复,保证嵌入式软件的稳定性和可靠性。
3. 硬件和软件的交互嵌入式软件工程师需要与硬件工程师密切合作,理解硬件评台的特点,协助硬件工程师完成硬件与软件之间的接口设计和调试工作,确保嵌入式软件与硬件的良好互操作性。
4. 软件维护与升级嵌入式软件工程师还需要承担嵌入式软件的维护与升级工作,及时对软件中出现的问题进行修复,并根据产品需求对软件功能进行升级和扩展。
三、嵌入式软件工程师的技能要求1. 扎实的计算机基础知识嵌入式软件工程师需要具备扎实的计算机基础知识,包括计算机组成原理、操作系统、数据结构与算法等方面的知识。
2. 熟练掌握多门编程语言嵌入式软件工程师需要熟练掌握C/C++等编程语言,并了解汇编语言、Python等其他编程语言。
3. 熟悉嵌入式系统开发工具嵌入式软件工程师需要熟悉常用的嵌入式系统开发工具,如Keil、IAR、MPLAB等,以及相关的调试工具和仿真工具。
4. 良好的团队合作能力嵌入式软件工程师需要有良好的团队合作能力,能够与硬件工程师、测试工程师等其他团队成员密切合作,完成软件开发与测试工作。
想要成为Linux底层驱动开发高手这些技巧绝对不能错过

想要成为Linux底层驱动开发高手这些技巧绝对不能错过对于想要成为Linux底层驱动开发高手的人来说,掌握一些关键技巧是非常重要的。
本文将介绍一些不能错过的技巧,帮助读者提升自己在Linux底层驱动开发领域的能力。
1. 深入理解Linux内核:在成为Linux底层驱动开发高手之前,你需要对Linux内核有深入的理解。
了解内核的基本概念、代码结构和内核模块之间的关系是非常重要的。
阅读Linux内核的源代码、参与内核邮件列表的讨论以及阅读相关的文献资料都是提升自己技能的好途径。
2. 熟悉底层硬件知识:作为底层驱动开发者,你需要熟悉底层硬件的工作原理。
这包括了解处理器架构、设备的寄存器操作、中断处理等。
掌握底层硬件知识可以帮助你编写高效、稳定的驱动程序。
3. 学习使用适当的开发工具:在Linux底层驱动开发中,使用适当的开发工具是非常重要的。
例如,使用调试器可以帮助你快速定位驱动程序中的问题。
掌握使用GCC编译器、GNU调试器(GDB)和性能分析工具(如OProfile)等工具可以提高你的开发效率。
4. 阅读相关文档和源代码:Linux底层驱动开发涉及到大量的文档和源代码。
阅读设备供应商提供的文档、Linux内核源代码以及其他相关文献资料可以帮助你更好地了解特定设备的工作原理和使用方法。
5. 编写清晰、高效的代码:编写清晰、高效的代码对于成为Linux底层驱动开发高手是至关重要的。
使用良好的编码风格、注释和命名规范可以提高代码的可读性。
此外,了解Linux内核的设计原则和最佳实践也是编写高质量驱动程序的关键。
6. 多实践、调试和优化:在实际开发过程中,积累经验是非常重要的。
通过多实践、调试和优化不同类型的驱动程序,你可以更好地理解Linux底层驱动开发的技巧和要点。
此外,学会使用内核调试工具和性能分析工具可以帮助你提高驱动程序的质量和性能。
7. 参与开源社区:参与开源社区是成为Linux底层驱动开发高手的好方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何成为linux嵌入式工程师
1、Linux开发工程师(每天学习6小时,用一个月时间)
首先成长为一名Linux开发工程师,这是最基本的目标,他应该具
备如下的素质:
(1)了解Linux基本概念和基本操作(历史,文化,起源)(命令行,配置,操作,开发模式)
(2)会使用Linux平台下的编辑器vi(默认安装,占内存小,方便
向嵌入式移植)
(3)会使用Linux平台下的编译器GCC(相应的十几个命令行参
数)
(4)会使用Linux平台下的管理工具Make(与Makefile相配合,尤其用于大项目中多平台移植的情况下)
(5)会使用Linux平台下的调试器GDB(可以了解底层硬件,及
汇编指令)
2、嵌入式工程师
他更关心的是将来在哪一目标机上运行,不关心操作系统,进行的
更多与编程相关的工作
(1)合格的C程序的程序员(理解基本的控制结构:循环、分支、
数组、指针)
(2)基本的编程思想(编程实践中总结算法)
(3)程序的编译和链接
(4)可执行文件内部(段、起始地址、如何加载执行)
(5)目标机处理器体系结构
(6)知道处理器的外设即System on Chip(内部存储结构及外设
驱动)
(7)汇编语言及指令(主要是用在加载过程中)
3、系统工程师
系统工程师夹在驱动工程师及应用工程师这两个层次之间,他要对系统有一个整体的概念,系统主要是指操作系统,往往理论有余而实践
不足
(1)进程管理与调度(知道进程间的切换与调度,多任务)(2)内存管理(建立MMU页表,知道从虚地址到物理地址的映射)(3)驱动管理(管理设备,编写设备驱动,加载设备驱动)
(4)文件系统(制作文件系统,文件系统的读写,甚至驱动有时也
被当成文件系统来管理)
(5)网络协议知识(协议实现作为上层应用与底层驱动之间的
衔接)
(6)图形系统知识(支持多窗口及管理窗口,包括窗口切换,窗口
移动和覆盖)
4、嵌入式Linux系统工程师
(1)嵌入式Linux基本概念
(2)交叉编译
(3)Linux内核开发和调试工具
(4)启动代码移植(修改Uboot,Vivi等)
(5)内核交叉编译(Linux不支持芯片时要芯片级的移植,支持芯
片时要板级的移植)
(6)根文件系统制作
(7)设备驱动程序开发
5、下面针对一个简单的"hello world"程序来区分一下以上所讲的工程
师之间的区别
#include<stdio.h>
int main(void)
{
printf("hello world!\n");
}
(1)初级程序员看到的是:
a、头文件
b、主函数main
c、子函数printf
d、函数调用
e、入口参数
f、参数返回
(2)高级程序员看到的是:
a、头文件---预处理过程
b、主函数main---程序入口
c、子函数printf---标准库函数
d、函数调用---跳转指令
e、入口参数---栈空间的参数传递
f、函数返回---返回指令
(3)嵌入式程序员看到的是:
a、头文件---预处理过程---宏展开/条件编译
b、主函数main---程序入口---启动代码
c、子函数printf---标准库函数---链接过程
d、函数调用---跳转指令---PC寄存器
e、入口参数---栈空间的参数传递---寻址方式
f、函数返回---返回指令---LR寄存器
嵌入式程序员还能看到的是:
可执行文件的内部组织结构
代码段
指令格式和类型
地址无关代码
数据段
RWdata读写数据段
ROdata只读数据段
BSS未初始化数据段
(4)系统工程师看到的是:
子函数printf---标准库函数---链接过程
动态链接(Dynamic Linking)(需要系统的支持)
静态链接(Static Linking)(嵌入式系统常采用静态链接,
以适应不同系统)
标准C库
系统调用(System Call)
软件中断(Software Interrupt)
(5)Linux系统工程师看到的是:
可执行文件的加载过程(不用了解系统调用这一级)
Shell进程--fork系统调用---exec系统调用
进程状态(就绪、运行、阻塞)
进程调度和调度算法
进程的上下文切换
(6)嵌入式Linux系统工程师看到的是
用户空间和系统空间(分别运行用户模式和管理模式)
ARM---用户模式和管理模式(执行权限不同)
SWI---软中断指令(系统调用就是由用户空间向系统空间切
换)
MMU---虚地址和实地址(不同进程如何实现自己独立的地址
空间)
BUS---地址总线、数据总线和控制总线(程序如何获得数据,
系统如何取指)
SOC---片上系统(整个嵌入式系统如何运行)。