docs/zh_CN/contribute/creating-examples.rst
:link_to_translation:en:[English]
每个 ESP-IDF 的示例都是一个完整的项目,其他人可以将示例复制至本地,并根据实际情况进行一定修改。请注意,示例项目主要是为了展示 ESP-IDF 的功能。
main 目录需要包含一个名为 (something)_example_main.c 的源文件,里面包含示例项目的主要功能。main 目录下的多个 C 或者 C++ 源文件,并将对应的头文件也放在同一目录下。components 子目录,通过库功能,将示例项目的不同功能划分为不同的组件。注意,如果该组件提供的功能相对完整,且具有一定的通用性,则应该将它们添加到 ESP-IDF 的 components 目录中,使其成为 ESP-IDF 的一部分。README.md 文件,建议使用 :idf_file:示例项目 README 模板 <docs/TEMPLATE_EXAMPLE_README.md> ,并根据项目实际情况进行修改。example_test.py 文件,用于进行自动化测试。如果在 GitHub 上初次提交 Pull Request 时,可以先不包含这个脚本文件。具体细节,请见有关 Pull Request <https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request>_ 的相关内容。示例代码需要遵循 :doc:《乐鑫物联网开发框架风格指南》 <style-guide>。
提交一个新的示例项目之前,需要检查以下内容:
README.md 文件,建议使用 :idf_file:示例项目 README 模板 <docs/TEMPLATE_EXAMPLE_README.md>。命名规范 <style-guide-naming> 中的要求。对于仅在示例项目源文件中使用的非静态变量/函数,请使用 example 或其他类似的前缀。Kconfig.projbuild 文件,该文件中包含一个名为 “Example Configuration” 的菜单。具体情况,请查看现有示例项目。in the public domain CC0)和免责声明。或者,源代码也可以应用 Apache License 2.0 许可条款。请查看现有示例项目的许可信息和免责声明,并根据实际情况进行修改。Apache License 2.0 协议。