今天分享一个知乎里一个嵌入式相关热门问题:学stm32需要学会哪些才建议去学linux?
一个很不错的回答:
“
作者:snowdream
链接:https://www.zhihu.com/question/357775329/answer/2338874463
”
作为一枚嵌入式软件开发的老程序员,答主也是经历过STM32开发向Soc+Linux开发的技术栈转变过程。
总的来说, 具备stm32嵌入式开发技能对于掌握Soc+Linux的嵌入式开发有一定的促进作用 ,但是如果题主志在走向Linux应用开发道路, 那么stm32的开发技能并不一定非要全部掌握 。
根据答主个人的技能栈转变的经历, 以下技能通常是stm32和Linux嵌入式应用开发所共有的,换句话说是可以复用的技能 。
1.C编码能力
做嵌入式开发,目前主流的编码语言依然是C语言。stm32如此,Linux也是一样。唯一不同的是,Linux的嵌入式开发中,会经常涉及到一些Linux库函数API,比如socket,比如锁等。
这些等到用到的时候拿来用就可以。所以,如果stm32开发项目足够多,一般来说C的编程技能是可以直接继承的。
2.功能模块和算法设计能力
做应用开发,关键在于理解需求,并根据需求设计合适的功能单元(为其他模块提供API接口)或者设计合适的控制逻辑算法。而这种领悟需求,设计模块和算法的能力也是可以通过在stm32项目中得到历练,并且可以为Linux应用开发提供基础的。
3.多线程和互斥保护思维
如果说Linux应用开发与stm32最大的区别在哪里?
那么多线程和互斥保护的思维会是首选。在Linux的开发世界里,离不开线程和进程,离不开对共享资源的互斥保护。但是stm32的开发中,如果没有涉及到RTOS的话,是需要学习一下RTOS的多任务思维的。
多任务与多线程有着很相似的逻辑,所以有了RTOS多任务思维的话,对于学习掌握Linux多线程多进程和互斥保护,可以起到极大的促进作用。
4.常用协议栈的基础能力
stm32这款mcu可以说外设及内部库支持力度已经非常强大,对于学习部分通信协议栈来说是非常有帮助的。**可能有的朋友说,我不做Linux驱动,没有必要学习什么UART,IIC,SPI,DMA,TCP/IP,RapidIO等硬件通信协议。这种想法是不对的** 。
有此类的协议栈基础,总会在未来应用开发上用得上。
答主在Linux的很多应用开发中,曾经涉及到与其他嵌入式系统通信的功能单元开发和自有通信协议的设计,举个例子,如果不理解UART协议,你也没有办法去设计你的协议文本。如果不理解RapidIO协议,你怎么和其他单板的CPU通信,虽然驱动的同事会帮你做好驱动,但是上层的逻辑或者出现问题定位,懂些协议栈总会能帮到你。
所以,总结来说,不一定非要把stm32弄得精通再去学习嵌入式Linux开发。如果有了上述四点的stm32积累,就可以考虑向嵌入式Linux应用开发进行尝试。
以上就是学STM32需要学会哪些才建议去学Linux?的详细内容,更多请关注慧达安全导航其它相关文章!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 学STM32需要学会哪些才建议去学Linux?
发表评论 取消回复