0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

刚工作,代码太多没头绪?怎么办?

朱老师物联网大讲堂 2024-03-25 08:09 次阅读


最近有位问:刚参加工作,看不懂代码?f9c8b80a-ea3b-11ee-9118-92fbcf53809c.png

这篇文章我们就来简单分享一些看代码的经验。

1、了解项目整体架构

在阅读嵌入式代码之前,我们需要对项目整体架构有一个基本的了解。

公司里的项目,一般在做项目之前,都会进行系统设计、编写一些文档、画一些系统框图。可以先找这些项目资料看一看。虽然我们后面可能只是负责某个模块,但是还是很有必要先了解这个项目的总体框架。了解清楚整个项目有有哪些硬件模块、哪些软件模块、有哪些组件、各个模块之间的输入输出、各个模块是如何协同工作、项目的主体业务是什么、主要功能有哪些等。

嵌入式代码通常可以分解为几个关键模块,例如任务管理、内存管理、通信协议等。将各个模块分离出来,逐一阅读和理解,可以更加清晰地掌握代码的核心思想。

对项目整体架构有一定了解之后,有助于我们更好地理解代码中的逻辑。

2、熟悉通信部分代码

项目里一般会划分多个硬件/软件模块,这些模块之间会进行数据交互。

梳理清楚:

  • 使用了哪些硬件通信接口?例如I2C、SPI、UART等。
  • 线程通信?
  • 进程间通信?
  • 网络通信
  • 协议数据处理?
  • 各个模块的数据分类?

我们可以首先熟悉通信部分代码,梳理清楚各模块的交互。这一部分代码一般是比较容易看懂的,基本是看懂了一条数据之后,类似的基本就看懂了。基本看懂之后,可以跟着数据的流向,看看拿到这些数据之后,去做了什么处理。

因为你之后的工作,有可能是写这一部分代码。比如增加某个数据,要实现什么功能。

拿数据 + 做逻辑

3、阅读主业务模块

业务逻辑模块直接跟产品功能挂钩,看懂这个模块就可以很好地了解我们产品的功能。

业务逻辑作为最上层的模块,可能有好几个模块都对其提供一些接口

阅读这一块代码需要注意的是:

每个功能具体的函数实现可能会嵌套好多层的代码,刚开始千万不要一层一层点进去阅读、不要试图看懂每个函数、每行代码,不然只会越看越懵。

我们在阅读这个模块的代码时,尽量沿着这个模块的主线去阅读,沿着主线尽可能快地弄清这个模块做的事情,理解函数调用关系。等我们弄懂本模块之后,日后对其它模块感兴趣再去仔细阅读其具体实现也不迟。

4、了解单元测试测试用例

一般项目里模块开发完成会编写一些单元测试用例进行自测。我们可以先不看单元测试模块是如何实现的,可以先看一些各个模块的测试用例,每个用例是如何跑的?输入?输出?

通过阅读这些测试用例,可以帮助我们快速地理解各个模块是如何触发的,以及一些接口的使用方法。

5、实践、分析日志

对代码有了一定理解之后,肯定也会带有很多困惑,这时候可以自己修改代码/增加一些调试日志来帮我们理解代码,有在线调试条件的可以进行在线调试。

同时,我们需要大致熟悉项目整体的日志:

熟悉日志的格式。带有时间戳?带有模块标签?日志等级?

了解应用程序启动日志,通过日志了解启动做了哪些工作、经过了哪些流程。

了解一些关键日志。主业务的日志?

跑跑一些用例,看看对应的日志。

以上就是我们关于阅读嵌入式代码的一些分享。

如果文章对你有帮助,麻烦帮忙转发。

本文转载自公众号|嵌入式大杂烩

作者 | 嵌入式大杂烩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4598

    浏览量

    67333
  • 嵌入式代码
    +关注

    关注

    0

    文章

    4

    浏览量

    5873
收藏 人收藏

    评论

    相关推荐

    工作我该怎么办

    我这两天没心思上班不知道该怎么办,被疾病困恼着唉http://mei.qianlong.com/pifu/szqpz/
    发表于 11-06 11:28

    用labVIEW 设计锁相放大器

    新手,接触labVIEW ,接到任务设计锁相放大器。没头绪,求帮助。
    发表于 07-08 15:08

    51单片机

    毕业设计都有还没头绪,都不知道要怎么死的了,1月份就要答辩了。我现在都没一点进程。基于51单片机的倒车雷达。发射 接收 温度 4位显像管 蜂鸣器 。仿真 程序 电路图、、想想都不知道要怎么办
    发表于 10-30 20:26

    公司在做一个安捷伦4395网络分析仪的软件,还没头绪,不知怎么做

    公司在做一个安捷伦4395网络分析仪的软件,还没头绪,不知怎么做,请教各位大侠给提个意见,谢谢
    发表于 08-27 23:01

    cadence16.5导入PCb导入网表显示失败,怎么办,新手入门

    cadence16.5导入PCb导入网表显示失败,怎么办,新手入门
    发表于 12-14 21:40

    过来人说一下ZTURN怎么学习吧,现在感觉没头绪啊,看了好几本书,仍然动不了板子

    过来人说一下ZTURN怎么学习吧,现在感觉没头绪啊,看了好几本书,仍然动不了板子
    发表于 01-30 14:45

    安装时setup停止工作怎么办

    安装时setup停止工作怎么办
    发表于 05-04 21:33

    labview程序申请软著的话,源代码怎么办

    labview程序申请软著的话,源代码怎么办?我写的程序,有的是用C Generator转不了的,咋办
    发表于 10-09 12:01

    求大神Labview毕业设计整套的例子,毕设没头绪~~~

    哪位大神有没有Labview毕业设计整套的,能不能给小弟拿来参考下,最近在忙毕业设计,有点没头绪,跪求资源~~~
    发表于 12-05 15:55

    重新启动PHY时Stack不能工作怎么办

    你好,为了减少产品的功耗,我需要关掉PHY。问题是当我重新启动PHY时,Stack不能工作:PHY配置正确,我可以读取PHY内部寄存器。我试着在PHY重新启动后调用StackInit(),但是它不工作。我怎么办
    发表于 08-09 11:30

    买的板子指示灯一直不亮该怎么办

    前几天买的板子,刚开始还是好好的,做了两个小试验。后来插上液晶屏后,指示灯闪了一下,拔了液晶,指示灯还亮。再插上液晶屏,指示灯就不亮了,后来怎么都不亮了,现在连接u***或者自己外界电源都没反映了。。。怎么办
    发表于 09-05 01:24

    通信协议太多,很难记住繁杂的各种通信协议怎么办

    刚开始接触设计开发,很难写短小精悍的程序;而且也很难记住繁杂的各种通信协议怎么办
    发表于 03-05 07:09

    CPU温度过高怎么办

    CPU温度过高怎么办?CPU也就是我们常说的中央处理器,它是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。如果cpu温度过高会严重损害电脑。下面,我们就来看看如何给电脑降降温。1、首先
    发表于 09-08 06:24

    编译C代码时,有时会报错,提示找不到头文件是为什么?怎么办

    编译C代码时,有时会报错,提示找不到头文件是为什么?怎么办
    发表于 10-19 09:45

    RK3288W Android8.1的SDK忘记执行代码更新指令怎么办

    RK3288W Android8.1的SDK忘记执行代码更新指令怎么办呢?如何去解决呢?
    发表于 03-03 07:54