有没有嵌入式开发的学习路线,越详细越好

如题所述

  看方向
  如果选择嵌入式硬件开发,就不懂了
  软件开发的话,分底层和应用层
  我是从事wince驱动开发的(快满一年),
  以wince为例,底层就是boot、bsp修改、驱动开发这几部分
  学习路线:
  1、买个开发板
  2、按照开发板上的例子玩玩,ARM汇编稍微能看懂,写点简单的程序跑跑,对汇编有个大概的了解,bootloader等等会多少涉及点汇编的东西
  然后就是开发板上的一些驱动玩玩。如果可以拿相似的BSP移植到开发板上就更好了,对BSP就有更多的认识了,学完以上可能可以找到工作,在工作中进一步加深理解
  如果是应用的话,wince,我们写应用用的是VS2005,VC++,和PC的开发基本差不多
  学完一个操作系统,切换到另一个平台相对而言还是蛮快的,基本都是相通的
  我之前的经验是,我买了开发板玩了ADS程序写了小型的程序,就是把LED啊、液晶屏啊、等等驱起来,然后,在linux下玩驱动,写了几个简单的流驱动,去应聘,鬼使神差被招进去玩wince驱动了,感觉差得不是很多,玩了2周就开始上手,2个月之后,底层这块就都扔给我了

  以上,仅供参考(至于开发板,如果是消费电子类的,好像三星的S3C系列用的人比较多,开发板也很多,工业类的就不懂了。至于选哪家开发板厂家,百度google一下)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-12-27

嵌入式人工智能,一个不算陌生的新技术名词。它曾经被云端和现实技术所束缚,只能在很小范围进行实验、运用,但是随着5G时代的渐渐临近,我们再一次听到了它的声音,而这一次,它开始脚踏实地地走入市场,走入大众身边。众多IT巨头开始针对嵌入式人工智能运用场景设计产品并不断更新换代,这同时也让一大批想进入甚至已经在嵌入式或人工智能等IT行业工作的技术人员们思考,嵌入式人工智能应该怎么学?

分享一个嵌入式人工智能课程学习路线。

【第一阶段】嵌入式开发基础理论

嵌入式人工智能作为目前最热门的计算机应用领域之一,嵌入式C语言在其中起着至关重要的作用。一个精通C语言程序设计的程序员,可以很容易地进入Linux、Vxworks等嵌入式操作系统下的软件开发工作。第一阶段分为Linux基础及语言高级、数据结构两大课程,通过课程学习让学员对Linux操作系统的使用、C语言编程、嵌入式Linux的开发环境以及高级数据结构有一定的精通掌握。

课程间小项目包括:计算器、字符串解析器、通讯录、小游戏开发等。

本阶段职业定位:嵌入式Linux软件开发工程师、C语言开发工程师、Linux软件开发工程师。

【第二阶段】嵌入式应用层开发核心课程

参加嵌入式应用层开发核心课程的学员应该掌握嵌入式C语言高级编程技巧和Linux底层开发的编程技巧。嵌入式Linux应用开发和Linux底层开发上嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。本阶段分为LinuxI/O及文件目录控制、Linux进程及线程开发、Linux网络开发及综合案例、C++语言课程和Qt应用开发五个课程,学员应当精通掌握嵌入式C语言高级编程技巧、嵌入式Linux下的程序设计、开发程序设计以及网络编程开发能力。

课程间小项目包括:命令行解析器、文件服务器、网络聊天室、Ping客户端、电子词典、员工管理系统等。

本阶段职业定位:嵌入式Linux应用工程师、Linux网络开发工程师、C++开发工程师、QT开发工程师。

【第三阶段】5G物联网核心开发课程

本阶段课程包括STM32开发和5G窄带物联网开发两个课程,主要通过大量的项目实战课程,让学员熟悉物联网开发中核心STM32开发技术、掌握5G窄带物联网开发应用NB-IoT和LoRa无线通信技术,理清重点、难点、疑点知识,达到举一反三,融会贯通,结合企业案例,独立完成项目开发。

课程间小项目包括:STM32智能家居、LoRa智慧牧场、NB-IoT智慧消防、NB-IoT智慧冷链系统等。

本阶段职业定位:物联网开发工程师。

【第四阶段】嵌入式底层开发核心课程

第四阶段是嵌入式体系中最核心最有技术难度的,包括ARM开发技术、Linux系统移植、Linux内核及驱动开发、Android移植开发四大课程,学员需要熟练掌握ARM体系结构、Linux系统移植、Linux驱动开发初、高级等内容,熟悉实战操作技巧结合企业案例,独立完成项目作品开发。

