功能机驱动开发步骤

一、搭建开发环境

1.确认是在windows系统还是在linux系统,然后确认版本,找到系统镜像安装操作系统;

2.安装基本软件,如:解压软件、虚拟光驱、比较工具、代码编辑软件、版本管理软件等;

3.安装编译工具,如:Perl,RVCT,VS2008,Office2010,多核编译等;

4.编译器测试,如:从 SVN 服务器检出你需要的源代码,看代码能否正常拉下来,然后进行编译,看编译器是否会出现错误,解决出现的错误,直到可以正常拉代码和编译软件。

二、确定项目芯片平台

因为后续需要对项目进行开发调试,所以需要先明确自己项目中用的哪些平台的芯片,然后进入平台官网学习相关的知识。

最好是能拉一个分支代码下来,然后按照官网的平台规格书对应着学习,这一步主要是了解不同平台代码的架构。如:项目.mk文件在什么地方,里面是怎么写的,都控制了什么功能;还有各个模块的相关代码都在哪些路径,相关的控制函数有哪些,底层是怎样把这个功能调通的,最终是哪里调用了的......

三、参与项目调试

对于新人要积极参与项目调试,可以查看拉下来的代码中有哪些项目,拿到机器进行软件下载烧录,查看前辈的提交记录,看看项目中遇到的问题,以及最后是如何解决的,熟悉项目各模块的代码。

有了机器,也有代码,可以按模块尝试修改一下功能了,比如:LCD模块,查看如何点亮对应型号的LCD,相关的文件有哪些,如果新兼容一个LCD需要修改哪些地方,各个函数中的作用是什么,这里面还需要LCD对应型号的IC规格书,参考规格书设置相关寄存器的值。

一台功能机中包含的模块有:LCD、按键、camera、flash、手电筒、充电、音频、FM、射频等。主要还是看有哪些功能,怎么样把这些功能调通,后续再慢慢优化。需要注意的是每个模块用的物料,对应的规格书要求,比如:手电筒的亮度和电流在实际项目中会有要求的。

对于功能机来说,首要的是配置gpio端口和点亮LCD,保证机器能正常开机和显示。gpio的配置就需要查看原理图,根据原理图中各个gpio端口的功能进行配置。

四、主导项目调试

之前我们是参与项目调试,主导项目的另有其人,当我们进行项目主导的时候就项目的各种问题就需要我们自己去把控了,当然这里的主导指的是驱动部分。

作为项目的主要负责人之一,首先需要对项目的开发流程有基本的了解。比如:一个项目的开发周期大概是多久,项目从立项到最终量产需要哪些部门进行配合,我们自己负责的那部分需要在哪些时间节点做什么工作,需要对接的工作涉及到哪些部门哪些人,是否能联系上,项目会不会卡住,哪些点被卡住了,什么时候能解决......

当作为项目主负责人时,需要把控好调试时间,在规定的时间内解决项目中的bug,与团队合作以及沟通也很重要。

在进行驱动调试时,除了软件相关的知识,我们对硬件的一些东西也是要有所了解的,最后要跟一个好师傅,或者好领导,如果有拿不定注意,或者项目陷入僵局的时候,可能他们的一句话就能让你茅塞顿开。

五、调试总结,持续充电

我们在项目调试过程中,遇到的各种问题最好记录一下,写一篇文档或者总结,人的记忆力是有限的,好记性不如烂笔头,把工作中遇到的问题记录下来,每个月进行文档输出,不但可以理清之前的问题,还能知道自己哪些地方不足,后续再自己去学习。这样做还有一个好处,就是评职称的时候不用再纠结自己没有东西写了。

相关推荐
TangDuoduo00055 天前
【Linux SPI驱动开发】
驱动开发
The️5 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
FserSuN5 天前
AI编程 - 规范驱动开发(SDD)学习
驱动开发·学习·ai编程
TangDuoduo00056 天前
【Linux I2C设备驱动】
linux·驱动开发
The️6 天前
Linux驱动开发之Open_Close函数
linux·运维·驱动开发·mcu·ubuntu
LCG元6 天前
嵌入式GUI设计:STM32F429+LVGL,智能仪表盘界面开发指南
驱动开发·stm32·嵌入式硬件
小龙报7 天前
【51单片机】 给单片机加 “安全锁”!看门狗 WDT:原理 + 配置 + 复位验证全拆解,让程序稳定不跑飞
驱动开发·stm32·单片机·嵌入式硬件·物联网·51单片机·硬件工程
码农编程录7 天前
【notes12】kbuild,内核模块化,字符设备驱动,设备树,platform总线,设备驱动模型
驱动开发
乔碧萝成都分萝7 天前
二十六、IIO子系统 + SPI子系统 + ICM20608
linux·驱动开发·嵌入式
A星空1237 天前
二、交叉编译工具链(arm-linux-gnueabihf-gcc)安装与验证,搭建 TFTP+NFS 服务,调试开发板网络连通性;
linux·c++·驱动开发·单片机·嵌入式硬件