前言
本文基于 RK3588 + Buildroot 编写.
在RK3588开发板环境下,开发者通常利用Buildroot来定制适合RK3588芯片特性的嵌入式Linux系统。通过Buildroot,开发者能够根据实际需求裁剪系统组件、添加特定驱动、配置内核特性,并集成用户应用程序,最终生成最小化且高效的Bootloader、Linux内核镜像、根文件系统镜像(例如rootfs.ext2或 squashfs格式)以及其他必要的启动和系统配置文件。
结合RK3588芯片的强大功能与Buildroot的高度灵活性,开发者能够快速实现针对RK3588平台的嵌入式Linux系统的定制开发,确保系统不仅满足性能要求,还能达到资源占用小、启动速度快、稳定性高的目标,广泛应用于各种工业控制、智能家居、物联网终端等应用场景。
目标:
- 增加自定义软件模块(模块使用Cmake + C/C++, 源文件基于本地)
- 模块单独编译并支持配置默认编译
1. 增加自定义软件模块(模块使用Cmake + C/C++, 源文件基于本地)
增加模块配置:
buildroot/package/test_app/
├── Config.in
└── test.mk
package/test_app/Config.in
config BR2_PACKAGE_TEST_APP bool "TestApp build!" help Add add app for test!
package/test_app/test.mk
TEST_APP_SITE = $(TOPDIR)/test_app TEST_APP_SITE_METHOD = local TEST_APP_INSTALL_STAGING = YES #TEST_APP_CONF_OPTS = -DBUILD_DEMOS=ON $(eval $(cmake-package))
模块C和CMakeLists源码
buildroot/test_app/
├── CMakeLists.txt
└── main.c
test_app/CMakeLists.txt
cmake_minimum_required(VERSION 3.1.0) set(CMAKE_CXX_STANDARD 11) project(test_app) include_directories(inc) set(SOURCES main.c) add_executable(${PROJECT_NAME} ${SOURCES}) install(TARGETS test_app DESTINATION bin)
test_app/main.c
#include <stdio.h> int main() { printf("Test App by add new package!\n"); return 0; }