linuxcnc源码路径规划_linuxcnc源码分析
文章目录:
看源代码时,你喜欢怎么做笔记?
不要一上来就啃源代码,去搜索和代码对应的『代码架构图』和『开发者手册』,后者会提供代码的设计思路和很多概念的说明,还会将代码中的注释进行整理汇总,非常有用。当我看了2天的代码,即将要崩溃时。找到了『数据流图』和『开发者手册』。在LinuxCNC的根目录下有directory.map,是为代码的组织框架,根据这个,可以快速定位到核心的代码所在的文件夹。 LinuxCNC的核心代码有2个文件夹,每个又包含有几十个c文件和h文件。切忌一开始就将精力放在细节上,开始我通过c文件的名字寻找我觉得重要的代码,然后逐行逐字地看,花了很多时间,完全摸不着方向,挫败感很强。 后来经师兄的提醒,逐个看c文件,只关注『函数名』和是否为内部函数,『头文件、变量、输入参数、输出参数』都忽略掉,并根据注释或函数名大致确定每个函数的功能,整理成文档。 经过第4部,就能知道哪些c文件是核心,哪些函数是核心中的核心,然后从某一个函数开始,跟踪到无法跟踪下去为止,可以用『树状结构』记录这些调用关系,经过这步后会对代码整个的操作流程有个整体的认识。这个过程当中需要留意源码中的注释,那是很多前辈的智慧,他们将思考、疑问、心得都写下来,今天看到了一句注释『This is the brains of the operation.』,激动啊。因为还不清楚『数据结构』,所以这时的认识很笼统。 从核心c文件包含的头文件开始,梳理『数据结构』,LinuxCNC里面有大量的结构体,建议将重要的『数据结构』整理出来。 接下来goto第5步,不过要挖的细一些,碰到不懂的『数据结构』,goto第6步,有啥新心得体会都记录下来,until你觉得看懂了源代码。 ps,看源码是一个来回跳转的过程,需要一个好的工具,至少得具有『语法高亮』『宏、变量、函数列表』以及强大的跳转功能,我用的是Vim。