一、嵌入式系统开发技术是什么?
嵌入式系统开发就是对于除了电脑之外的所有电子设备上操作系统的开发,开发对象有手机,掌上电脑,机电系统等。;嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。;嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。
与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为"固件"。
二、嵌入式系统开发技术三级证含金量?
含金量并不高,嵌入式系统开发技术主要考核嵌入式系统软件的基本架构,嵌入式系统的开发方法及常用工具,掌握开发嵌入式系统的基本技能等。
考试难度方面,应该属网络技术最简单,报考人数也是最多的,考试的内容95%都是靠背诵就行,其次是数据库技术,牵涉到C语言和SQL等,难度要大些。
三、成为一个嵌入式系统开发者需要掌握什么技术?
说实话,问题中嵌入式开发这个话题有点庞大,毕竟它涵盖的领域和范围很宽泛。作为一个在嵌入式软件开发方面工作了十多年的老程序猿,这么多年过来也在通过不停的自学和各类项目的历练中,不断积累自己的嵌入式软件开发的技能栈。这里也借题主的问题宝地,梳理一下嵌入式软件开发方向的技能栈,以期对题主和广大嵌入式软件爱好者有所帮助。毕竟是站在个人的经历角度分享,如有缺失敬请谅解。
作为嵌入式软件开发,在答主前面很多次的回答中都有提到,这个软件开发其实可以细分为:
- 嵌入式MCU软件开发工程师;
- 嵌入式Linux底层(BSP)软件开发工程师;
- 嵌入式Linux应用开发工程师;
- 嵌入式FPGA算法开发工程师
答主这么多年,从MCU开发及Linux应用开发起步,在合伙创业过程中自学并通过项目实践构建了Linux底层驱动技能栈,FPGA算法工程师仅仅因为与公司的相应同事有过交际集,这里就不过多阐述FPGA算法工程师的技能栈,防止给大家带跑偏了。
1,嵌入式MCU软件开发工程师
- 【基本武器】:
- (1)C语言编码能力(数据结构,常用算法,指针和数组,结构体和位域等)
- (2)MCU的理论知识(时钟树,内存,中断,GPIO,功能外设(uart,iic,dma等)等)
- (3)MCU的编码方式(寄存器/库函数),编译下载过程(根据题主选择的MCU来学习)
- (4)基本的电路连线图能看懂(MCU的管脚如何连接到外界器件等)
- (5)实时操作系统编码能力(ucos,freertos,liteos等等)
- (6)业务场景知识(根据题主嵌入式产品场景而定)
- 【升级武器】:
- (1)软件架构设计能力
- (2)示波器,逻辑分析仪使用(调试通信器件使用)
- (3)读取反汇编能力(定位Bug时候可能用到)
- (4)掌握通信协议(串口232通信,485通信,iic协议,spi协议,tcp/ip,can协议等等)
2,嵌入式Linux应用开发工程师
- 【基本武器】:
- Linux C语言编码能力(数据结构,常用算法,指针和数组,结构体和位域等)
- Linux常用功能API(多线程,多进程,锁类,进程/线程通信机制相关等)
- Linux Shell使用(基本的Linux操作能力)
- Makefile/GDB调试
- 掌握通信协议(串口232通信,485通信,iic协议,spi协议,tcp/ip,can协议等等)
- 业务场景知识(根据题主嵌入式产品场景而定)(比如视频,那么rtsp,h264编码,视频基础)
- 【升级武器】:
- (1)软件架构设计能力
- (2)读取反汇编能力(定位Bug时候可能用到)
- (3)Linxu操作系统理解(用户态,内核态,中断机制,内存机制等)
3,嵌入式Linux底层(BSP)开发工程师
- 【基本武器】:
- Linux C语言编码能力(数据结构,常用算法,指针和数组,结构体和位域等)
- Linux裁剪,移植,编译
- Linxu操作系统理解(用户态,内核态,中断机制,内存机制等)
- Linux Shell使用(Linux操作能力)
- bootloader(uboot等)修改
- 基本调试用通信方法(uart,tcp/ip)
- 【升级武器】:
- Linux驱动开发能力
- Linux内核机制
- 等等
以上根据个人的工作经历中使用的技能栈总结,难免存在遗漏。毕竟每个嵌入式工程师从事的行业不同,技能栈也会有所不同。以上建议,也仅供题主和广大嵌入式软件爱好者参考。
四、嵌入式Linux系统开发模式?
嵌入式系统通常为一个资源受限的系统。
直接在嵌入式系统的硬件平台上编写软件比较困难,有时甚至是不可能的。目前,一般采用的办法是,先在通用计算机上编写程序,然后,通过交叉编译,生成目标平台上可运行的二进制代码格式,最后下载到目标平台上的特定位置上运行,下面就由福州卓跃教育做具体步骤介绍。 第一步,建立嵌入式Linux应用开发环境。目前,常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是GNU工具链,目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。商业的交叉开发环境主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C++等。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式。第二步,交叉编译和链接。在完成嵌入式软件的编码之后,就是进行编译和链接,以生成可执行代码。由于开发过程大多是在Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。第三步,交叉调试。①硬件调试。如果不采用在线仿真器,可以让CPU直接在其内部实现调试功能,并通过在开发板上引出的调试端口,发送调试命令和接收调试信息,完成调试过程。目前,Motorola公司提供的开发板上使用的是DBM调试端口,而ARM公司提供的开发板上使用的则是JTAG调试端口。使用合适的软件工具与这些调试端口进行连接,可以获得与ICE类似的调试效果。②软件调试。在嵌入式Linux应用开发系统中,Linux系统内核调试,可以先在Linux内核中设置一个调试桩(debug stub),用作调试过程中和宿主机之间的通信服务器。然后,可以在宿主机中通过调试器的串口与调试桩进行通信,并通过调试器控制目标机上Linux内核的运行。五、嵌入式系统开发要学什么,要没有具体的嵌入式系统开发路线图?
嵌入式系统分开嵌入式开发以及系统级开发。
1嵌入式开发
嵌入式在学习的过程中会遇到很多很多的问题,包括单片机,模拟电路,数字电路,DSP,FPGA等等等,这些知识的学习都是循序渐进的,比如一开始就得学会c语言,行为c语言是嵌入式开发的最基本的知识,就好比一个演讲家一开始得学会说话一样,可以看出c语言的重要性。当学会了c语言,那就开始转单片机,比如我在一开始学习的就是51单片机,当然这是在本科学校里面学习的,后来毕业后找了份单片机相关的工作,才接触到了stm32单片机,stm32单片机的学习从51单片机直接操作底层寄存器的操作,到了库函数的开发,库其实就是对底层寄存器的包装,做出接口来,之所以芯片厂家做出库函数,其实就是在单片机日益强大的功能面前,直接操作寄存器那是相当耗费时间的一向工作,当然,如果你想用寄存器开发完全可以。只是后面遇到的问题会把你烦死,学会了单片机,在后面的项目中可能会遇到DSP,因为在数据大量运算的时候,单片机就望尘莫及了,单片机对于自动化控制可以完美的驾驭,但是对于数据的处理运算不是它的强项,这时候DSP就果断的站出来完成信号处理,如果接触DSP 肯定会接触到FPGA,所以也就慢慢的全部都接触了。
2 系统开发
系统的开发需要大量的专业知识,例如所用器件的选型,开发周期的控制,以及人员的调配,这对于工程师的要求就从开发转到了管理,还是相当有挑战的,在开发过程中会遇到系统的不同,例如linux的开发,这时候就又得学习了。
3 嵌入式系统路线
从学生到 工程师再到 项目管理者
这就是一般的晋升路线了。当然要想从事嵌入式行业,你必须的学会每一样知识点。
六、无线通信和嵌入式系统开发哪个好?
无线通信好。
无线通信专注于电磁波传输和接收。它是实现现代通讯网络(如 4G、5G、Wi-Fi 等)的基础,可以实现人与人、人与物体、物体与物体之间的快速、准确的信息传递。
l
七、嵌入式内核工程师算高技术吗?
算高技术的。
嵌入式入门门槛还是比较高的(我说的是ARM+linux,不是说普通的单片机),需要比较全面的知识结构。除了相关专业的人是很难入门的(除非是纯嵌入式软件)。
八、系统开发工程师应该怎么做?
从小白到软件开发工程师:找个培训机构进行系统的学习。 想要在软件开发行业有所作为,还需要以下两点。一是有足够的热情,软件行业是一个朝阳行业,也是一个瞬息万变的行业,我们随时都的保持着工作热情,吸收新的知识,拓宽人脉,我们才有更宽的思维,这样才能有更多的灵感,才能开发新的应用,也就是我们软件开发行业中常说的有创新思维,其实人的创新来源于自己的知识储备,而知识储备来源于我们的学习热情,只有在工作和学习中拥有足够的热情我们才能发展的更好。另外对于软件开发工程师想要有发展,还的有一些基础,当然此处所说的基础并不是最基本的语法基础,而是操作系统以及硬件方面的基础,或者是目前最热门的云计算和大数据、移动操作系统等方面的基础。当然最好也有一定的英语基础,总之基础越多,对我们发展越有利。知识丰富后,再通过不断的练习,不断的反复实践,在软件开发行业,想要有发展,还是很容易。毕竟软件开发行业是非常缺人的,而且工资待遇都不低。 软件开发工程师是从事软件开发相关工作的人员的统称。 软件开发工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)、.NET平台技术、C#、C/S B/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、STRUTS等前沿技术。
九、嵌入式工程师证书?
考软考的嵌入式系统设计师,和职称挂钩。属于专业技术资格,其他不是
十、嵌入式工程师前景?
较好。因为随着物联网技术的不断发展,嵌入式系统作为硬件系统和软件系统的结合,在智能家居、智能交通、智能医疗等方面都具有广阔的应用前景。而这些领域的发展需要嵌入式工程师来实现系统的设计和开发,因此从就业市场的角度来看,嵌入式工程师的需求量也将逐年增加。此外,嵌入式系统的开发还需要涉及到包括通信协议、控制策略、嵌入式操作系统等方面的技术,对于从事嵌入式系统开发的工程师而言,也需要不断地学习和更新相关技术,以提高自身的竞争力。因此,嵌入式工程师的前景较为乐观,并且也需要具备不断学习进阶的精神和动力来应对行业的变化和发展。