大家好,欢迎来到IT知识分享网。
做嵌入式软件开发,总是免不了借鉴别人的代码,或者参考官方的DEMO。新手拿到别人的代码,不少人都会一头雾水。这种情况,有什么窍门能避免一筹莫展吗?其实,阅读别人的代码,是有技巧的。下面,我就给新手们,聊一聊。
了解工程结构
拿到别人的代码,首先要查看它的工程结构。看看它的模块是怎么样组织的。一般来说,优秀的代码,会将代码进行分层管理,分为CPU关键代码、芯片驱动、板级外设驱动、应用代码几部分。
以下图的工程为例,可以看出工程的分层非常明显,这也方便我们去找各部分代码。通常来说CPU关机代码和芯片级驱动,我们都用芯片商提供的,原则上不做修改。而板级的外设驱动、应用代码,我们可以借鉴。而主流程,一般来说,是要根据我们自己的需求来酌情调整、增加、删改的。
参考他人的工程,我们能获得什么
对于板级的外设驱动、应用代码,我们通常借鉴对芯片驱动的调用方式,初始化流程。有这样的例子,我们就可以直接在自己的代码中复制添加,避免自己反复尝试,浪费时间。当我们新接手一个不熟悉的芯片时,使用这种方式可以很快启动开发过程,省去看资料时间,不仅少走弯路,还能快速完成硬件调试。
优秀的代码,我们还可以学习他们的编码习惯、工作逻辑、处理算法、模块与模块间的交互方式,这些都可以提升我们自己的设计水平。
如何看懂别人的代码
一般来说,拿别人的代码来看,新手肯定会感觉比较痛苦的,尤其是代码量比较大,文件比较多的。感觉无从下手,不知所措。我教大家一个方法,叫模拟执行法。
模拟执行法,就是将自己模拟成CPU,去执行某套代码。从而摸清楚它的工作流程和逻辑。我们都知道,程序是从main开始的。那么,我们就从main函数开始,依次执行每一行代码。遇到函数,那么就跳转进去,继续。如果仍然碰到函数,就再进去,一层层摸清楚。当然,对于系统函数、驱动代码等,可以跳过去不进入,因为它的行为是已知的。这样就可以逐渐把整体代码搞清楚。
在实际使用时,如果方法已经熟练。那么进入一个函数时,我们就要充分利用人类的抽象理解能力,迅速浏览整个函数体,通过语句、注释、函数名等信息,快速理解函数的逻辑,实在无法判断的,才会进入函数体内部。
函数跳转,是大部分IDE都有的功能,通常在函数名上,点击右键菜单上即可找到。
如何使用他人的代码
使用现有代码,又称为移植,尤其特指那些需要配置和调整的代码。对于纯功能性代码,比较好办,Copy过来,然后改一下调用,消除一下编译错误即可。但是对于硬件型的代码,要注意正确对应资源。比如UART,要做好映射关系,修改成自己使用的资源,避免UART1使用UART2的初始化代码。GPIO要注意修改I/O的PIN脚。延迟函数,要注意和自己的平台一致,有些是频率敏感的。有些功能函数申请的内存可能超过有效的空间,也或者自己的功能使用不了这么多,那就要适当调整。诸如此类的修改,都要视情况而定。通常来说,硬件类的代码修改是必要的。
总结
总之,研究别人的代码可以提升自己的水平,合理借鉴或使用,可以加快开发速度。当然,首选是芯片官方的DEMO代码,或较高水平的开源代码。无论什么样的代码,都注意不要侵权,以免惹上不必要的麻烦。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/56481.html