有stm32基础,学习linux开发要多久?
发布网友
发布时间:2022-04-24 07:38
我来回答
共1个回答
热心网友
时间:2022-06-17 16:44
linux开发是指:硬件开发?驱动开发?应用程序开发?
STM32是cortex-M内核,一般能跑linux的都是cortex-A核,架构差异蛮大的。
STM32单片机 = cortex-M内核 + 外设
arm soc = cortex-A内核 + 外设
先说结论:单片机开发基础对linux开发有帮助,但是很有限
STM32基础:我个人认为是一定的code能力+寄存器配置能力 + 小型程序开发能力 + 外设驱动能力
先大概说一下linux启动流程吧:
1、FSBL:引导程序,厂家固化的,不用管;
2、SSBL:bootloader程序,一般用u-boot,厂家会提供一个可用版本,定制裁剪功能看个人需求;
3、linux内核 + linux驱动
4、跟文件系统rootfs,可能需要增添删改
linux毕竟是庞大的操作系统,开发起来当然也非常复杂,需要的技术栈十分庞大,比如:
makefile、链接脚本、交叉编译、shell脚本、设备树、驱动框架等等
即使是linux驱动开发也是基于框架的开发,与单片机开发差距较大。既然想进入linux世界,先从空杯心态开始吧。
写这么多,不是说linux很难,其实任何东西入门容易,精通难,比如Linux内核进程调度、存储管理等等,都是我不知道的。没关系的,可以从简单的开始入手,一步一步积累嘛