初学嵌入式开发要学什么?掌握好这几个方向肯定没问题,如果你选择好了专业方向,那就别放弃了,努力的学习吧!
现在社会在科技方面总体而言是发展非常的迅速的,在我们的生活中角角落落都充斥着高科技的味道,里入我们平时基础到的四轴飞行器,最近出的小米的搞怪音响,咳嗽一声就会亮的声控灯等等这些东西从表面来看没有什么,但是他的内部组成都是科技的成果,也是嵌入式的成果。
既然嵌入式在我们的生活中应用的如此之多,相应的需要的开发人员也是非常多的,随时都需要新鲜血液的注入,那么就有朋友问了初学嵌入式开发要学什么技术呢?总不能说一看就会吧,当然不是不如此今天我们要讲的就是对于一个零基础也就是初学的朋友想要学习嵌入式需要学习那些东西。
好了进入正题我把初学嵌入式开发要学什么大致的分为八个大的阶段。
1、c语言
嵌入式linux工程师的学习需要具备一定的c语言基础,c语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解c语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。
2、linux基础
linux操作系统的概念、安装方法,详细了解linux下的目录结构、基本命令、编辑器vi ,编译器gcc,调试器gdb和 make 项目管理工具, shell makefile脚本编写等知识,嵌入式开发环境的搭建。
3、linux系统编程
重点学习标准i/o库,linux多任务编程中的多进程和多线程,以及进程间通信(pipe、fifo、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对linux应用开发的理解和代码调试的能力。
4、linux网络编程
计算机网络在嵌入式linux系统应用开发过程中使用非常广泛,通过linux网络发展、tcp/ip协议、socket编程、tcp网络编程、udp网络编程、web编程开发等方面入手,全面了解linux网络应用程序开发。重点学习网络编程相关api,熟练掌握tcp协议服务器的编程方法和并发服务器的实现,了解http协议及其实现方法,熟悉udp广播、多播的原理及编程方法,掌握混合c/s架构网络通信系统的设计,熟悉html,javascript等web编程技术及实现方法。
5、c++ 、qt
初学嵌入式开发要学什么c++是linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及c++的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。由于qt具有跨平台、面向对象、丰富api、支持2d/3d渲染、支持xml、多国语等强大功能,在嵌入式领域的gui开发中得到了广范的应用,在本阶段通过基于qt图形库的学习使学员可以熟练编写gui程序,并移植qt应用程序到cortex-a8平台。包括ide使用、qt部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。
6、数据结构与算法
数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其c语言实现过程。
7、cortex a8 、linux 平台开发
通过基于arm cortex-a8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做好准备。linux平台包括内核裁减、内核移植、交叉编译、gnu工具使用、内核调试、bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的linux系统,集成部署linux系统整个流程。同时了解android操作系统开发流程。android系统是基于linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、pda等消费类电子产品。
8、初学嵌入式开发要学什么驱动开发肯定是跑不了的
驱动程序设计是嵌入式linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备arm硬件接口的基础知识,熟悉arm cortex-a8处理器s5pv210各资源、掌握linux设备驱动原理框架,熟悉工程中常见linux高级字符设备、块设备、网络设备、usb设备等驱动开发,在工作中能独立胜任底层驱动开发。
那么对于学习方法也来给大家一些简答的建议
学习嵌入式开发的一些学习方法以及注意事项
1、学习利用搜索引擎
当了多年工程师、自认是“看得懂系统架构的软件人”的ptrgroup首席科学家michaelanderson认为,不要闭门造车,要善用开放源码世界的信息,很多常见的设计问题其实透过因特网就能找到同领域菁英贡献的程序代码;嵌入式工程师们要走出自己的小世界拥抱社群,与同领域的其他工程师们相互交流、互相帮助,而这也是开放源码世界的精神。
2、建立系统级的工程思维
自诩为高信赖度嵌入式系统专家、担任了多年工程师的e2v电子系统总工程师adamtaylor认为,嵌入式工程师拥有系统导向的思维是很重要的,有不少开发案遇到问题,就是因为没有在开发初期充分考虑基准、验证策略以及兼容性验证计划等项目;此外每个嵌入式工程师都应该具备优良的项目管理技巧,力求准时完成负责的项目。具备能明智因应技术与项目风险的能力,对职业生涯发展会很有帮助。
3、熟悉实时操作系统(rtos)
在工程人才招募机构randstadtechnologies负责嵌入式产业领域的解决方案经理henrywintz表示,目前产业界对于熟悉rtos的工程师需求很高,也愿意提供更高的薪资水平;因此他鼓励没有接触过rtos的嵌入式工程师从一些较小型的系统着手,累积相关技术经验。此外他也发现产业界对嵌入式linux人才有不少需求,主要是因为这种操作系统具备较大的设计弹性。
4、初学嵌入式开发要学什么这个问题培养多元化技能与系统观是肯定的
担任近多年工程师、具备许多不同领域技术经验的技术顾问公司rebelbot顾问jencostillo建议,原本从事较小型系统架构(例如mcu)开发的工程师,可以开始去熟悉更大的系统(例如linux驱动程序),反之亦然。尝试着去开发手机应用程序、或者是学习后端服务器的相关技术,能让你开启完全不同的观点;他并建议工程师去熟悉开放性硬件,现在市面上有不少现成的开发板,能让工程师专注于学习独特算法的开发。
5、了解最新的处理器
有超过多年嵌入式软件工程师经验的embedded.fm工程师eleciawhite表示,除了要深入了解c或c++等基本程序语言,有时也要认识一些热门的新程序语言以因应特殊设计需求,但更重要的是了解最新的处理器技术;处理器才是嵌入式系统的本质。因为我们的系统资源有限,我们需要了解可用的资源有哪些。
6、要能熟悉开放源码软件
拥有多年工程师经验的freescalesemiconductor数字网络全球软件开发部门总监roboshana表示,客户往往会要求在系统中整合一大堆软件,因此所有的嵌入式工程师需要熟悉各种软件;他建议工程师避免只专长单一领域,因为那可能会阻碍你的成长。对嵌入式工程师来说,确保自己对软硬件技术都很了解,是非常宝贵的价值。
7、要能明确表达自己的想法与意见透过文字或绘图
micrum总裁jeanlabrosse认为,无论是哪一种工程师,都需要能有效表达自己的想法与意见;往往有些菜鸟工程师无法清晰表达自己的想法,因为抓不到重点,而最好的解决方法是练习将之图形化,例如画出流程图。这听起来好像有点过时,但有时利用各种图框组合来整理自己的思绪、表达想法会是很有用的,例如ipad的ithoughts应用程序。
好了以上就是关于初学嵌入式开发要学什么的一个大方的总结,包含了c语言,linux,单片机等等几个方向的技术,除此之外也给大加简答的吧嵌入式学习中需要注意的东西以及学习方法给给大家了一些建议,还希望能够帮到初学嵌入式的朋友。
Redmi K40和小米11 Lite已获俄罗斯认证
基于新能源汽车的VCU核心功能详解
组织变革和微信助力下,“疗伤”后的京东能否“腾飞”?
亮相安可联盟会议,爱数自主创新助力国产化安全可控生态建设
中国的崛起的安防企业给大国带来了危机感
学习嵌入式开发的八大阶段、方法及注意事项
基于SAN架构的IBM FAST 900存储实现服务器机房电源控制系统的设计
Steam当之无愧成为VR内容平台的首选 VR应用突破1000个
安森美工业自动化产品如何帮助工厂解放人力
智能电力监控系统在配电站房的应用
PIC单片机学习笔记
主流工业以太网技术分析
反射式心跳血氧传感器导入智能设备,红外线光学元件需求明显成长
了解电池充电器功能与充电拓扑结构
ussd代码是什么_ussd代码有什么用
32位嵌入式处理器的特点及应用
AR应用的火热,离不开技术的发展推动
第17周自动驾驶大事记
Intel 11代酷睿i9-11900K:IPC提升12%
TMY环氧树脂喷塑硬铜排