嵌入式工作做什么?如何入门嵌入式_怪人怪事

嵌入式工作做什么?如何入门嵌入式

怪人怪事 2023-04-29 18:17www.bnfh.cn怪人怪事

  接下来我将从一下几个方面对嵌入式做一个详细的介绍,主要包括学习嵌入式必备知识、嵌入式工作做什么、如何入门嵌入式、大学生如何规划自己的四年,成为合格的嵌入式工程师。

  学习嵌入式必备知识

  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等此时,你已经真正进入嵌入式大门领域了,到了这步,或许不用我说你也有你自己的目标了。

Copyright © 2016-2025 www.bnfh.cn 怪异网 版权所有 Power by