嵌入式工程师的知识结构

嵌入式硬件工程师是什么?新手学习需要了解什么? 在学习的道路上我们一直是新手,硬件行业显得更加如此。想成为高级嵌入式硬件工程师,你还缺少什么? 有很多朋友经常会问,成为高级嵌入式系统硬件工程师,需要做到哪些呢?这里的话你可以留下企鹅,相信我一定可以帮的到你。那么,我们就先从嵌入式硬件工程师是个什么概念入手 一、如何理解“嵌入式”的概念呢? 1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结 阅读详情

     嵌入式开发,已经是一个风生水起的行业,很多的人加入到这个行业,不论是学习计算机的还是学习电子工程学的,不论是专科生还是研究生,为什么?因为行业容量大,对人才的需求量大,就业和跳槽的机会多,工资待遇从K级别到10K~几十K不等。

     嵌入式知识领域非常的广泛,从CPU的结构、指令集到基于嵌入式OS的Application的开发,都是嵌入式工程的一部分,从汇编语言到C、C++、C#、Java,编程语言的要求也很宽泛。早期的嵌入式就是单片机,比如C51及16位单片机,这上面的开发相对比较简单,多是单一的控制类的工作,如控制信号灯的开关及处理一些基本的中断任务,到了后来的MIPS、ARM、PowerPC以及DSP,其上面的软件开发越发的复杂,做的事情也越来越多,加上嵌入式OS如Vxworks、Linux、Symban,基本上嵌入式系统就是一个微型的PC,从底层的BSP,到上层的应用软件及UI界面,每个系统层,都可以是一个小领域。

      作为这个领域的从业人员,对嵌入式系统需要的知识,如果没有很好的职业规划和学习方向,将会无所适从,觉得什么知识都很需要,什么知识又都很难学的深、用的好,结果是学一点用一点,用一点丢一点,学无所长、工无所精,最后沦为一个技术上的庸庸之辈。

      那什么样的知识结构才是最有前途(钱途)呢?答案是没有。因为作为一个嵌入式领域的工作者,既不可能学完所有的知识,更不可能精通好个业务。因此,选择其中一个方向(有前途的方向),一直走下去,才是实用的。

      下面从编程语言、嵌入式通讯协议、嵌入式平台、业务类型等几个方面做个简单的介绍。


---编程语言

~~~~~~~~~~

         编程语言有很多种,中低层常用C语言、汇编,中上层开发用到的C++、Java、C#等,C语言的应用最为广泛,既能做比较底层的驱动程序编程,又能做不复杂的中上层应用程序或者协议栈的开发,因此在这个行业工作的,基本都会,但是精通的应该不多了,C语言的精通不仅是语法的理解,更重要的还有标准库的使用,在实际工作实践中,很多人会放着标准库函数不用,而是去自己实现某种功能,虽然完成了工作,但是效率却降低了很多,不站在前人的肩膀上,怎么可能比前人做的更好呢?

         C++和Java是C语言的两个同级别的高级衍生语言,C++的出现,是因为用C提供的语言机制实现某种应用,非常的复杂,比如开发一个文本查询软件,提供N中查询算法,在C的机制下,只能也能用switch语句来区分和增加新的查询算法,因此也不得不把整个软件重新编译、测试一遍,比较费时费力,还不保证是否带来新的Bug,而在C++机制下,就可以应用基类--派生类的抽象概念来分离查询应用层与查询实现层,在应用层上出现的所有查询操作用基类Query指针表示,这个是基本不会修改的,而查询的实现如QueryName()、QueryAnd()等,可以自由的增加和实现,无需修改用户层面的代码,这样这个软件如果增加新的特性,只需要修改例如QueryName的派生类即可。

         当然,也可以把C++当C来使用,那就是base-class的编程了,其思想同c一样,是一种基于过程的编程,讲究的流程控制。

          究竟该精通什么语言?看你想做什么工作,如果做嵌入式领域上层的开发,建议是侧重C++语言,他会为你的工作带来不一样的效率和更好的思维方式,会让写出的code即简洁又通用,还有很好的移植特性;如果做的是协议栈或者驱动类的开发,建议还是C比较好,这类的开发,讲究的是语言表达的效率和直接性,反之如果用C++,则是用复杂的机制办了简单的事情,得不偿失。

          语言本质是个工具,是用来表达信息和思维的,“工欲善其事必先利其器”,如果学好精通了一种语言,会让工作事半功倍的,如果多点对编译原理的理解,那么程序就会少了不少令人沮丧的bug。




