您的位置 首页 > 数码极客

「如何快速看懂源代码」如何看懂网页源代码

做嵌入式软件开发,总是免不了借鉴别人的代码,或者参考官方的DEMO。新手拿到别人的代码,不少人都会一头雾水。这种情况,有什么窍门能避免一筹莫展吗?其实,阅读别人的代码,是有技巧的。下面,我就给新手们,聊一聊。

了解工程结构

拿到别人的代码,首先要查看它的工程结构。看看它的模块是怎么样组织的。一般来说,优秀的代码,会将代码进行分层管理,分为CPU关键代码、芯片驱动、板级外设驱动、应用代码几部分。

以下图的工程为例,可以看出工程的分层非常明显,这也方便我们去找各部分代码。通常来说CPU关机代码和芯片级驱动,我们都用芯片商提供的,原则上不做修改。而板级的外设驱动、应用代码,我们可以借鉴。而主流程,一般来说,是要根据我们自己的需求来酌情调整、增加、删改的。

整齐归并的源代码和工程目录

参考他人的工程,我们能获得什么

对于板级的外设驱动、应用代码,我们通常借鉴对芯片驱动的调用方式,初始化流程。有这样的例子,我们就可以直接在自己的代码中复制添加,避免自己反复尝试,浪费时间。当我们新接手一个不熟悉的芯片时,使用这种方式可以很快启动开发过程,省去看资料时间,不仅少走弯路,还能快速完成硬件调试。

优秀的代码,我们还可以学习他们的编码习惯、工作逻辑、处理算法、模块与模块间的交互方式,这些都可以提升我们自己的设计水平。

初始化流程,自己编写,既浪费时间还容易出错

如何看懂别人的代码

一般来说,拿别人的代码来看,新手肯定会感觉比较痛苦的,尤其是代码量比较大,文件比较多的。感觉无从下手,不知所措。我教大家一个方法,叫模拟执行法。

模拟执行法,就是将自己模拟成CPU,去执行某套代码。从而摸清楚它的工作流程和逻辑。我们都知道,程序是从main开始的。那么,我们就从main函数开始,依次执行每一行代码。遇到函数,那么就跳转进去,继续。如果仍然碰到函数,就再进去,一层层摸清楚。当然,对于系统函数、驱动代码等,可以跳过去不进入,因为它的行为是已知的。这样就可以逐渐把整体代码搞清楚。

在实际使用时,如果方法已经熟练。那么进入一个函数时,我们就要充分利用人类的抽象理解能力,迅速浏览整个函数体,通过语句、注释、函数名等信息,快速理解函数的逻辑,实在无法判断的,才会进入函数体内部。

函数跳转,是大部分IDE都有的功能,通常在函数名上,点击右键菜单上即可找到。

模拟执行法,进入函数,了解工作逻辑

如何使用他人的代码

使用现有代码,又称为移植,尤其特指那些需要配置和调整的代码。对于纯功能性代码,比较好办,Copy过来,然后改一下调用,消除一下编译错误即可。但是对于硬件型的代码,要注意正确对应资源。比如UART,要做好映射关系,修改成自己使用的资源,避免UART1使用UART2的初始化代码。GPIO要注意修改I/O的PIN脚。延迟函数,要注意和自己的平台一致,有些是频率敏感的。有些功能函数申请的内存可能超过有效的空间,也或者自己的功能使用不了这么多,那就要适当调整。诸如此类的修改,都要视情况而定。通常来说,硬件类的代码修改是必要的。

总结

总之,研究别人的代码可以提升自己的水平,合理借鉴或使用,可以加快开发速度。当然,首选是芯片官方的DEMO代码,或较高水平的开源代码。无论什么样的代码,都注意不要侵权,以免惹上不必要的麻烦。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何快速看懂源代码,如何看懂网页源代码,如何看懂网页源代码的软件,看懂网页源代码,怎么看懂源代码”边界阅读