嵌入式入门基础知识,手把手教你学习嵌入式
关于【嵌入式入门基础知识】,今天向乾小编给您分享一下,如果对您有所帮助别忘了关注本站哦。
1、嵌入式入门基础知识:「干货」老司机开车|手把手教你学习嵌入式
嵌入式linux上层应用,包括QT的GUI开发
嵌入式linux系统开发
嵌入式linux驱动开发
嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等。
可以尝试的路线
路线一:C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。
路线二:操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
路线三:Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
路线四:了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
路线五:系统移植的时候,就需要你从最下层的。
bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
路线六:驱动开发。
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!
嵌入式的四个分支
1、微控制器(单片机为例);
2、微处理器(arm为例);
3、dsp(数字信号处理);
4、soc(片上系统);
对于我们初学者而言,首先要学习单片机,以51为代表,等你学好51之后,可以深入学习更艰难的东西;
当然,并不是说你只需要学习单片机;要想学好单片机,你还得学c语言,得学汇编,得学一大堆应用软件;等到单片机能够掌握的不错的时候又需要自己进行原理图、PCB板的设计;还得掌握系统设计的工程管理等等。
ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:
(1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)。
(2)必须掌握一个嵌入式操作系统(初步定为uclinux或linux,版本待定)。
(3)必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。
从事嵌入式软件开发的好处是:
(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切 入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。
(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。
(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般 都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。
(4)兴趣所在,这是最主要的。
从事嵌入式软件开发的缺点是:
(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。
(2)这方面的企业数量要远少于企业计算类企业。
(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。
(4)平台依托强,换平台比较辛苦。
兴趣的由来:
1、成功观念不同,不虚度此生,就是我的成功。
2、喜欢思考,挑战逻辑思维。
3、喜欢C语言
4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。
5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。
方法步骤:
1、基础知识:
目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。
科目:数字电路、计算机组成原理、嵌入式微处理器结构。汇编语言、C/C++、编译原理、离散数学。数据结构和算法、操作系统、软件工程、网络、数据库。
方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。
2、学习linux:
目的:深入掌握linux系统。
方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深, 那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.11版,适合学习。最后深入代码。
主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。
3、学习嵌入式linux:
目的:掌握嵌入式处理器其及系统.
方法:
(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。
(2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。
(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。
主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。
参考网站:嵌入式Linux中文站:http://embeddedlinux.org.cn
4、深入学习:
A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。
B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDM A等。
C、网络与信息安全技术:如加密技术,数字证书CA等。
D、DSP技术:DigitalSignalProcess,DSP处理器通过硬件实现数字信号处理算法。
说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。
注意:要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。
不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要做的!
技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。
嵌入式书籍推荐:
Linux基础
1、《Linux与UnixShell编程指南》
C语言基础
1、《CPrimerPlus,5thEdition》【美】StephenPrata着
2、《TheCProgrammingLanguage,2ndEdition》【美】BrianW.KernighanDav
idM.Rithie(K&R)着
3、《AdvancedProgrammingintheUNIXEnvironment,2ndEdition》(APUE)
4、《嵌入式Linux应用程序开发详解》
Linux内核
1、《深入理解Linux内核》(第三版)
2、《Linux内核源代码情景分析》毛德操胡希明著
研发方向
1、《UNIXNetworkProgramming》(UNP)
2、《TCP/IP详解》
3、《Linux内核编程》
4、《Linux设备驱动开发》(LDD)
5、《Linux高级程序设计》杨宗德著
硬件基础
1、《ARM体系结构与编程》杜春雷着
2、S3C2410Datasheet
英语基础
1、《计算机与通信专业英语》
系统教程
1、《嵌入式系统――体系结构、编程与设计》
2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操胡希明 著
3、《BuildingEmbeddedLinuxSystems》
4、《嵌入式ARM系统原理与实例开发》杨宗德著
理论基础
1、《算法导论》
2、《数据结构(C语言版)》
3、《计算机组织与体系结构性能分析》
4、《深入理解计算机系统》【美】RandalE.Bryant DavidO''Hallaron着
5、《操作系统:精髓与设计原理》
6、《编译原理》
7、《数据通信与计算机网络》
8、《数据压缩原理与应用》
C语言书籍推荐
1.TheCprogramminglanguage《C程序设计语言》
2.PointersonC《C和指针》
3.Ctrapsandpitfalls《C陷阱与缺陷》
4.ExpertCLanuage《专家C编程》
5.WritingCleanCode-----MicrosoftTechiniquesforDevelopingBug-freeCPrograms《编程精粹--Microsoft编写优质无错C程序秘诀》
6.ProgrammingEmbeddedSystemsinCandC++《嵌入式系统编程》
7.《C语言嵌入式系统编程**》
8.《高质量C++/C编程指南》林锐
说在最后
尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。 这里很多书其实是推荐而已,不必太在意,关键还是基础,才是重中之重!
2、嵌入式入门基础知识,分享一些可以快速入门的嵌入式教程
一、前言大家好,我是ZhengN。
本次来给大家分享一些可以快速入门的教程。
本次就是针对初学者写的一篇推文。主要分享一些可以快速入门的教程,学习一个新东西可以说有捷径,也可以说没有捷径。学习的捷径就是你找到了一些针对初学者非常友好的教程,你就能很快很轻松地入门。同样,学习也是没有捷径的,网上的好资料一堆,如果不肯花一些时间投入进去学习,那也没什么用。
废话不多说,下面就分享一些对初学者比较友好的资料,当然都是与嵌入式相关的:
二、C语言入门1、《啊哈C语言》如果你觉得你的C语言很难,看其它书看不懂,那优先选择这个,看这个可以攒一点信心。小学生都能读懂的C语言书籍~
2、菜鸟教程菜鸟教程大家应该都知道,不仅是C语言教程,上面的其它教程都很容易学懂。
3、C语言中文网首先说一下,这个网站上一些教程的一些章节是付费的。
这个对我的帮助挺大,虽然在大学里学了不少,但到大三的时候C语言基础还是比较差的,到公司里实习,公司里很多代码用了函数指针,当时看不懂~当时我导师推荐我去看这个,我看着那上面的好几篇教程,觉得很适合当时的我,读完收获很大。于是我就充钱阅读了。
特别说明一些,我这不是在给它打广告。只是自发地分享,毕竟之前也在上面学过一些东西,也有不少收获。
4、《C Primer Plus》这个就是C语言地经典书籍了,书虽然非常厚,但里面的内容也容易学。但还是建议把它作为工具书使用,偶尔翻翻也还行。
三、单片机入门首先,学单片机需要配开发板,需要搭配开发板来学。
1、51单片机(1)郭天祥老师的:《新概念51单片机C语言教程》。我当时是买了郭老师的开发板看着其配套书籍及视频入门的。这本书很厚,不仅仅包含51单片机C语言知识,还包含有一些专题教程,很nice。另外,这本书的前言可以细读几遍,以前上课的时候经常就去读这个前言,看着郭老师的经历看得热血沸腾,哈哈。
听说最近郭老师在B站有搞一些视频,感兴趣的也可以学围观学习:
(2)宋雪松老师的:《手把手教你学51单片机-C语言版》。这本书我以前是大概地过了一遍,觉得挺易懂地。书籍每一节先详细讲硬件、再一步一步教你写代码。要知道,书名中含有手把手字眼的,大多都是比较易懂的。
2、STM32单片机STM32资料可太多了。关于STM32的学习,之前也分享过一篇文章:学习STM32的一点经验分享,有需要的小伙伴可以看看,根据自己的需要进行选择:
(1)正点原子http://www.openedv.com/forum.php
正点原子的教程特点的关键词:手把手。
(2)野火https://www.firebbs.cn/forum.php
野火教程特点的关键词:零死角。
(3)安富莱https://www.firebbs.cn/forum.php
安富莱教程特点的关键词:授人以渔。
(4)百问网http://wiki.100ask.org/100ask_stm32f103
不久前刚推出的,看起来也比较好入门。
四、嵌入式Linux入门其实对于我们嵌入式来说,看一些嵌入式Linux相关的教程基本也都包含一些Linux基础的知识。以下教程各有各的特点,可以都了解一下:
1、百问网https://book.100ask.net/
我是看这个入门的,跟着教程走不迷路。部分学习笔记见:
基于设备树的LED实例分析
基于总线设备驱动模型的LED驱动实践
Pinctrl子系统与GPIO子系统初探(附实例)
pc机_开发板_ubuntu互ping实验
Linux下应用开发基础知识大总结
Linux总线设备驱动模型
Linux驱动基础篇:LED驱动
Linux驱动基础篇:hello驱动
2、野火3、正点原子https://doc.embedfire.com/linux/imx6/base/zh/latest/index.html
4、讯为http://www.openedv.com/docs/boards/arm-linux/zdyz-i.mx6ull.html
五、数据结构与算法入门http://topeetboard.com/download/download.html
在嵌入式这一行来说,不同工种对于数据结构与算法的要求程度不同。有些岗位可能很少会用到,但也是有必要学习一下(注重学习:链表、栈、队列)。对于我们阅读一些源码,特别是操作系统源码有帮助。
我以前看的是C语言中文网的:
六、socket编程入门http://c.biancheng.net/data_structure/
我以前看的是C语言中文网的:
http://c.biancheng.net/socket/
Socket相关笔记:
TCP、UDP通信总结
「socket应用」基于C语言的TCP天气客户端的实现
七、C 入门很多小伙伴有疑问:嵌入式C 用得多吗?还是得看工种,做单片机方面,自然是用C用得比较多。但是到了嵌入式Linux上,C 就用得多了,有些算法相关进程就是用C 写的。前一段时间我与算法的同事对接通信,这时候就我就得去读他们的代码,然后进行对接,还好之前有看过点C 。所以,也是很有必要学点C 基础的。
C 我之前看的是:
- C语言中文网
- 菜鸟教程
哈哈,怎么哪都有C语言中文网。这个网站确实给我带来很大帮助,况且我充过钱,当然要多学点才对得起自己充的钱。一码归一码,上面的教程确实不错。
八、QT入门以前在学校蜻蜓点水式地学了一下,看的是QT开源社区的教程:
https://www.qter.org/forum.php?mod=viewthread&tid=193
每个知识点都会有对应的练习,跟着教程一步一步来很容易入门。
QT相关笔记:
手把手教你编写你的第一个上位机
九、C#入门上次分享了手把手教你编写你的第一个上位机。有小伙伴就问为什么不用C#。其实,根据自己的需要,用什么就学什么就可以。我学QT是因为后面方便运用到嵌入式Linux上。
我大学的面向对象语言学的是C#,只不过当时对这个不感兴趣,学得不咋地。但当时为了做期末课程设计,看了一本叫《叩响C#之门》的书,觉得挺不错的,这里推荐给大家。书中一步一步教你开发一个记事本,很容易就上手了。
十、Python入门我毕业那年,感觉不少人都在学Python,我也跟风学了学。
我当时看的是:
1、《编程小白的第一本python入门书》这是个电子书,页数不多,很快就可以看完。
2、菜鸟教程3、廖雪峰老师的教程:https://www.runoob.com/python3/python3-tutorial.html
十一、Git入门https://www.imooc.com/learn/177
强烈推荐廖雪峰老师的Git教程:
https://www.liaoxuefeng.com/wiki/896043488029600
Git相关笔记:
嵌入式必备之Git的使用
以上就是本次分享的一些比较不错的入门教程,但也仅仅是入门教程,能帮助我们快速地入个门,想要熟练地运用某一块知识,还需要结合其它更多地资料进行学习。
码字不易,如果文章对你有帮助,麻烦帮忙转发,谢谢!
大家手头有哪些比较不错的资料吗?可以共享出来让大家一起学习学习,共同进步!
更多嵌入式资料可以看这个资料汇总贴:
猜你喜欢:https://gitee.com/zhengnianli/EmbedSummary
学习STM32的一点经验分享
手把手教你在STM32上使用nanopb
基于framebuffer的LittlevGL的移植使用
本文关键词:嵌入式入门基础知识大全,嵌入式基本知识必备,嵌入式 教程,嵌入式入门基础知识有哪些,嵌入式的基础知识。这就是关于《嵌入式入门基础知识,手把手教你学习嵌入式》的所有内容,希望对您能有所帮助!更多的知识请继续关注《犇涌向乾》百科知识网站:http://www.029ztxx.com!
版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。