嵌入式软件工程师学习路线图 嵌入式技术关键在于理论和实践的结合,要能够学以致用,完成了以上的所有阶段的知识点学习后,到底有没有学会,会不会用,能不能应用所学知识来解决实际开发中的问题,我们需要来完成一个综合的嵌入式实训项目,例如: 基于嵌入式Linux平台实现的飞行器、 基于嵌入式Linux平台实现的智能机器人等,这些项目都综合应用了嵌入式开发当中的应用,驱动和QT开发技术。这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。3、学习嵌入式系统的构建。 阅读详情

相关推荐

嵌入式工程师面试必备题库与知识点大全

嵌入式系统是一种专用计算机系统,它们通常被设计为完成特定功能的设备,是现代电子设备不可或缺的一部分。嵌入式系统通常由硬件和软件两部分组成。硬件提供计算平台,而软件则运行在硬件上,控制硬件的功能,实现特定的应用需求。随着技术的不断进步,嵌入式系统正变得越来越复杂和多样化。在接下来的章节中,我们将探讨未来嵌入式技术的发展趋势,如物联网、边缘计算和人工智能集成对嵌入式系统的影响。

weixin_36444661的博客 869

嵌入式工程师必备知识点

嵌入式工程师作为现代电子工程领域的核心角色,其职责涵盖了从等多个方面。为了胜任这一职位,嵌入式工程师需要掌握一系列的知识和技能。以下是对嵌入式工程师必备知识的详细解析。

mucherry的博客 1498

Klipper-源码模块

Klippy上位机程序采用多线程架构,包含四个主要进程:主线程处理G代码命令、串口IO线程(C语言实现)、MCU响应处理线程(Python实现)和独立日志线程。代码结构分为三大模块:chelper(C语言辅助函数)、extras(扩展功能如温度控制)和kinematics(运动学模型实现)。核心功能模块包括串口通信(serialhdl.py)、步进电机控制(stepper.py)、运动学计算等,其中C语言实现的底层模块通过serialqueue.c处理高效IO。扩展模块支持热床、传感器等外设,运动学子模块提

weixin_44258581的博客 992

嵌入式知识体系

本文为自己总结的学习嵌入式的知识体系   没有任何权威只为给自己看 若有误导   本人不负任何法律责任 ARM方向 1-------------------------基础 数字电子技术,模拟电子技术(晶体管,运放,电源等为重点),C语言, 单片机外围电路设计以及驱动开发(AVR,PIC,8051F,STC等) 实时操作系统应用 上位机编写

专注的力量 3138

ESP32C6+ESP-IDF5.2实战:基于RS485的ModbusRTU从站开发与调试

本文详细介绍了基于ESP32C6和ESP-IDF5.2开发ModbusRTU从站的实战指南。涵盖硬件连接、协议实现、ESP-Modbus库移植、寄存器映射及调试技巧,帮助开发者快速构建稳定可靠的工业级RS485通信节点,并解决常见通信故障。

play7的博客 1188

多智能体强化学习之值函数分解:VDN、QMIX、QTRAN系列优缺点分析(转载)

关于多智能体强化学习中VDN,QMIX,QTRAN三个算法再值分解方向的研究成果。三个算法呈递进关系

qq_33328642的博客 5859

年轻工程师怎样修炼成为“高手?(转)

    本人做过技术开发工作多年,从焊电路板的小工程师逐渐做到项目经理、研发经理,现在做到总工程师,作为工程师有亲身的感受,作为研发主管,对工程师的性格、心理和知识结构有非常深入的了解,现在把自己的一点感悟与大家分享,希望大家批评指正,欢迎补充完善。      有强烈的好奇心。这是成为高手的必要条件,喜欢新生事物,对问题喜欢刨根问底,以钻研为乐趣。那种得过且过,敷衍了事,仅仅把工作当作饭碗的人连熟

枫叶好帅~~~ 829

【Pix4d精品教程】Pix4d中央子午线细化设置(测区跨两个分带)

本文介绍了在Pix4d软件中通过修改中央子午线设置来解决跨分带测区刺点问题的方法。针对测区跨3度分带(如105°和108°之间)时像控点与靶标点偏移较大的情况,建议将中央子午线设为测区中心(如106.5°)。具体操作步骤包括:修改投影文件中的中央子午线参数,选择新的输出坐标系配置文件。该方法能有效提高像控点刺点效率,为航测内业数据处理提供便利。操作简单实用,适合大比例尺测图项目中跨分带测区的数据处理需求。

智慧空间实验室 5527

嵌入式方向知识体系

6.6 图算法:介绍常见的图算法,如图的表示和遍历、最短路径算法(如Dijkstra算法)、最小生成树算法(如Prim和Kruskal算法)等,帮助学生理解图的性质和图算法的应用。帮助学生理解继承和多态的应用和实现。6.3 排序算法:介绍常见的排序算法,如冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序等,讲解它们的原理、特点和性能分析。2.3数组与指针:讲解数组的定义和使用,包括一维数组和多维数组,以及指针的概念和应用,涵盖指针的算术运算、指针与数组的关系等。