课程间小项目包括:软中断程序、LED控制程序、UART控制程序、按键中断程序、PWM蜂鸣器程序、uboot移植、内核移植、Android系统开机画面定制、Android系统开机服务定制、Android系统开机动画及音乐定制、Android系统桌面定制等。

本阶段职业定位:嵌入式Linux系统工程师、Linux kernel工程师、嵌入式Linux驱动工程师、Android系统工程师、Android驱动工程师。

【第五阶段】人工智能核心开发课程

人工智能是一门极富挑战性的学科,目前人工智能AI与嵌入式和物联网的结合产品有很多,也是一个火热的技术。本阶段包括Python和人工智能机器学习两门课程,基于第一大主流编程语言Python,让学员熟悉人工智能概念与行业前景,掌握Python编程基础及常用库使用、TensorFlow基础及神经网络、熟悉TFlearn相关知识点。

课程间小项目包括:老人防摔手表、摩托车图像识别系统、手写数字识别。

本阶段职业定位:python工程师、人工智能工程师。

【第六阶段】嵌入式人工智能开发拓展与实践

项目一:AI+嵌入式项目应用代表:人工智能工业分拣系统

项目简介:

人工智能工业分拣系统基于AI计算机视觉、AI语音识别+机械臂控制为一体的机械臂控制、仓库货物分拣、整理功能,基于TensorFlow框架,通过深度学习神经网络算法识别仓库货物,在终端进行显示及控制,使用户可以通过机械臂或通过语音发布指令控制机械臂执行将货物进行仓库间的搬运或将仓库内的货物进行整理归位等动作。

系统还可以通过AR增强现实技术实现图像识别,创建与现实中物体相关联的虚拟模型,结合鼠标或者手指的动作来操控虚拟物体,进而机械臂也跟随虚拟物体的移动进行相应的动作,也可以通过UI的操作来直接控制机械臂的运动。

涉及知识点:

嵌入式Linux、Python编程、Qt编程、ARM开发、机械臂开发、TensorFlow开发、AI语音识别技术、AR开发等。

项目二:AI+物联网项目应用代表:AI智能交通系统

项目简介:

AI智能交通系统包括ETC不停车收费系统、交通指示灯控制系统、智能路灯控制系统、AI车牌识别系统、智能消防系统、智能交通中央控制系统、物联网智能网关系统、智能交通实训车等各子系统,通过模拟真实交通场景,对各子系统以及智能交通系统中所包括的AI、物联网相关知识点进行整合学习与应用。

涉及知识点:

物联网技术、智能车控制技术、STM32 ARM技术、嵌入式Linux技术、TensorFlow机器学习技术等。

项目三:AI+机器人项目应用代表:人工智能机器人系统

项目简介:

人工智能机器人系统(FS_AIROBOTA)是一款模块化的室内智能机器人学习与研究平台,结构上以自平衡智能车为主体,通过选取Cortex-M4板、卡片式电脑、摄像头、云台以及多种传感与控制器件,可完成自平衡智能车相关的教学与研究。包括基于linux内核的OpenWrt操作系统的WiFi视频传输与控制;采用OpenCV框架实现图像捕捉及预处理的图像处理;采用谷歌的机器学习框架TensorFlow实现深度学习方面的的实际案例,例如:目标检测、人脸识别、微表情识别、车牌识别、数字识别和语音识别等,真正的做到人工智能+嵌入式的项目实践以及理论学习。

人工智能机器人系统(FS_AIROBOTB) 结合了机械、电子、传感器、计算机软硬件、机器人操作系统、人工智能等众多的先进技术。精心设计的金属结构件能够轻易完成机械结构搭建,配合高性能的微处理器,多种常用传感器,若干电机及舵机,方便验证机器人结构的运动特性、微处理器及机器人操作系统等方面的实验。结合人工智能让机器人更加智能,基于TensorFlow框架开发完成训练模型、调试参数、打包模型一系列人工智能开发流程。可实现基于AI计算机视觉+车辆+机械臂为一体的货物抓取项目;基于AI语音识别+车辆+机械臂为一体的车辆控制、机械臂控制,语音发布指令控制车辆的运动和机械臂执行动作;基于ROS机器人操作系统,完成室内地图构建、自主导航、标记识别,室内寻物,室内漫游。

涉及知识点:

平衡车控制技术(机器人FS_AIROBOTA)、ROS机器人操作系统技术(机器人FS_AIROBOTB)、STM32开发技术、嵌入式Linux技术、TensorFlow机器学习技术、AI语音识别技术、机械臂控制技术(机器人FS_AIROBOTB)等。

第2个回答  2020-11-28

