谢邀,我是剑心,我来回答。
作为一名嵌入式初级从业人员,需要对寄存器操作很清楚,知道如何设置、读取和清除比特位。了解自己负责模块的工作原理,并且能够根据原理图和设计方案,编写模块驱动,对外提供API接口。
在初级阶段工作一段时间,对于每个模块熟悉以后,需要对模块的总体架构设计有所了解,并清楚底层的驱动API到HAL层,并且到APP层的SDK封装设计原理。
到了高级阶段,你需要了解的就是ARM的内核结构设计,AHB和APB等总线设计,以及时钟分频。对内存管理的LMA和VMA有深入了解,知道bin文件如何装载运行。
对于嵌入式操作系统如Freertos或者Ucos有一定了解,清楚进程和线程,对系统和IO外围协同工作原理很清楚。
以上就是个人对于题主嵌入式驱动开发的建议,希望对你有所帮助。
如果您喜欢我的回答,请关注点赞哦,也欢迎您的评论,谢谢!
最高境界的嵌入式开发者应该能通过对硬件的特性的分析和精巧的底层驱动代码来帮助团队实现产品的差异化和低成本。
这并不局限于是否为arm处理器或51处理器,也不局限于系统是跑Linux,rtos甚至是裸奔。个别需要甚至是跑Android。
举例,用处理器A为核心开发的产品,如果竞争对手也用此处理器开发了竞品,那么你们靠什么打赢竞品?是靠市场宣传还是靠产品性能和功能?或是靠降低售价?
因此,嵌入式开发者必须做到对硬件原件的底层完全理解,并能根据最终产品的形态重写标准的原厂驱动以便形成差异性。同时,精巧的底层软件还可以减少外部元器件的使用,帮助降低总体成本。