dingyuana的专栏 441

Python爬虫:如何抓取亚马逊商品评论和评分

通过本文的学习,您已经掌握了如何使用Selenium爬取亚马逊商品的评论数据,并处理反爬虫机制。特别是在亚马逊这样的大型电商平台,商品评论和评分不仅能够反映产品的质量和顾客的体验,还可以对商家进行竞争分析。通过爬取亚马逊的商品评论,您可以获得有价值的市场信息,如产品的优缺点、消费者的反馈等。通过查看源代码,您可以发现,亚马逊的商品评论和评分数据往往通过JavaScript动态加载,这也意味着在抓取时需要使用Selenium或Playwright等工具来模拟浏览器加载。亚马逊的评论页面支持分页加载。

2201_76125261的博客 1438

嵌入式编程模型 | 原型模式

本文介绍了原型模式在嵌入式传感器网络中的应用。原型模式通过复制现有对象创建新实例,避免了重复初始化开销,适用于设备配置克隆、状态复制等场景。文章以传感器网络为例,展示了原型模式的结构(抽象原型类、具体原型类、客户端)和实现方式,通过C语言代码演示了温度/湿度传感器的克隆过程。该模式能有效提升嵌入式系统资源复用效率,实现快速部署相似配置的传感器节点,同时保持内存优化和配置灵活性。

嵌入式大杂烩 148

嵌入式工程师知识结构

1112

【异常】Warp终端AI功能403封禁报错I‘m sorry, I couldn‘t complete that request.Request failed with error: ErrorSta

本文针对Warp终端出现的AI功能定向封禁报错,完整还原脱敏后的报错信息、深度解读报错本质,并提供分优先级的全流程可落地解决方案,可直接用于技术排查、内部知识库归档。

奶爸的编程之路,也就一周冷个三天 267

【开篇】如何转行成为一名嵌入式音频工程师?

这篇文章的话题写的有点大,也允许作者用足够的时间来写完这篇文章。等我写完,再重新阅读一遍奥

程序手艺人 - 嵌入式音频技术之旅 8561

基于STM32设计的个人健康检测仪(华为云IOT)(191)

本系统采用华为云物联网平台实现数据云端存储与分析,并通过自研手机APP提供远程监控界面,让用户无论身处何地都能及时掌握自身的健康数据,为用户提供个性化的健康管理方案,同时也为医疗机构提供了便捷的数据获取途径,助力实现智能化、精细化的医疗服务。

1678

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

linux 嵌入式系统 逆向,《嵌入式技术 基础课程》之逆向-X86汇编

我们将《嵌入式工程师-系列课程》分成两大阶段:第一阶段:《计算机体系结构》课程分成4篇:分别是硬件篇,软件篇,网络篇,行业篇(a)硬件篇:电子、计算机、计算机组成、通信(b)软件篇:编译器、语言、算法、操作系统、软件工程(c)网络篇:互联网历史,互联网组成结构(d)行业篇:IT行业分类,各行业介绍,行业方案的重要性第二阶段:《嵌入式技术》课程分成5部分:基础知识,高级单片机,linux嵌入式,安卓...

weixin_32617915的博客 198

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【作为嵌入式软件工程师,如何平衡专业知识的深度和广度】

这是一个很值得思考的问题。嵌入式软件工程师常面临知识爆炸的挑战:既需要理解硬件、RTOS、驱动、协议栈,又要应对业务逻辑和应用层开发。我来分享一些实践中比较有效的平衡策略。T型结构:一横代表广度(快速理解系统全貌、跨模块协作),一竖代表深度(解决核心难题、建立技术壁垒)。嵌入式领域尤其适合这个模型,因为系统天然是软硬协同的。很多工程师会焦虑“要不要学XX新框架”。一个判断标准:当前项目或下一个明确项目是否会用到?嵌入式领域有一些几乎无处不在的核心深度,值得优先投入:把这四项练到“肌肉记忆”的程度,再学新的M

qq_36250901的博客 205

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

初步认识嵌入式:Linux的初步了解与C语言基础的初步学习

嵌入式初学纪要

monstercook的博客 226

嵌入式工程师职业转型:从Linux应用到驱动开发

