网站底部制作,海淀区手机网站制作服务,新能源网站建设,鞍山市信息网站#x1f41a;作者简介#xff1a;花神庙码农#xff08;专注于Linux、WLAN、TCP/IP、Python等技术方向#xff09;#x1f433;博客主页#xff1a;花神庙码农 #xff0c;地址#xff1a;https://blog.csdn.net/qxhgd#x1f310;系列专栏#xff1a;开发随想#… 作者简介花神庙码农专注于Linux、WLAN、TCP/IP、Python等技术方向博客主页花神庙码农 地址https://blog.csdn.net/qxhgd系列专栏开发随想如觉得博主文章写的不错或对你有所帮助的话还望大家三连支持一下呀 关注✨、点赞、收藏、评论。如需转载请参考转载须知 【开发随想】如何入手一个开源项目 参考资料方法论阅读文档动手编译IDE研读代码关键数据结构关键流程 上环境调试查看及增加打印 参考资料
官网 官网上通常都有项目的介绍、quick start guide、mannual等信息github、gitlab code、issue/PR、readme等信息wiki 大型的项目通常有自己的wiki。slack 团队沟通利器用于文件共享、技术讨论、频道等;google 懂的都懂
方法论
阅读文档
通过阅读相关文档建立项目及模块的总体概念可关注模块框图之类信息。
动手编译
通过查看编译过程的日志结合代码可以看出模块的产出ko、bin、so等以及在文件系统中的目录编译命令涉及功能宏等、模块的依赖关系、各目录的组织结构等
IDE研读代码
关键数据结构
如某芯片方案的WiFi驱动中可能会涉及STA结构体通过该结构体可以看出芯片所支持的STA的参数多个STA结构的组织STA数目的限制等信息。
关键流程
main函数或其他类似函数 通过main函数可以找到模块的准备工作主要的初始化工作等。模块与外界的交互 可关注对外提供的接口以及使用的外部接口、头文件、配置文件等信息借此可以了解模块间的关系。状态机 尤其涉及协议模块状态机必不可少如DHCP状态机、STA关联过程状态机等配合相关规范可以对业务流程有深入的认识配置流程和转发流程 – 涉及嵌入式设备大概率要涉及配置流程和转发流程在研读代码过程中要重点关注这两条线索。 – 配置流程可关注下不同媒介的配置流程打通从媒介到底层的全过程 – 转发流程可以从中断开始看一直看到报文上协议栈或到某个模块为止。
上环境调试
一般的开源软件都有对应的调试命令。如openwrt中的uci、ubus等。除了一般的命令外还有一些proc、sysfs等用于调试的文件系统可用于查看系统信息、或可动态修改一些开关、阈值等信息。注意一些配置文件的使用及对应线索如openwrt中的/etc/config/wireless文件。
查看及增加打印
如果对某些流程不是很确定可以通过修改现有日志的打印级别或者加日志来进一步确认。对于函数调用关系如果存在多调一的情况内核中可通过dump_stack来确定用户态也有类似的手段。
如本文对你有些许帮助欢迎大佬支持我一下您的支持是我持续创作的不竭动力 支持我的方式