最近第一个完整的项目的第一期快完成了。期间,我怀疑过无数次人生,给难兄难弟辣椒相互吐槽过。被我师父点播后觉得人和人差距怎么可以这么大数次。
终于!基本功能实现了。
今天不总结具体问题了,说一下调试过程中遇到问题的一般排查步骤。给下一次抓狂的我一点指导思想:^)
1. 在使用这个管脚时候,全工程搜索,查一查先辈们有没有用过它并且还一直占用着它。如果有,并且改功能目前没用。make menuconfig 关掉它,或者直接改.config文件。一样的。
2. 关于管脚配置了,却没有达到与其功能。检查配置确定没问题并且调用到了后。首先检查,板侧管脚功能、上下拉、还有个啥?这三个,在结构体里面都配置了吗?然后通过sysfs方式控制GPIO,访问/sys/class/gpio目录,向export写入gpio编号度写direction和value。或者操作工具(如ureg_test)直接用应用读配管脚。管脚配置对吗,输入输出、上下拉、值都和预期相符吗?最后,确定配置都没有问题,查看你的管脚接入电路图,控电是几路电,上电就有吗,还是需要软件控制电源?(一般负责任的硬件会在你开始之前告诉你,这个东西需要单独在软件中控制电源,这样的硬件并不包括我遇到的这俩叔)
3. 我没改啥啊!!!为啥刚能出来现在出不来了!!这个问题,在有较稳定版本时候,及时保存咯,不然于事无补只能一行一行检查了。
4. 时钟配好了吗,几分频的,和通讯模块管脚时钟一样吗,不一样能够抓到信号吗(我们现在卡在这里了抓中断信号凭运气欧耶,明天去试着改主控的管脚时钟)
5. 这个功能的实现咋实现!!我没用过没看过实现个鬼。这个问题,我最开始是先看马书的指导方法,有成功过,但是凭运气。不知道为啥,书上的步骤看着很多,实际并不需要一些功能。并且不需要的功能还不好配。一般解决方法是,在整个内核中搜要用的这个函数,总有先辈们用过,数个活生生的例子就躺在工程里呢。耶
6. 就想到这些先,没了