Linux驱动开发是嵌入式系统底层能力的核心体现,其本质在于理解内核模块机制、设备模型与硬件资源抽象原理。掌握该技术不仅提升对系统运行时行为的掌控力,更支撑工业控制、智能终端、车载系统等高可靠性场景的定制化需求。相比应用层开发,驱动开发要求深入内核API、内存管理及中断处理等关键能力,成为进阶嵌入式工程师的重要分水岭。本文围绕Linux驱动岗位转型路径展开,结合真实职业选择逻辑与成长挑战,解析从用户空间到内核空间的能力跃迁过程。

weixin_32242475的博客 82

从技术之星到工程师成长:胡耀文的技术传承与问题解决之道

在电子工程与嵌入式系统领域,扎实的理论基础与系统化思维是工程师应对复杂挑战的核心能力。电磁场理论、信号处理等基础学科提供了分析问题的根本方法,而系统思维则帮助工程师从物理层到应用层全面把握技术架构。这种技术能力在解决实际问题时体现为高效的问题定位与解决方案,例如通过分层排查法精准分析电路故障,或运用仿真工具验证设计。其技术价值在于提升调试效率与方案可靠性,广泛应用于消费电子、物联网设备、电源设计等场景。胡耀文作为资深工程师,通过论坛答疑展现了如何将热词“模拟电路”与“嵌入式系统”知识融会贯通,以原理驱动实践

weixin_30607029的博客 308

嵌入式系统工程化设计4

按照系统工程去理解嵌入式系统开发有几个维度需要考虑? 1,沟通和管理维度。比如需求工程,软件工程,开发流程,各类设计标准和规范,成本设计,验证和确认的确认环节,技术文档。这些环节与沟通和管理相关,也与技术知识相关联,需要贯彻落实到管理流程里面。 2,电子和信息技术及相关专业知识。体系结构,电路设计,软件设计,环境适应性设计,某领域的专业 如控制,通信,探测,医学,商业等。不同产品对产品设计对知识要求差异很大,人机交互信息设备和大型装备控制系统,要求就存在很大差异,有些强度人机交互,有些强度可靠性和安全性,有

m0_57122083的博客 4126

嵌入式软件工程师和嵌入式硬件工程师有什么区别

什么是嵌入式硬件工程师   随着嵌入式技术的普及,硬件工程师的性质也有所改变。嵌入式硬件工程师与我们平常所说的硬件工程师不同。嵌入式硬件工程不但要求具备硬件工程师的基本技能,还必须完成部分软件工程师的工作,例如: 底层驱动的开发嵌入式操作系统的裁剪,移植; GUI、文件系统等软件的移植; 基于嵌入式操作系统的底层驱动程序的设计等。 什么是嵌入式软件工程师   嵌入式软件工程师与我们平常说的软...

gd1984812的博客 3万+

嵌入式硬件工程师与嵌入式软件工程师

纯硬件设备是指内部不包含微处理器,无需烧写软件就能够运行的电子设备。如天线、老式收音机、老式电视机、老式洗衣机等。这类设备通常功能简单,易于操作,用户通常只需要打开电源开关并调节电位器、可变电容就能够使设备进行工作。嵌入式设备是指内部包含微处理器,需要烧写软件才能够运行的电子设备。由于具备微处理器和程序代码,因此嵌入式设备能够完成比较复杂的功能。用户通常需要按照屏幕上的菜单进行选择,才能够使设备工作于希望的模式。用户甚至可以对设备进行编程,使设备按照特定的时序进行工作。

johnboat的专栏 1万+

嵌入式软件工程师学习路线

大家选择学习嵌入式,最后是都要做嵌入式相关工作的,所以在学习的时候真的要用心,如果你三心二意的话,那么很可能就学不好嵌入式了,因为嵌入式的确很难,不过,下面可以先来了解下嵌入式软件工程师学习路线,对你学习还是有帮助的。 嵌入式软件工程师学习路线 1、打好嵌入式软件编程的基础 这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。 特别是C语言中对指针的理解和应用。这一阶段的主要目的是学习编程语言、开发环境、和培养自己的编程思维,

hqyjzsb的博客 1万+

嵌入式硬件工程师与嵌入式软件工程师的区别(详细版)

随着嵌入式技术的不断发展,嵌入式硬件工程师的角色已经发生了显著变化。嵌入式硬件工程师与传统的硬件工程师有所不同,除了具备硬件设计的基本技能外,还需要涉足一部分软件工作。底层驱动的开发:包括开发设备驱动程序,确保硬件与操作系统之间能够有效通信。嵌入式操作系统的裁剪和移植:根据项目需求定制操作系统,移植到目标硬件平台上。GUI与文件系统的移植:负责图形界面和文件系统的集成,使系统能够以更直观的方式与用户交互。基于操作系统的底层驱动设计。

qq_46187594的博客 9312
下一篇: 宏函数-----do while(0)的妙用
embedded_man2011
博客等级 码龄16年 15粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值