功能机驱动开发步骤

一、搭建开发环境

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

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

五、调试总结,持续充电

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

相关推荐
winner88812 分钟前
嵌入式Linux驱动开发全流程:工具协作+核心概念拆解(从入门到理解)
linux·运维·驱动开发
Evan_ZGYF丶8 小时前
深入解析CFS虚拟运行时间:Linux公平调度的核心引擎
linux·驱动开发·嵌入式·bsp
leijiwen12 小时前
规则优先:AI 时代的规范驱动开发(SDD)新范式
人工智能·驱动开发
Ghost Face...12 小时前
PCI总线驱动开发全解析
驱动开发
贝塔实验室1 天前
Altium Designer 6.3 PCB LAYOUT教程(四)
驱动开发·嵌入式硬件·硬件架构·硬件工程·信息与通信·基带工程·pcb工艺
小狗爱吃黄桃罐头1 天前
正点原子【第四期】Linux之驱动开发学习笔记-10.1 Linux 内核定时器实验
linux·驱动开发·学习
钢门狂鸭2 天前
go开发规范指引
开发语言·驱动开发·golang
被遗忘的旋律.2 天前
Linux驱动开发笔记(十九)——IIC(AP3216C驱动+MPU6050驱动)
linux·驱动开发·笔记
Shang180989357263 天前
T41LQ 一款高性能、低功耗的系统级芯片(SoC) 适用于各种AIoT应用智能安防、智能家居方案优选T41L
人工智能·驱动开发·嵌入式硬件·fpga开发·信息与通信·信号处理·t41lq
抠脚学代码3 天前
Linux开发-->驱动开发-->字符设备驱动框架
linux·数据结构·驱动开发