嵌入式系统是计算机软件和硬件的综合体,岗位包括:ESE(嵌入式软件工程师);ADE(嵌入式应用开发工程师);FWE(嵌入式底层开发工程师);FEC(嵌入式固件开发工程师),我有全套嵌入式视频课可以发给你自学。

课程内容主要包括:

①C,Java核心编程:c语言核心编程,Java核心编程;

②Linux核心操作与算法:Linux系统使用,Linux-c编程核心技术,精品数据结构,Linux-c编程精髓;

③核心操作与算法:Linux系统编程,Linux网络编程核心技术,UI编程,Java核心编程,安卓核心技术;

④ARM+Linux底层开发:数字电路,ARM编程核心,Linux系统开发,嵌入式Linux驱动开发;

⑤大型项目实践:每期安排各类型真实的项目,详细可以找我要资料。

北大青鸟中博软件学院嵌入式课堂实拍

你可以考察对比一下南京课工场、北大青鸟、中博软件学院等开设有嵌入式开发专业的学校。记得找我要全套嵌入式开发视频课,祝学有所成!望采纳!

第3个回答  2011-04-07
嵌入式Linux操作系统学习规划
ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:
(1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9)
(2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定)
(3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。
从事嵌入式软件开发的好处是:
(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。
(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。
(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。
(4)兴趣所在,这是最主要的。
从事嵌入式软件开发的缺点是:
(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。
(2)这方面的企业数量要远少于企业计算类企业。
(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。
(4)平台依托强,换平台比较辛苦。
兴趣的由来:
1、成功观念不同,不虚度此生,就是我的成功。
2、喜欢思考,挑战逻辑思维。
3、喜欢C
C是一种能发挥思维极限的语言。关于C的精神的一些方面可以被概述成短句如下:
相信程序员。
不要阻止程序员做那些需要去做的。
保持语言短小精干。
一种方法做一个操作。
使得它运行的够快,尽管它并不能保证将是可移植的。
4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。
5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。
方法步骤:
1、基础知识:
目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。
科目:数字电路、计算机组成原理、嵌入式微处理器结构。
汇编语言、C/C++、编译原理、离散数学。
数据结构和算法、操作系统、软件工程、网络、数据库。
方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。
主攻书籍:the c++ programming language(一直没时间读)、数据结构-C2。

2、学习linux:
目的:深入掌握linux系统。
方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.11版,适合学习。最后深入代码。
主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。
3、学习嵌入式linux:
目的:掌握嵌入式处理器其及系统。
方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。
(2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。
(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。
主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。

4、深入学习:
A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。
B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。

2010-8-21 16:46 回复
122.90.173.* 2楼

C、网络与信息安全技术:如加密技术,数字证书CA等。
D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。
说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。
注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。
不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要做的!
技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。

嵌入式书籍推荐
Linux基础
1、《Linux与Unix Shell 编程指南》
C语言基础
1、《C Primer Plus,5th Edition》【美】Stephen Prata着
2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
4、《嵌入式Linux应用程序开发详解》
Linux内核
1、《深入理解Linux内核》(第三版)
2、《Linux内核源代码情景分析》毛德操 胡希明著
研发方向
1、《UNIX Network Programming》(UNP)
2、《TCP/IP详解》
3、《Linux内核编程》
4、《Linux设备驱动开发》(LDD)
5、《Linux高级程序设计》 杨宗德著
硬件基础
1、《ARM体系结构与编程》杜春雷着
2、S3C2410 Datasheet
英语基础
1、《计算机与通信专业英语》
系统教程
1、《嵌入式系统――体系结构、编程与设计》
2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着
3、《Building Embedded Linux Systems》
4、《嵌入式ARM系统原理与实例开发》 杨宗德著
理论基础
1、《算法导论》
2、《数据结构(C语言版)》
3、《计算机组织与体系结构?性能分析》
4、《深入理解计算机系统》【美】Randal E. Bryant David O''Hallaron着
5、《操作系统:精髓与设计原理》
6、《编译原理》
7、《数据通信与计算机网络》
8、《数据压缩原理与应用》

C语言书籍推荐
1. The C programming language 《C程序设计语言》
2. Pointers on C 《C和指针》
3. C traps and pitfalls 《C陷阱与缺陷》
4. Expert C Lanuage 《专家C编程》
5. Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs
《编程精粹--Microsoft 编写优质无错C程序秘诀》
6. Programming Embedded Systems in C and C++ 《嵌入式系统编程》
7.《C语言嵌入式系统编程修炼》
8.《高质量C++/C编程指南》林锐
尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。

这里很多书其实是推荐而已,不必太在意,关键还是基础,才是重中之重!!!
相似回答