一些关于读代码和文档的问题

xuewuzhijing_lc 2010-04-07 08:17:31
作为一个新人,读一个上万行的模块,老实说感觉很吃力,我目前在看高通平台的手机系统中的模块,麻烦有经验的高手指点下,最高效的读代码的方法,尽快的了解模块的逻辑,要注意什么,代码是用C写的。
还有是不是高手写代码就可以不写文档,一个模块几百个变量,之间的关系,蛮复杂的,太闷真的不写文档么,请告诉下我在自己着手写大量代码时要了解什么,要胸有成竹什么,毕竟一个模块的代码不是一个小程序。
谢谢各位的提点,注:我不是一个天才,请别给我说些没用的谢谢了!
...全文
152 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2010-04-08
  • 打赏
  • 举报
回复
关键还是要有一个好的代码编辑器!
bladesoft 2010-04-08
  • 打赏
  • 举报
回复
一般成熟的系统会有design文档,只不过有没有发布出来,就不一定了;可读性好的代码,通过函数名称和参数就可以把函数功能了解个差不多,这也只是理想状态。
必要的话,自己还是要把重要函数细细看下,另外利用好函数注释,也会为你节省不少精力。
cattycat 2010-04-08
  • 打赏
  • 举报
回复
完全了解系统的流程确实很难,文档一般比较简单就是系统的大体流程和模块分类的,这种技术的文档一般是没有的。你可以看跟你相关的模块,然后自己写。一个函数几百个变量太多了吧。
xuewuzhijing_lc 2010-04-08
  • 打赏
  • 举报
回复
我看的只是上层的应用,没有和硬件相关的。
bobo364 2010-04-08
  • 打赏
  • 举报
回复
嵌入式确实很复杂,里面不仅是程序,还有一些所谓的与硬件有关的数据,要想精通往往要学硬件的东西
xuewuzhijing_lc 2010-04-08
  • 打赏
  • 举报
回复
多谢大家的建议,有收获,明天早上去结贴,谢谢了啊。
lizzoe 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 imob419 的回复:]
单步调试,从main函数开始,第一遍不要单步到函数内,用笔记下来大体流程,第二遍,挑几个认为重要的函数进去看看,不要太深入细节,再用笔记下来,结合自己的分析再去看看感兴趣的代码。反复进行,每次就指定几个目标流程,慢慢的就熟悉了。
具体的技术实现可以不用太关注,只要清楚它的作用是什么就行,以后再细抠。
[/Quote]

呵呵,这样恐怕不行吧,这么大的规模,可不是什么一条线就能走到头的小程序,不好,不好。

其实还是关注业务吧。以特性或者功能入手,就像我们学习Linux内核一样,找本好书,然后一块一块的看,今天看内存管理,明天看任务调度。就像是盲人摸象,我们要先得其轮廓。
然后随着理解的深入,再去学习其精髓
LaoDong1982 2010-04-08
  • 打赏
  • 举报
回复
先找文档 了解基本架构
之后看大致流程

查Bug或者添加功能的时候再看细节

不要一开始就看细节,累并没有用
daxiao474 2010-04-08
  • 打赏
  • 举报
回复
learning
ComputerMark 2010-04-08
  • 打赏
  • 举报
回复
不知道自己什么时候能接触到上万行的代码,菜鸟中。。。。。
田暗星 2010-04-08
  • 打赏
  • 举报
回复
确实很麻烦,没有头绪。
liujiaji 2010-04-08
  • 打赏
  • 举报
回复
1.选好工具:用Source Insight 3.5工具看。
2.会写文档,最好是excel.
3.你首先确认是多任务处理还是单任务处理,什么系统。系统中有什么API,功能是什么。
4.边看边花流程图和各个模块转换图。
5.最好能debug调试。
james_hw 2010-04-08
  • 打赏
  • 举报
回复
还记得刚开始工作时,前三个月全在走查代码,走查了5个模块,总共代码不下10w行,然后把逻辑关系理出来,写详细设计,并向模块作者汇报。。。哎,实际的代码和最初的详细设计已经有较大的出入,老员工懒的改详设,只好让新人来改。

不过效果不错,感觉从此以后设计能力大幅提升。

有技术文档的,根据技术文档走查,没有技术文档的,多问多上网。

走查过一个模块后,再看其他模块就有效率了。
littlegeorge 2010-04-08
  • 打赏
  • 举报
回复
先了解代码所实现的功能和原理,然后有针对性的跟踪调试每个流程,由粗到细看。
yuzl32 2010-04-07
  • 打赏
  • 举报
回复
没文档的话,要理顺代码中的逻辑确实挺麻烦的。
soon 2010-04-07
  • 打赏
  • 举报
回复
看来楼主是搞嵌入式这一块的。嵌入式这一块与上层应用程序开发不同,有时候为了效率而放弃代码的可读性这是很正常的事。除非有相应的文档。否则很难看懂原代码。

比如果。循环展开。 ARM中无效立即数通过MVN来获取等。这些都是技巧很高的优化。如果没有设计文档。更本不知道。

所以还是先把文档看懂。
huanmie_09 2010-04-07
  • 打赏
  • 举报
回复
mark.
Tauren_Chieftan 2010-04-07
  • 打赏
  • 举报
回复
读代码之前,搞清楚程序结构和处理流程,必须辅以文档记录,
抽取关键结构体,仔细分析各个成员的含义。。。
然后看代码,从主任务开始看起。。。

感觉有些东西不好用文字描述。。。

surea 2010-04-07
  • 打赏
  • 举报
回复
学习中
「已注销」 2010-04-07
  • 打赏
  • 举报
回复
学习学习
加载更多回复(3)
内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