交通 > 对于linux驱动开发,尤其是在嵌入式arm上,怎样才能算厉害,比如是做芯bsp?

对于linux驱动开发,尤其是在嵌入式arm上,怎样才能算厉害,比如是做芯bsp?

对于linux驱动开发,尤其是在嵌入式arm上,怎样才能算厉害,比如是做芯bsp?

1033人浏览
spider
相关栏目:交通
更新于 2023-05-24 12:44:01
共有2条回答
北辰剑心
回答于 2019-04-07 10:15:59

谢邀,我是剑心,我来回答。

对于嵌入式驱动开发,个人理解可以主要分为三个层次,初级为自己熟悉模块的工作原理和寄存器操作有深入的认识,可以自己独立开发模块驱动;中级为对整体驱动和SDK的设计有清楚的认知,并能理解设计原理;高级为硬件内核、总线设计、系统内存管理以及嵌入式操作系统有整体认识。

初级阶段:独立模块的原理和寄存器操作

作为一名嵌入式初级从业人员,需要对寄存器操作很清楚,知道如何设置、读取和清除比特位。了解自己负责模块的工作原理,并且能够根据原理图和设计方案,编写模块驱动,对外提供API接口。

中级阶段:熟悉驱动总体架构和SDK设计

在初级阶段工作一段时间,对于每个模块熟悉以后,需要对模块的总体架构设计有所了解,并清楚底层的驱动API到HAL层,并且到APP层的SDK封装设计原理。

高级阶段:清楚内核、总线、内存和操作系统

到了高级阶段,你需要了解的就是ARM的内核结构设计,AHB和APB等总线设计,以及时钟分频。对内存管理的LMA和VMA有深入了解,知道bin文件如何装载运行。

对于嵌入式操作系统如Freertos或者Ucos有一定了解,清楚进程和线程,对系统和IO外围协同工作原理很清楚。

总结

以上就是个人对于题主嵌入式驱动开发的建议,希望对你有所帮助。

如果您喜欢我的回答,请关注点赞哦,也欢迎您的评论,谢谢!

闲人老卢
回答于 2019-04-07 12:51:51

最高境界的嵌入式开发者应该能通过对硬件的特性的分析和精巧的底层驱动代码来帮助团队实现产品的差异化和低成本。

这并不局限于是否为arm处理器或51处理器,也不局限于系统是跑Linux,rtos甚至是裸奔。个别需要甚至是跑Android。

举例,用处理器A为核心开发的产品,如果竞争对手也用此处理器开发了竞品,那么你们靠什么打赢竞品?是靠市场宣传还是靠产品性能和功能?或是靠降低售价?

因此,嵌入式开发者必须做到对硬件原件的底层完全理解,并能根据最终产品的形态重写标准的原厂驱动以便形成差异性。同时,精巧的底层软件还可以减少外部元器件的使用,帮助降低总体成本。

登录后才能进行回答