文章字数:1500 干货指数:⭐⭐⭐⭐⭐
接触过程中,我们发现有很多的小伙伴的职业路径都是从单片机不断进阶到嵌入式开发,从而获得职位及薪酬的提高。 在这个过程中,难免会有很多疑问,比如:“STM32掌握到什么程度,才可以去学Linux?”A
观点一
原则上你可以不学32直接上Linux,因为这本身就没有什么必然的联系。学习STM32原则上只是用库函数操作传感器获取数据,然后处理显示的一个过程,所谓的熟是建立在自己理解的基础上,我看很多上来就说做过什么,现场让写一个两个串口收发的demo都不会(可以试试,自己发出去,对端接收再转发回来,就这么简单)。嵌入式比较难学习的主要原因是不像Java什么的,有那么多现成的资料教程,而且环境也很好实现,但是嵌入式需要太对硬件的知识,环境的搭建,后边还涉及很多汇编知识,内核知识,对C语言也是提出了新的要求,网络通信,多线程编程,USB协议栈等……A
观点二
你提问的问题其实很有代表性。你现在可能其实还不明白单片机mcu, soc 传感器,等等电子设备的具体含义。 1、什么是单片机?要了解到什么级别? 首先要去搞明白,单片机自打上电一瞬间第一条指令运行到main的具体过程。具体指令做了什么,网上有开源代码,自己去结合datasheet看。 2、rtos 是啥?Linux是啥?Windows是啥? 彻底去把第一个问题搞明白,那么第二个问题便势如破竹。1、你可能只是裸体跑程序,简称裸跑,也就是一个while 配合中断来进行cpu的利用,但是等cpu性能过程或者工程巨大(需要十几个任务一起调度)的情况下,你就需要rtos,rtos 你可以理解为rots=裸机程序+调度器+内存管理;说白了还是个裸机程序,就是功能强大了点。如果rtos明白了,比如freertos,ucosii,rtt等典型的rtos源码都看明白了。 那linux的理解就好多了。你可以认为 linux 就是等于rtos+高级内存管理+高级的任务调度+全世界的程序员在维护优化(填坑)。至于windos就是图形库做的好点。用习惯罢了。A
观点三
如果你对硬件不是很感谢兴趣的话,直接学Linux即可,stm32和Linux 两者基本没啥关系,至于什么看硬件原理图,芯片的datasheet的话 ,不用学stm32 ,也可以看懂。
不过Linux入门有一定的门槛,不像单片机开发有现成的IDE,嵌入式Linux需要自己搭建环境,并且每一种工具(makefile shell kconfig cmake)都可以成为一门学科,我觉得想要学好Linux 最重要的一点就是坚持,等过了那道门槛就会发现Linux也是挺简单的嘛。
A
观点四
先学学微机原理吧,无论是stm32还是其他的mcu,最终还是会落到各种寄存器。无论是stm32驱动还是Linux驱动最终都是对各种地址里写值,微机原理就是讲这些的。 裸机开发和Linux驱动开发基本都差不多,只不过在Linux你需要按照特定格式写驱动,再就是处理一下并发。C语言很重要,无论用什么mcu还是用什么操作系统,做驱动开发就是考验你的C语言功底,C语言的精华都在指针,免责声明:本文内容来源于网络,版权归原作者所有。如涉及作品版权问题,请联系删除。
-END-
1
《CSDN大牛分享嵌入式 Linux 学习计划,选好路才能走得远!》
2
《C语言在嵌入式系统编程时一定要注意的那些事—【性能优化篇】》
3
《C语言在嵌入式系统编程时一定要注意的那些事—【键盘操作篇】》
01
02
03
04
05
滑动查看更多
每天辛勤发电的小创,
【分享、赞、在看】可不可拥有一个鸭