米尔电子
直播中

jf_50393217

4年用户 200经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[技术]

【米尔NXP i.MX 93开发板试用评测】3、NXP的MCU工程目录结构和源码分析

MCU工程的构建系统

NXP使用的是CMake构建系统,这也是目前非常常见的一种构建系统。
CMake是一个跨平台的自动化构建系统,它使用配置文件(称为CMakeLists.txt)来生成标准的构建文件,如Unix的Makefile或Windows的Visual Studio工程文件。CMake支持多种编程语言,包括C、C++、Fortran、Java和Python等,并且可以与多种编译器和开发环境无缝集成。

而NXP的项目工程,可以说是CMake工程的优秀示范。

目录结构

这种目录结构有助于提高软件开发的效率和质量,特别是在大型项目和团队合作的环境中。通过合理的组织和模块化,可以使得项目更加易于维护和扩展。

  1. 组织清晰 :通过将源代码、配置文件、构建脚本和工具链配置分开放置,使得项目结构更加清晰,便于理解和维护。
  2. 模块化 :将不同的功能模块分开,如driverssourceutilitiesstartup等,有助于实现代码的模块化,便于单独开发和测试。
  3. 易于管理 :每个组件或模块都有自己的CMakeLists.txt文件,使得构建配置更加灵活,便于管理和更新。
  4. 可扩展性 :随着项目的扩展,可以轻松地添加新的目录和文件,而不会对现有结构造成干扰。
  5. 便于协作 :在团队开发环境中,清晰的目录结构有助于团队成员快速定位项目的不同部分,提高协作效率。

image.png

举个例子,drivers目录里区分了各个外设的源文件和配置文件(虽然感觉配置文件分开有点多余)。比方说我们现在想添加spi外设的功能,我们可以用官方的ide生成对应的spi外设代码,然后复制进来。

image.png

然后我们还需要调整board这个板级目录,比如修改pin_mux.c文件,添加对应外设的io配置,然后在board.c里修改对应外设的初始化代码即可。

image.png

应用层代码

应用层的代码是在source目录下,这里有个main_remote.c文件,这个文件里有main函数,这个函数里有应用层线程的相关代码。

image.png

总结

虽然这样拆分代码,会拆分出很多个目录和文件,一眼看去目录非常多,但是一旦习惯这种方式,会发现解耦功能,和后期的维护会非常舒服。

更多回帖

发帖
×
20
完善资料,
赚取积分