This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 嵌入式 C 编码指南?

Guru**** 2553610 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/590493/embedded-c-coding-guide

我目前已加入一家新公司、担任嵌入式工程师。 我觉得我的职责是处理固件。 但是管理人员希望我为新产品编写新固件、而这是我迄今为止尚未完成的工作、即固件实现 ROM 暂存。 在这种情况下、有人能帮我吗? 我对嵌入式产品非常感兴趣、并对他们的期望很感兴趣、但同时我不确定如何在预定的时间段内实现目标。  因此、如果有人可以为我提供一些有关固件实现的良好资源、这将会大有帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Sanket、

    1、您可以先看一下 K&R 手册、这是 C 编程的开发人员。
    2.您可以参阅这本书 :www.pearsonhighered.com/.../PGM124303.html
    3.您可以阅读并遵循 MISRA C 编码指南。
    4.没有比代码本身更好的资源。 您可以参考嵌入式硬件附带的示例代码和示例代码;嵌入式系统的 Linux 代码;FreeRTOS 等 RTOS、它们以非常低的内存占用空间运行。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的建议和帮助。 我一定会使用这本书和提到的要点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经阅读了 Misra 规则、但我仍然不理解为 taxeters 编写的代码的清晰度、我所在组织中没有人详细解释该代码。 如何解决此问题。 例如:GPS 和 GSM 初始化过程。 GPS 模块是 Quectel 和 GSM M95 Quectel 的 L80。 从我的角度来看、用代码编写的初始化过程很困难。 我读取了数据表、但仍然卡滞?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Sanket、

    了解 GSM/GPS 模块的接口。 了解它如何连接到嵌入式电路板。 从方框图开始。 然后逐模块运行。

    不要将代码和数据表组合在一起。 在阅读数据表时、请尝试了解、而不是担心您需要如何编写代码或在代码中执行代码。 独立理解和编码。 写下有关您对模块的理解的图表和要点。 阅读有关该内容的更多信息(从 Wikipedia 开始)并交叉验证您的理解程度。

    编码只是一个方面、至少一个方面。

    我们在办公室时、没有人会帮助我们、这与学校或大学不同。 当与你共事的人不能工作时、肯定不会像我这样的外人。 保持冷静、不要担心最后期限。 您需要了解模块、然后最后了解代码。 学习阶段是编码的一个非常重要的部分! 如果代码出错、则会出现构建错误。 但是、如果您的理解出错、那么编写代码正确无误、因为硬件的另一端不会响应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我正在为嵌入式 C 中的 IBM Bluemix 和 AWS IoT 编写代码。代码将根据用户在这两个平台之间切换。 用户可以配置两个平台的参数。 使用带 JSON 的 MQTT 3.1.1。

        我希望高效地编写代码、也就是说、我希望将 连接、订阅、发布、用户可配置参数的参数保留在相应更新参数的结构中。 此外、我希望使用循环缓冲器、而不是 malloc。

        我是一个普通的编码器、因此如果我获得了一个有关基于嵌入式 C 的产品的良好资源或案例研究、它将真正帮助我编写高效的代码。

       您能给我一本关于嵌入式 C 代码效率实际实施的书、还是其他资源吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Sanket、

    不会针对具体要求提供一站式解决方案。 正如我之前所说的、请检查您正在运行的嵌入式板中的另一条代码。 检查示例代码。
    请记住、嵌入式世界中最重要的限制是编程时的资源(存储器)。 请记住这一点并继续。 就像你遇到的每一个障碍一样、比如 malloc、检查替代方案、了解并实施它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢你的答复。 此示例代码在哪里可用? 它在 GitHub 上吗??
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不知道您在使用哪个电路板、而是要对其示例代码进行注释。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们的内部板具有 NXP Kinetis 系列 K20和 Quectel 95 GSM 模块。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有使用过 NXP Kinetis 及其代码。 但这里有代码和工具。 如果有代码,请检查每个代码: www.nxp.com/.../kinetis-software-and-tools:KINETIS_SWTOOLS