涛哥,你的嵌入式教程针对哪款开发板鸭吗?

最近有同学问我:涛哥,你的嵌入式教程是做哪种开发banya的?我应该用哪个开发板来学习?我的回答往往是:我暂时不需要开发板。要学习嵌入式,您不必使用开发板。你可以在qemu仿真平台上学习。三年前,我在网上发布了第一套视频教程,《使用QEMU搭建嵌入式U-boot+Linux+NFS学习环境》(部分现在B站免费分享)。三年来积累了大量的学生,在收到很多积极的反馈和建议后,也吸引了同行基于QEMU开发教程,这也证明了目前的学习思路是好的。为什么不急着选开发板,改用QEMU呢?这得从我的嵌入式学习经历说起。

我玩过多少开发板?

我从51单片机开始学习嵌入式。课程结束后,我买了一块51开发板。我刚买了它,它是一个新鲜的。它有一个选框、一个数码管、一个液晶屏和一个蜂鸣器。 、LED屏、串口、I2C……都玩了一遍。那就没有了,就扔一边收灰吧,只是偶尔作为程序员使用。因为当时有一个学习单片机的仿真软件叫proteus,可以直接在上面设计电路和写程序,仿真效果和实际开发板一样,不需要插在电脑上的各种线。仿真库中的各种外围设备,模块应有尽有,使用起来非常方便。

图片[1]-涛哥,你的嵌入式教程针对哪款开发板鸭吗?-老王博客

当时觉得单片机的USB下载调试接口很神秘有趣。想研究一下,又买了一个51单片机USB学习板。记得开发板是成都的一个电子工程师做的。一个很小的开发板加上配套的USB教程和源码,学到了很多知识,知道什么是USB,什么是HID,什么是复合设备,如何模拟鼠标和键盘。这是我买的第二块开发板。

后来,我用面包板焊接了另一块,并焊接了一个额外的多通道电源适配器。可能是整流电路中的滤波电容类型选择不正确,电容炸了,导致其中一个9V电路的电源不能用,但是可以算是理解硬件设计的一个门槛。

当时ARM9刚刚流行,当时算是高端。学校实验室的开发板是基于ARM7的,不能运行Linux,但可以运行uC/OS。第一次接触操作系统,我跑了多任务程序,模仿它写了一个demo。感觉很梦幻,感觉找到了自己的兴趣和方向。

读完研究生,我选择了嵌入式方向。在实验室里,所有的开发板都是用自己开发的处理器做的。 ARM720T内核,虽然是ARM7,但是有MMU,可以运行Linux吧?极好的?我从这个开发板开始使用 Linux。

图片[2]-涛哥,你的嵌入式教程针对哪款开发板鸭吗?-老王博客

后来网上有个STM32开源项目,很有意思。我咬紧牙关又开始了,在上面移植了uC/OS,做了一本电子书,听着音乐硬件开发转嵌入式开发难吗,很有趣

后来买了个ARM9开发板,NorFlash坏了,烧写程序一直不成功。折腾了一个多月,我把它拿回了厂家,换上了NorFlash芯片。之后,我开始在各大 BBS 论坛上闲逛。尝试将其他开发板上好玩的东西移植到自己的开发板上,并热情地与网友分享交流……

由于项目和科研的需要,我实验室也玩过自己开发的处理器,各种开发板。基于自己国产内核的开发板…

工作后进入一家芯片公司,做平板和电视盒子的SOC芯片,从事Android/Linux下的驱动开发,当然会接触到各种开发板,不同的处理器型号,不同版本,Nano板,发现自己对开发板都麻木了……

每天的工作都是为了解决不同开发板不同处理器上的bug,不断搭建环境,下载代码,编译代码,升级系统。我接触过不少于20个开发板和客户平台……

图片[3]-涛哥,你的嵌入式教程针对哪款开发板鸭吗?-老王博客

期间也接触了很多国外的开源开发板,比如panda board、beagle等,供参考。

后来换了平台,做了手机芯片平台的驱动开发。每天都接触到不同厂家的手机开发板和不同处理器的开发板。估计有20多个。

图片[4]-涛哥,你的嵌入式教程针对哪款开发板鸭吗?-老王博客

带翅膀的手机,是不是很幸福?它不会飞,它是一个调试接口,用于调试。相比于开发板的调试,手机的调试就比较麻烦了。编译Android镜像,刷USB升级,重启,重现,抓日志,分析日志,耗时20分钟。…期间,我还参与了芯片测试和Android系统移植的工作。在对环境要求比较高的FPGA开发板上,需要先运行CPU软核镜像,然后再运行Android。各种时序问题使调试更加费力和困难。

