想走Linux要不要学stm32、freertos?

1.经常有同学问我这个问题,今天简单的阐述下博主的理解吧。先说结论,看具体情况。 2.在解释原因之前,先简单的介绍下二者。Linux是一个操作系统内核,配合各种其他的软件才成为完整的操作系统,是一个软件。stm32是CPU为ARM设计的Soc芯片 (st公司大部芯片都是简单的Cortex-M系列芯片),是一个硬件。 3.从上面的介绍可以看出来,二者完全不是一个东西,博主甚至很奇怪,到底从哪里传出来的,学Linux必须先学stm32。 4.在学习上面,二者是有一定的联系,但仅限于嵌入式Linux(也包括Linux驱动方向)。嵌入式Linux是Linux从业的一个分支。Linux从业方向非常非常多,比如嵌入式Linux、Linux内核开发、网络开发、驱动开发、应用开发、音视频开发、系统开发、运维等等。 5.如果大家想从事嵌入式Linux开发的话,博主建议先从stm32+freertos开始。因为Linux是一个复杂的软件系统,它运行的芯片也是一个复杂的芯片(相比较stm32)。 因此,从简单的东西入门,再去过度到复杂的知识,从学习的角度看,学习曲线更加平滑。 6.从stm32上面,我们可以知道一个芯片大概有哪些东西,这里面的很多知识可以更好的帮助我们理解A系列芯片(运行Linux),有些东西甚至完全和stm32一样。 freertos是一个简单的OS,学习它也可以帮助我们学习Linux。从这里看,学习嵌入式Linux是需要学习stm32、freertos的,但其他的方向真不一定了。 7.比如Linux网络开发,很多stm32芯片压根没有网卡这个硬件,学了stm32对学习Linux网络基本没有帮助,这种情况就不需要学习stm32。

全网最受欢迎的嵌入式面经

面经一共32篇文章,12w+字数,包含全部最新的面试必问考点,4.7w+同学学习,2800+订阅,非常适合在找工作面经薄弱的同学,3000+订阅还会涨价,提前订阅提前享受,持续更新中。

原帖链接:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoMc

全部评论

相关推荐

这几天在小看一下 Freertos ,了解了内存管理、任务调度、同步互斥、队列及信号量的一些小玩意,写一下小总结:在内存管理方面,Freertos 感觉就是比较灵活,有五种内存分配。每种策略都有不一样的适配场景,像 heap_1 适用于不需要内存释放的简单应用,能在资源受限的小型嵌入式设备中稳定运行;heap_5 则支持动态内存分配,可以管理多个不连续的内存块,对于内存需求复杂多变的系统就比较适用。​任务调度机制是 Freertos 实现多任务高效运行的关键。其中,时间片轮转调度模式按照固定的时间片长度,让处于同一优先级的多个任务轮流获得 CPU ,避免了某一任务长期占用资源的情况;而优先级抢占调度模式则相当于给高优先级任务开小门,当高优先级任务就绪时,能立即打断当前正在执行的低优先级任务,抢 CPU 资源,这种机制保障了系统对紧急事件的快速响应。​同步互斥机制中,就是信号量和互斥锁嘛。信号量本质上是一个具有计数功能的内核对象,它可以用来表示可用资源的数量,信号量还分为二进制和技术型信号量,当多个任务需要访问有限的共享资源时,信号量能有效控制任务的访问顺序和数量,防止资源竞争导致的错误。今天做了个小实验就是小车通行证的,我这里就不多说了,这个方法比较好理解。互斥锁是专门针对优先级反转问题设计,当低优先级任务有着高优先级任务所需要的资源时,互斥锁会将低优先级任务的优先级临时提升至与高优先级任务相同,等到资源释放后再恢复原优先级,这样就可以避免高优先级任务因为等待低优先级任务而被延误的情况,确保了系统的优先级秩序和实时性能。​队列是 Freertos 中任务间通信的东西。它采用先进先出(FIFO)的默认数据处理方式,同时也支持按消息优先级进行排序,满足了不同场景下的数据传递需求。队列可以传递各种类型的数据,不管是简单的整型变量、字符,还是复杂的结构体、指针,都能通过队列在任务间安全、可靠地传递。而且,队列具有异步通信的特点,发送任务和接收任务无需同步等待,发送任务将数据放入队列后即可继续执行其他操作,接收任务在需要时从队列中获取数据,这种特性可以提高了任务间协作的灵活性。​信号量在同步互斥中除了作为资源计数器,还能用于任务间的同步。比如说,在中断服务程序中,当某个事件发生后,可通过释放信号量的方式通知等待该事件的任务,任务在获取到信号量后就知道事件已发生,从而执行相应的处理操作(这里举例就是占厕所,a上厕所,b就上不了,a上完释放信号量厕所可以上了,b去上),实现了中断与任务、任务与任务之间的有效同步。​
点赞 评论 收藏
分享
评论
3
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务