学习嵌入式开发的过程难吗?
%❇学习嵌入式开发的过程难吗?
如果你从来没接触过,学习的过程还是挺难的,但是如果你有软件和硬件基础,再加上毅力和恒心,也能够由入门到精通的。下面根据我自己的一些经验给你一个学习的路线和方法:
1.狠抓基础
首先拿出大学里的C语言、数据结构、计算机基础、高等数学、数字模拟技术和数字电子技术 这些书来学习软件基础和硬件基础。
看到这些书有没似曾相识的感觉,仿佛回到大学时代!
C语言:
这个不用说了,软件入门的开始,把每课代码例子手动敲一遍,不是为了敲代码而敲代码,而是熟悉编程方法和编程思想。
数据结构:
数据结构一定要学好,这个关系以后你的代码 是“土鳖”编写的还是"土豪"编写的;
这个关系到以后你的代码 大小是10k还是100k,还关系到你能否往更高领域公司百度阿里物联网云计算、自动驾驶、智能机器人方向发展。
高等代数:
高等数学主要是学习逻辑思维能力,对你以后编程逻辑以后Bug的查找解决关系很大。
模拟电子技术基础和数字电子技术基础:
这个是学习模拟电路和数字电路的基础,这个是设计电路的基础。对你后面开发电子产品起着很重要的作用。
2.勤于实践
有了上面的基础之后,我们可以开始边实践边学习了:
2.1 初级篇
首先从单片机开始比如51单片机或AVR单片机、或STM32单片机开始,我个人对STM32单片机还是情有独钟的。可以上淘宝买一套STM32单片机开发板,选择那种案例和项目比较多的套餐。然后按照开发板的实验开发指南完成每一个例子,基础上就可以入门了。除此之外,还要在网上多找一些项目来做,比如循迹小车项目、温湿度无线监控项目、四轴飞行器项目,先从模仿开始。
2.2 中级篇
开始学习嵌入式操作系统。从比较流行和商业用比较多的μC/OS-II和FreeRTOS开始学起,熟悉嵌入式操作系统的基本概念原理、嵌入式系统移植和裁剪、嵌入式图形界面编程。
2.3 高级篇
学习更高级别Linux操作系统,熟悉Linux shell命令、Linux应用编程和Linux驱动开发,有条件可以在搞一套Android开发板学习Linux底层的驱动开发。自己也可以在网上找找需求订单,自己设计电路和开发产品。
2.4 高高级篇
本人才疏学浅,自己也在学习研究和探索中,欢迎大牛来指点。
总结
只要有兴趣和恒心,勤于练习和实践,随时调整方法和思维,我们都是可以实现自己的目标的!
↦☻学习嵌入式开发的过程难吗?
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。
而嵌入式设计是企业电子产品设计的重要组成,目前国内外中小型企业内部都建立了自己的嵌入式开发团队。团队所需的人员职位构成包括:
(1)系统设计工程师
(2)硬件工程师
(3)底层驱动工程师
(4)Linux系统工程师
(5)应用设计工程师
……
在市场和用户的追捧热潮下,各种嵌入式解决方案和新产品层出不穷,功能和性能也在不断提升。
比如在智能穿戴式医疗领域,MC-6800型动态血压监测仪,仅需将充放气的袖带绑在用户手臂上,就能在各种状况下进行24 h无创性动态血压监测。美国Medtronic公司推出的血糖实时连续监测系统可以连续工作3d,仅需将检测探头贴在患者腹部,每10s会对皮下间质液里的葡萄糖浓度进行测量,并将获得的数据通过无线方式传送到接收器上。
美国SPO Medical公司推出的PulseOx 6000型“血氧手指套”能长时间工作500 h,仅需套在手指上即可实时监测用户的血氧饱和度和心率,可靠性堪比体温计或血压计。
这些产品都体现了区别于常规电子仪器的显著特征:
①非介入地检测生理信号
②通过无线或有线的方式连接用户、医护人员和数据系统
③续航时间长
④安全可靠
那么,到底该如何学习嵌入式?
嵌入式学习知识框架
网友一
根据我的了解,选择学习嵌入式linux,刚好我们学校也重视嵌入式linux,从实验室到课程安排都是关于嵌入式linux方面,天时地利!这里我把学习linux的经验和教训说说。
可以这样说,在论坛里说道学习linux差不多就学习linux内核。于是我电脑里安装了linux就开始看linux内核方面的书了。我记得来学校以 前就买到一本陈莉君的讲linux内核的第一版,现在有第二版了。我就开始看那本说,大家说linux内核情景分析不错,我就买了上下册,后来又买了 《深入理解linux内核》,最后是linux内核代码的,主要讲arm相关的。
看内核期间是个 非常痛苦的过程,看情景分析有种在森林中找出路,其间我组织了一些同学学习内核,几乎没有几个能坚持下来的。我认为我是坚持下来了。
情景分析在看第一、第 二遍是几乎没有摸到门道,我分析有三个方面的原因:
1、自己的基础差,这是最关键的。
2、内核本身很难。
3、没有交流和高人指点。到了第三遍时我才摸到 门,才差不多知道个linux的大概脉络,很多细节也是稀里糊涂。
学习linux总结,这里声明一下,我指的嵌入式主要是偏向软件的嵌入式。学习嵌入式的重点和难点关键在操作系统,如果没有掌握操作系统,我认为很难把握一个嵌入式系统。即使在做嵌入式开发中,作应有层的开发几乎可以不知道操作系统也可以开发,我认为那是浮在表面的。很难深入和提高自己的层次。
声明:一孔之见!不可深究!在学习linux内核过程中犯了一个极其严重路线错误:对linux几乎不懂就开始学习内核。
网友二
学习嵌入式系统,首先应该明确什么是嵌入式系统,否则费力去学,却不知所学为何物,岂不惘然?嵌入式系统的定义很多,这也是困扰嵌入式系统学习的一个因素。笔者根据自己开发和教学过程中的理解,以及对各种嵌入式系统的应用进行总结,提出了嵌入式系统的简单定义:嵌入式系统是嵌入式计算机系统的简称,这个定义突出嵌入式计算机系统和普通计算机系统的共性。
网友三
很多牛人都是从小就接触电子、计算机、玩起了编程了。以前也时常感慨我跟别人比起来已经输在起跑线上了,不过这已经是无法改变的事实了。我们能做的是,比别人多一点努力。
可能你已经很努力了,可总有人比你更努力。除此之外,你的学习方法有问题吗?你做事的时候够专注吗?你基础知识扎实吗?智商就不用比了,搞我们这行的,智商水平基本上相差不大哪去。前段时间知乎不也在讨论“以大多数人的努力程度之低,根本轮不到拼天赋”这么一句话吗?还是挺在理的。
每当你再犹豫一段时间,你就又输给了一大批人,这个会是恶性循环。为啥不趁现在就开始踏踏实实着手于你想做的事?任何时候开始都不会太迟。
网友四
单纯的所谓的嵌入式其实只要动动手就能知道流程的,外面的所谓的嵌入式培训也就是做这个事情的,更重要的是其中的原理和基础知识。嵌入式从本质上讲是计算机,所以学好计算机的软硬件对嵌入式是很有帮助的。
苹果常常提的后pc时代,炒的很火物联网,都是嵌入式技术的应用,可以说嵌入式很是很有前途的,而且在将来,关于pc还是嵌入式设备的区分将会慢慢淡化,window 8不是支持arm了吗,嵌入式的概念会慢慢模糊,但是其本质是不变的。所以在学校的时候注重基础,弄懂基本原理,再自己动手实践下,做一些小项目,参加一些电子大赛,对以后工作是很有帮助的。
我现在工作做的事情,和我在学校自己玩arm开发板做的事情,差不多。多亏了有学校学习嵌入式的经验,现在工作起来很顺手。
Ⓦ¿学习嵌入式开发的过程难吗?
刚开始是比较难的,但是一旦摸到门路后,就会学得很开心、进步很快。一般来说,学习嵌入式一般是以下过程:数模电-->51单片机-->STM32单片机-->QT/RTOS-->Linux。每一个阶段都有难的,但都是前一个阶段积累来的,慢慢来的话,也不会太难,坚持并相信自己就好,有需要就学,热爱就学!加油吧!
▌p学习嵌入式开发的过程难吗?
嵌入式主要是指嵌入式软件,即“嵌入”到硬件中的软件,这类软件的特点是,在硬件上电后自动运行,而且没有软件界面。在开发阶段,一般使用串口或者网口打印调试信息到计算机终端,用户通过命令行与软件进行“交互”。
嵌入式所使用的操作系统主要有linux、vxworks,使用的处理器主要有powerpc、ARM等。
学习嵌入式最大的难点是,开发人员不仅需要掌握编程能力,对硬件特性也需要很多的了解。
软件方面需要掌握的知识点我就不说了,相信这是一名软件工程师应该具备的必备素质。这里重点说说硬件方面需要掌握的技能:
了解常见外设作用,如CPU、DDR、SDRAM、FLASH、串口、网口等;了解常见总线或通信协议概念,如数据总线、地址总线、CAN总线、I2C总线、SPI总线等;理解基于寄存器编程概念,也就是硬件驱动程序实现原理。无论什么硬件,不管函数接口如何封装,其内部一定是对硬件各个寄存器的操作;嵌入式编程由于受限于硬件资源的大小,所以在内存使用上并不像桌面软件那么灵活。比如,在windows下编程,函数中的数组变量可以分配很大的内存,这是因为其栈空间默认很大。但是在嵌入式环境中,最好把这些内存大的变量定义到外部存储硬件中,如SDRAM或DDR,这是因为嵌入式处理器的片内RAM都很小!
▓✞学习嵌入式开发的过程难吗?
从我自身的经历来看,学习嵌入式入门容易,但是精通比较难,主要的难点在如下几点:
1)芯片层面。芯片的硬件资源,gpio、时钟、复位等,搞清楚还是挺容易的,但是芯片内部的架构、各ip的选择、性能指标的确定,这些不是短时间内能掌握的,需要长时间的打磨才有可能。成本、功耗、性能如何做到均衡,对于一个好的嵌入式芯片来说至关重要,而这需要对芯片设计和产品应用均有长时间的理解才行。总的来说,嵌入式芯片的使用入门容易,但是好的芯片设计较难。
2)硬件层面。嵌入式系统的硬件设计一般都易入门,它的难点在于如何设计一个可靠的电路,如何控制成本功耗。不同水平的硬件工程师设计出来的电路差别很大的。
3)软件层面。编写一段嵌入式代码容易,但是如何用有限的资源完成高性能的任务,这个是难点。毕竟嵌入式系统可用的资源都是有限的,flash、RAM的大小受限,主频受限,等等。习惯了PC编程的,肯定无法理解嵌入式软件设计中的斤斤计较。
------------------
推荐阅读:
有人说“在你穷时,真的能看清许多人”,你认同这句话吗?为什么?
人们使用视频平台经常停不下来,刷小视频会上瘾吗?对此你怎么看?
下一篇: 担任过国家副总理的开国将帅有哪些?