NXP使用的是CMake构建系统,这也是目前非常常见的一种构建系统。
CMake是一个跨平台的自动化构建系统,它使用配置文件(称为CMakeLists.txt)来生成标准的构建文件,如Unix的Makefile或Windows的Visual Studio工程文件。CMake支持多种编程语言,包括C、C++、Fortran、Java和Python等,并且可以与多种编译器和开发环境无缝集成。
而NXP的项目工程,可以说是CMake工程的优秀示范。
这种目录结构有助于提高软件开发的效率和质量,特别是在大型项目和团队合作的环境中。通过合理的组织和模块化,可以使得项目更加易于维护和扩展。
drivers
、source
、utilities
、startup
等,有助于实现代码的模块化,便于单独开发和测试。CMakeLists.txt
文件,使得构建配置更加灵活,便于管理和更新。举个例子,drivers目录里区分了各个外设的源文件和配置文件(虽然感觉配置文件分开有点多余)。比方说我们现在想添加spi外设的功能,我们可以用官方的ide生成对应的spi外设代码,然后复制进来。
然后我们还需要调整board这个板级目录,比如修改pin_mux.c文件,添加对应外设的io配置,然后在board.c里修改对应外设的初始化代码即可。
应用层的代码是在source目录下,这里有个main_remote.c文件,这个文件里有main函数,这个函数里有应用层线程的相关代码。
虽然这样拆分代码,会拆分出很多个目录和文件,一眼看去目录非常多,但是一旦习惯这种方式,会发现解耦功能,和后期的维护会非常舒服。
更多回帖