功能机驱动开发步骤

一、搭建开发环境

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,与团队合作以及沟通也很重要。

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

五、调试总结,持续充电

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

相关推荐
世微 如初13 天前
AP5125大功率LED恒流驱动实战:地摊灯项目从原理图到调试笔记
驱动开发·芯片·led电源驱动·降压恒流ic
ScilogyHunter13 天前
Zephyr串口驱动开发及构建完全指南
驱动开发·uart·zephyr
_Emma_13 天前
【DRM&Graphic】Linux图形与显示框架
linux·驱动开发·图形渲染·显示器
董厂长13 天前
Loop Engineering:停止手动提示,开始设计自动提示的系统
大数据·人工智能·驱动开发·llm
Saniffer_SH14 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
暮云星影14 天前
全志linux开发屏幕适配(二)`HDMI`驱动适配说明
linux·arm开发·驱动开发
charlie11451419114 天前
嵌入式Linux驱动开发——从轮询到中断
linux·开发语言·驱动开发·嵌入式
暮云星影14 天前
瑞芯微rk3566开发FIT Secure Boot
linux·arm开发·驱动开发·安全
暮云星影14 天前
全志linux开发 USB接口设置
linux·arm开发·驱动开发
sukalot14 天前
windows显示驱动开发-CCD DDI的其它技术
windows·驱动开发