操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载本指南以 RT-Thread 仓库中 bsp/nxp/mcx/mcxc/frdm-mcxc444 板级支持包BSP为对象介绍如何基于 NXP 官方低成本评估板 FRDM-MCXC444MCX C444 MCUARM Cortex-M0 内核完成 RT-Thread 的开发环境准备、编译下载与首例运行。读完本文你将掌握从零搭建 Keil 工程、通过 CMSIS-DAP 烧录固件、配置串口终端观察 RT-Thread 启动信息以及理解该 BSP 的源码结构与外设驱动框架的完整流程。开发板概览FRDM-MCXC444 与 MCX C444 MCUFRDM-MCXC444 是 NXP 官方推出的低成本评估板核心为 MCX C444 MCU。该板面向快速原型验证设计采用紧凑、可扩展的板型通过业界标准的排针接口开放 MCU 全部 I/O 引脚并得到 MCUXpresso 开发环境以及 RT-Thread 仓库中配套的 Keil/IAR/GCC 工程的完整支持。板上核心特性包括SLCD 段式 LCD 驱动板载段式 LCD 显示屏可直接驱动验证段式 LCD 外设Arduino 兼容扩展排针可复用 Arduino 生态的扩展板与库MCUXpresso IDE 支持除 RT-Thread 提供的 Keil 工程外也可用 NXP 官方 IDE 二次开发。上图为该开发板的板载资源框图展示了核心芯片 MCXC444VLH64 脚 LQFP 封装与板载 USB、扩展排针、RGB LED、SLCD 等外设之间的信号连接关系。更多硬件细节可参考 NXP 官方文档FRDM-MCXC444 开发板页面。板载资源与驱动覆盖情况源码视角在 RT-Thread 仓库中该 BSP 位于 bsp/nxp/mcx/mcxc/frdm-mcxc444其硬件驱动由同级的 bsp/nxp/mcx/mcxc/libraries/drivers 目录提供已实现的驱动包括drv_uart.c/drv_uart.h串口驱动控制台默认使用 uart0drv_pin.c/drv_pin.hGPIO/PIN 驱动LED 与按键示例依赖drv_i2c.cI2C 驱动drv_spi.c/drv_spi.hSPI 驱动drv_rtc.c/drv_rtc.hRTC 驱动drv_wdt.c/drv_wdt.h看门狗驱动。板级初始化逻辑位于 bsp/nxp/mcx/mcxc/frdm-mcxc444/board/board.c其中rt_hw_board_init()依次完成各 GPIO 端口时钟使能、BOARD_InitBootClocks()时钟初始化、BOARD_InitPins()引脚复用配置、SysTick 定时器配置随后调用rt_components_board_init()完成组件初始化并通过rt_console_set_device()将控制台绑定到RT_CONSOLE_DEVICE_NAME即 uart0。准备工作环境、源码与硬件连接要在 FRDM-MCXC444 上运行 RT-Thread 示例程序需要完成以下三方面准备1. 开发环境Keil MDK V5并安装MCXC444 器件支持包Pack。RT-Thread 仓库为该 BSP 提供了现成的 Keil 工程文件project.uvprojx 与 project.uvoptx可直接打开编译除 Keil 外rtconfig.py 中还预留了 GCCarm-none-eabi-链接脚本为 MCXC444_flash.ld与 IARiccarm链接脚本为 MCXC444_flash.icf两条工具链配置可通过设置环境变量RTT_CCgcc或RTT_CCiar切换。2. 源码获取从 RT-Thread 仓库下载最新稳定版源码zip 包并进入bsp/nxp/mcx/mcxc/frdm-mcxc444目录。需要说明的是MCX C 系列的底层 CMSIS 驱动HAL 库以软件包形式引入从 rtconfig.h 可以看到PKG_USING_NXP_MCX_CMSIS_DRIVER与PKG_USING_NXP_MCX_CMSIS_DRIVER_LATEST_VERSION宏因此首次编译前必须先执行软件包更新命令拉取依赖库见下文。3. 硬件连接使用 USB 数据线将开发板的 USB 接口与 PC 相连即可同时获得供电、CMSIS-DAP 调试下载与虚拟串口功能。运行第一个示例程序编译与下载关键前置步骤拉取依赖软件包编译前必须先打开 RT-Thread ENV 环境在rt-thread/bsp/nxp/mcx/mcxc/frdm-mcxc444目录下执行pkgs --update该命令会根据 Kconfig 与packages目录中的配置拉取 NXP MCX CMSIS 驱动软件包等必要库。若跳过此步编译将因缺少 HAL 头文件与实现而失败。编译与烧录步骤进入rt-thread\bsp\nxp\mcxc\frdm-mcxc444文件夹双击打开 Keil 工程文件 project.uvprojx在 Keil 中执行编译Build点击下载Download按钮将固件烧录至开发板。提示工程默认使用CMSIS-DAP调试器下载程序对应工程中的 project.ewd 调试描述文件与板载 MCU-Link 调试器。下载完成后程序会自动运行。烧录完成后观察开发板运行状态如果程序没有自动运行可按下板上的复位按键重新启动。正常运行后板载 LED 会周期性闪烁如下图所示示例程序做了什么LED 闪烁与按键中断首例程序的源码位于 bsp/nxp/mcx/mcxc/frdm-mcxc444/applications/main.c逻辑非常清晰#define LED_PIN ((4*32)31) /* PTD31板载 LED */ #define BUTTON_PIN ((2*32)3) /* PTC3板载按键 SW2 */ rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT); /* LED 引脚设为输出 */ rt_pin_mode(BUTTON_PIN, PIN_MODE_INPUT_PULLUP); /* 按键引脚设为上拉输入 */ rt_pin_attach_irq(BUTTON_PIN, PIN_IRQ_MODE_FALLING, sw2_pin_cb, RT_NULL); rt_pin_irq_enable(BUTTON_PIN, 1); while (1) { rt_pin_write(LED_PIN, PIN_HIGH); /* LED 点亮 */ rt_thread_mdelay(500); /* 延时 500ms */ rt_pin_write(LED_PIN, PIN_LOW); /* LED 熄灭 */ rt_thread_mdelay(500); }该示例通过 RT-Thread PIN 设备框架驱动板载 LED 以 1Hz 周期闪烁同时注册了 SW2 按键的下降沿中断回调——按下按键时会在串口输出sw2 pressed。程序启动时还会根据所用编译器打印工具链版本信息armclang/armcc/iccarm/gcc并输出NXP MCXC444标识。main()由 RT-Thread 的RT_USING_USER_MAIN机制自动创建主线程运行栈大小 2048 字节见 rtconfig.h。串口终端配置与观察 RT-Thread 启动信息将开发板的串口板载虚拟串口连接到 PC打开任意串口终端软件并按以下参数建立连接参数取值波特率Baud rate115200数据位Data bits8停止位Stop bits1校验位ParityNone复位开发板后串口终端应输出 RT-Thread 启动信息形如\ | / - RT - Thread Operating System / | \ 5.2.0 build Sep 4 2024 10:46:13 2006 - 2024 Copyright by RT-Thread team using armclang, version: 6190004 NXP MCXC444 msh 其中前三行是 RT-Thread 的 ASCII 标志与版本号本例为 5.2.0构建时间戳显示编译日期using armclang, version: 6190004一行来自 main.c 中对__ARMCC_VERSION的打印说明当前工程使用 Keil 的 armclang 编译器版本 6190004NXP MCXC444为示例程序的板卡标识输出msh 是 RT-Thread 内置 FinSH/MSH 命令行 Shell 提示符出现即表示系统已正常启动可输入 RT-Thread 命令进行交互。深入理解 BSP工程结构与外设配置目录结构与启动流程该 BSP 的目录组织如下applications用户应用入口main.c与 SConscript 编译脚本board板级初始化board.c/board.h、引脚复用pin_mux.c、时钟配置clock_config.c以及三种工具链的链接脚本MCXC444_flash.ld / MCXC444_flash.icf / MCXC444_flash.scfboard/Kconfig片上外设驱动配置菜单libraries/driversUART、PIN、I2C、SPI、RTC、WDT 等 RT-Thread 设备驱动框架适配层project.uvprojx / project.ewpKeil 与 IAR 工程文件rtconfig.h / rtconfig.pyRT-Thread 配置头文件与 SCons 构建配置。从源码结构看系统启动链路为复位向量 → 启动文件清 BSS、初始化堆栈→rt_hw_board_init()时钟/引脚/SysTick/堆初始化见 board/board.c→ RT-Thread 内核启动 → 组件自动初始化RT_USING_COMPONENTS_INIT→ 创建main主线程运行 applications/main.c。内核与组件关键配置rtconfig.h 中与本 BSP 直接相关的关键配置包括架构SOC_MCX、ARCH_ARM_CORTEX_M0对应 MCXC444 的 Cortex-M0 内核时钟节拍RT_TICK_PER_SECOND为 1000Hz控制台RT_USING_CONSOLERT_CONSOLE_DEVICE_NAME uart0即启动信息经由 uart0 输出主线程RT_USING_USER_MAINRT_MAIN_THREAD_STACK_SIZE 2048优先级 10FinSH/MSHRT_USING_MSH、FINSH_USING_MSHShell 线程栈 4096 字节支持历史记录与命令补全设备驱动串口RT_USING_SERIAL DMA、I2CRT_USING_I2C 位操作、SPIRT_USING_SPI ISR、PWM、RTC、PIN 均已开启与 board/Kconfig 中的菜单项一一对应。外设驱动的开启与裁剪如需调整外设可通过 board/Kconfig 在 ENV 的 menuconfig 界面中勾选/取消对应选项例如BSP_USING_PIN默认开启GPIO/PIN 驱动示例 LED 与按键依赖BSP_USING_UART默认开启UART0/UART1 均可选串口驱动UART0 为控制台BSP_USING_I2C默认开启I2C0/I2C1I2C 总线驱动BSP_USING_SPI默认开启SPI0/SPI1 默认关闭SPI 总线驱动BSP_USING_RTC默认开启实时时钟BSP_USING_WDT默认关闭看门狗BSP_USING_PWM默认开启含板载绿色 LED 的 PWM 通道 pwm0 channel 3BSP_USING_CLOCK_TIMER默认开启系统时钟定时器。每个菜单项都会select对应的 RT-Thread 组件宏如BSP_USING_UART选中RT_USING_SERIAL重新生成工程后即可生效实现按需裁剪。继续学习与参考资料完成 RT-Thread 快速上手后可继续深入学习 RT-Thread 内核机制线程调度、IPC、内存管理等对应的内核学习资料位于仓库 documentation/3.kernel/INDEX.md。如需查阅更多 NXP MCX 系列 BSP可浏览 bsp/nxp/mcx 目录其中包含 mcxa、mcxc、mcxe、mcxn 四个系列的多个开发板支持包本板的同级参考实现可对比 bsp/nxp/mcx/mcxc/frdm-mcxc162。NXP 官方关于 FRDM-MCXC444 的动手教程与硬件资料可在 NXP FRDM-MCXC444 开发板官方页面获取。赞分享操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载相关推荐DownKyi终极指南5步轻松搞定B站视频下载与离线管理DownKyi终极指南5步轻松搞定B站视频下载与离线管理 还在为无法保存喜欢的B站视频而烦恼吗DownKyi哔哩下载姬作为一款免费开源的B站视频下载工具操作系统嵌入式物联网嵌入式OSRTOSWasp Query 全解用声明式代码实现跨端统一、全栈类型安全的数据查询Wasp Query 全解用声明式代码实现跨端统一、全栈类型安全的数据查询 本篇基于 Wasp 官方文档version 0.12 文档集中 Queries操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 快速上手 NXP FRDM-MCXN947HelloWorld 示例的编译、下载与运行RT Thread 快速上手 NXP FRDM MCXN947HelloWorld 示例的编译、下载与运行 本篇技术指南以 RT Thread 仓库中 FRD操作系统嵌入式物联网嵌入式OSRTOS上一篇Learning OpenCV 4 Computer Vision with Python 3初学者快速入门指南与安装教程下一篇Cycle.js状态组合模式构建复杂响应式应用的状态抽象创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考