有了期间的工资收入,腰包不再害羞了,买买买开发板的路就打开了,树莓派、cubieboard、智能硬件……

你是否陷入了开发板陷阱?

这么多开发板,我是不是嵌入式高手了?

不!可能我对某些模块或者业务非常精通,相反,我觉得自己有“开发板厌食症”,不想天天看开发板。真正的高手早已离开开发板,而嵌入式产生真正价值的地方早已不在硬件上,而是在硬件上。每天接触这么多开发板,来回搭建环境,感觉自己同时爱上几十个人,没有时间和精力去了解每个人都深情,像花一样吃喝,交换名片,完成每一天的工作。 ,任务完成。了解一个人需要时间,深入了解一个人需要时间。开发板也是如此。如果你在做一个项目,这是可以理解的。你必须了解某个平台,了解它的每一个硬件特性,然后用软件来榨取它的最后一点性能。但是,从学习的角度来看,如果你不断地换平台,追最新最流行的,从四核到八核,你会发现你嵌入式学习的大部分时间都花在了熟悉硬件平台上。运行一个简单的演示并构建环境。如果运气好的话硬件开发转嵌入式开发难吗,可以很快完成。如果运气不好,还有各种兼容性和硬件问题。如果你手头没有调试工具,一个小问题就会把你摆在那里。一个月没脾气是正常的。如果你是一个没有专业硬件调试工具的学生,一味地追逐最新的硬件平台,我想你已经掉进了开发板的学习陷阱。人的时间和精力是有限的。我们厌倦了挖 100 口浅井。不如沉下心来,挖一口深井。路很简单。许多原则是相似的。不然你就一个接一个地买了地铁铲,铲子经销商带你挖了两次,学会了怎么用。然后他们开发了新的铁锹,并鼓励你购买新的铁锹和挖新井。

如何记录以后的课程?

在我个人看来,嵌入式学习可以分为三个时代。

早期的单片机和MCU都比较简单,软硬件通讯协议都可以自己制作。最理想的场景是躲在小黑屋里,光着膀子,自己做一套。走出小黑屋,在别人眼里会很厉害。

随着越来越多的IP模块集成在SOC上,一个人了解软件和硬件,甚至整个Linux和Android都是不现实的。嵌入式开发进入分工时代:软硬件分工,底层驱动和上层应用分离。这时候学习嵌入式软件开发的过程一般都是基于某块开发板,移植U-boot、内核,搭建好环境,然后一步步学习。

嵌入式、物联网、人工智能、云和大数据日益融合,构建不同的应用场景。这个时候用不同的开发板来学习已经过时了。市场需求和分工越来越细,越来越多的CPU和开发板涌入市场,并且不断更新。几百块CPU,几千块开发板,你打算把它们都买下来学习,就像旷课一样,不停地买铲子,不停地挖第100口浅井吗?

随着物联网和AIoT时代的到来,将会出现越来越多的平台和生态系统。未来的重点不是开发板本身,而是接口和互连。成熟的平台和解决方案趋于标准化,甚至构建大生态系统,新的业务需求会对嵌入式工程师的技能提出新的要求。

另一个趋势是 CPU 的开源。 CPU架构越来越多。从ARM、MIPS到RISC,平台差异和架构差异也导致硬件学习成本越来越高。

未来,嵌入式学习将进入后开发板时代。所学的技能要想不很快被淘汰,就必须适应开发板和CPU不断升级、迭代、细分的现实。在沧桑中,哪些技术稍纵即逝,哪些技术已经被使用?哪些是核心技术,哪些是跨平台技术?我们在学习嵌入式的时候也需要转变思维:你不是在学习开发板,你不是在学习基于开发板,而是学习某种技术需要开发板来做实验和验证。

这是我的视频教程录制思路:教你怎么打井,打井的方法和技巧,提炼之前的开发板经验,总结成核心技巧分享给大家,视频教程和技巧可以拿并适应不同的开发板和平台。它是一个跨开发板。只要手头有开发板,就可以看懂教程,在自己当前的环境下学习。与其不断换平台,一个个地卖新铲子给学生,一个个地挖浅井,增加学生的学习负担,关键是地摊大,干啥也学不来,而且他们陷入不断的挖掘。浅井循环。未来,嵌入式学习必须通过减法来完成,学习真正有用的东西,并且通常可以在不涉及特定项目的情况下从板外学习。

使用QEMU搭建嵌入式U-boot+Linux+NFS学习环境视频教程免费分享:

哔哔(゜-゜)つロ干杯~哔哩哔哩

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论