嵌入式工作做什么?如何入门嵌入式
接下来我将从一下几个方面对嵌入式做一个详细的介绍,主要包括学习嵌入式必备知识、嵌入式工作做什么、如何入门嵌入式、大学生如何规划自己的四年,成为合格的嵌入式工程师。
学习嵌入式必备知识
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语言实现过程。
6、C++ 、QT
C++是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C++的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。由于QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广范的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。
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设备等驱动开发,在工作中能独立胜任底层驱动开发。
嵌入式工作做什么
嵌入式的工作是万金油,这个也只是相对来说的,在大企业里面,不可能让一个人从事非常多的任务,这样会导致一个问题,风险非常大,你承担的任务越多,那么风险就越大,所以大企业需要的是在某个领域非常专业的人才,从事的事情也是非常专业的,单一的。 单一的工作需要一个Leader来指挥,这就需要一个架构师,这个架构师需要指导你往哪里天聪你的代码,你拉了一车砖头过来,不能随便就乱扔吧,这就需要规则,需要架构师来制定这个规则,所以就出现了各种软件总工。 大企业需要单一的某个领域的人才,小企业,需要的就不是了,他们需要比较全面的人才,他们没有那么多钱来请各个方面的人才,比如你要做一个手环,在小公司,那你就需要把驱动,应用,后台通信,各个功能子模块都一个人来完成。如果你在大公司,你可能就只负责手环的功耗部分,如果功耗有问题就来找你,其他的事情,就不是你负责的范围。
如何入门嵌入式
问嵌入式怎么入门,我第一想法和大多数人一样,买块开发板,跟着例程学习,按照步骤学习就行了。其实我自己在这个过程中也是走了不少的弯路,今天我把自己的一点小经验分享给大家,怪异网希望大家在学习的过程中少走弯路。
(1)如果还是学生,有条件一定参加大学里面的那些比赛,虽然技术含量不高,但配合软硬件开发调试的经历对于今后的发展很有助益,对于毕业后进入大公司也很有帮助。 (2)开发板一定要购买,且要选择文档资料齐全的(我即使现在手里也有两块开发板,一块单片机,一块嵌入式的,就是在业余学习新知识的时候验证下)
(3)和”hello orld”一样,嵌入式是从点亮LED开始的,但后面最好不要按照模块顺序逐个学习的方式,而是先定需求,根据需求反过来学习模块,这一步对于入门门槛是比较高的,但只要花费时间踏过去了,后面其实一片坦途。
如果不知道怎么算需求,那我定个稍显复杂的上位机-下位机需求
1. 使用串口完成PC和设备通讯
2. 串口使用自定义协议,包含起始位,地址,数据,结束位,crc校验
3. 通过串口能够管理外部设备,如复位,蜂鸣器,设置DA输出,获取AD值,并在界面显示
4. 支持串口在线升级,存储使用外部FLASH,下载支持断点重传,版本检验以及完整性检验,可自定义检验方法,如累加和,crc等。
5. 上位机开发支持自定义串口协议的软件,使用常用能够实现图形界面的语言和框架,如c#, c++或者python皆可以。
6. 如果有能力,支持上述自定义协议替换为FreeModbus协议,使用宏切换
7. 更进一步,将协议和上层应用部分与驱动独立开来设计,利用宏使应用和协议部分支持多平台的移植。
(4)多做,可以自己记录文档,也可以发表博客,不一定全部做完了才能发,你调试成功了AD,串口通讯协议调试成功,每一步都可以,分享自己开发心得和问题解决方式,会写代码调试可能只是把别人的拿来用,但能够写出来讲解给别人,就一定是深入了解过的,这也是我学习过中留下的最大财富,保存至今,你可以看看我其它的回答,应该会对嵌入式有更深刻的认识。
大学生如何规划自己的四年,成为合格的嵌入式工程师。
大一数电 模电 C语言这些都是基础,必不可少了。数电,驱动的逻辑与寄存器的入门;模电,电路图以及外围电路的基础;C语言,这个没啥好说了吧!
大二数据结构 单片机数据结构这个没学,后来自学的,Linux内核就是大量的数据结构之间的嵌套的派生;单片机,这个已经是嵌入式入门的开始了,可以开始编程设计控制完成一些基本的功能了。
大三STM32 uCOS 操作系统原理这些东西我都已经是自学了,因为没有课程,STM32这个玩意主要是他在市场应用领域广泛,因为他性价比高嘛!外围资源丰富,稳定,cortex M3的先驱者,学习的话,买个开发板,找个视频看起来,自己也要扩展性的学习编码。uCOS这个操作系统入门简单,资料丰富,完全可以自学,通过书籍学习阅读源码,当你懂得怎么用之后我建议你看RT Thread这款操作系统,非常Linux,强大的组件,只有你想不到,没有你看不到的。操作系统 这个书,我看了一小小部分,不好评价,已经加入我的必看书单了。
大四ubuntu POSIX接口应用 socket等此时,你已经真正进入嵌入式大门领域了,到了这步,或许不用我说你也有你自己的目标了。
奇闻怪事
- 黎姿老公马廷强前妻 黎姿老公马廷强前妻是谁
- 紫禁城闹鬼是真的吗 紫禁城闹鬼是怎么回事
- 80年黄河透明棺材事件 80年代黄河透明棺材始末
- 51区外星人录像是真的吗 51区外星人真的存在吗
- 姜潮麦迪娜恋爱过程 姜潮麦迪娜怎么认识的
- 根达亚文明大概离现在多久 根达亚文明距今多少
- 赤塔事件真的还是假的 赤塔事件到底怎么回事
- 百慕大三角在哪个国家 百慕大三角在哪个国家的
- 邓超出轨安以轩:邓超出轨安以轩是不是真的
- 中国十大闹鬼最凶的地方 中国十大闹鬼最凶的地
- 湘西鬼结婚事件:湘西鬼结婚事件真假
- 中国昆仑山10大灵异绝密档案 中国昆仑山10大灵异
- 李维嘉的父亲是谁 李维嘉父母是哪里人
- 朱秀华事件是不是真的 朱秀华事件的真相是什么
- 太湖冤魂:太湖冤魂事件真假
- 爪哇虎和东北虎谁厉害 爪哇虎和东北虎谁厉害一