操作系统嵌入式物联网嵌入式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 为 STM32F103 ATK-NANO 开发板提供的 BSP板级支持包说明文档为核心系统讲解该 BSP 的板载资源、外设支持现状、MDK5/IAR/GCC 多工具链下的快速上手流程以及基于 ENV 工具的 menuconfig 进阶配置方法。该文档同时作为bsp/stm32/libraries/templates/stm32l1xx/系列模板的参考说明读者阅读完本文后可以独立完成从编译下载到外设驱动开启的完整 BSP 使用闭环并理解背后对应的 Kconfig 配置项与底层源码实现。开发板与 BSP 简介STM32F103 ATK-NANO 是正点原子推出的一款基于 ARM Cortex-M3 内核的开发板最高主频 72MHz板载资源丰富可以充分发挥 STM32F103 的芯片性能。RT-Thread 开发团队为该开发板提供了完整的 BSP说明文档位于 模板目录 README该文档同时作为 STM32L1xx 系列 BSP 模板的参考面向该开发板的实际 BSP 工程位于 bsp/stm32/stm32f103-atk-nano。本文档主要内容分为三个部分开发板资源介绍BSP 快速上手将 RT-Thread 运行到开发板上进阶使用方法驱动更多板载外设通过快速上手章节开发者可以很快将 RT-Thread 运行在开发板上看到实验效果通过进阶使用章节可以借助 ENV 工具打开更多板载资源的驱动实现更多高级功能。开发板外观如下图所示板载资源一览该开发板常用板载资源如下MCUSTM32F103RBT6主频 72MHz128KB FLASH、20KB RAM外部存储W25Q16 SPI FLASH2MB、24C02 EEPROM常用外设LED8 个红色PC0-PC7按键4 个其中 KEY_UP 兼具唤醒功能PA0另有 KEY0PC8、KEY1PC9、KEY2PD2常用接口USB 转串口、DS18B20/DHT11 接口、USB SLAVE调试接口板载 ST-LINK SWD 下载外设支持情况本 BSP 目前对外设的支持情况如下表所示板载外设支持情况备注USB 转串口支持使用 UART1SPI Flash支持使用 SPI1电位器支持使用 ADC1片上外设支持情况备注GPIO支持PA0, PA1...PD2 --- PIN: 0, 1...63UART支持UART1/2/3SPI支持SPI1/2I2C支持软件 I2CRTC支持支持外部晶振和内部低速时钟WDT支持ADC支持FLASH支持已适配 FAL扩展模块支持情况备注DS18B20/DHT11暂不支持说明GPIO 的引脚编号映射遵循 RT-Thread PIN 设备驱动框架PA0~PD2 依次对应 PIN 0~63应用层可通过rt_pin_write/rt_pin_read等标准接口操作而无需关心寄存器地址。这些外设开关在模板的 board/Kconfig 中有对应的配置项支撑例如BSP_USING_SPI_FLASHW25Q16挂载于 SPI2、BSP_USING_EEPROM软件 I2C1SCL/SDA 默认引脚 22/23、BSP_USING_POTADC1等默认均为关闭需在进阶配置阶段手动开启。快速上手本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程并且支持 GCC 开发环境。下面以 MDK5 开发环境为例介绍如何将系统运行起来。硬件连接使用数据线连接开发板到 PC打开电源开关。编译下载双击project.uvprojx文件打开 MDK5 工程编译并下载程序到开发板。工程默认配置使用 JLink 下载程序在通过 JLink 连接开发板的基础上点击下载按钮即可下载程序到开发板。需要注意在执行编译工作前请先打开 ENV 工具执行以下指令该指令用于拉取必要的 STM32 HAL 库及 CMSIS 库否则无法通过编译pkgs --update运行结果下载程序成功之后系统会自动运行观察开发板上 LED 的运行效果红色 LED0 会周期性闪烁。连接开发板对应串口到 PC在终端工具里打开相应的串口波特率 115200、8 位数据、1 位停止位、无校验即 115200-8-1-N复位设备后可以看到 RT-Thread 的输出信息\ | / - RT - Thread Operating System / | \ 3.1.1 build Nov 19 2018 2006 - 2018 Copyright by rt-thread team msh 注正点原子开发板在使用终端工具如 PuTTY、XShell 时会出现系统不能启动的问题推荐使用串口调试助手如 sscom。msh 提示符出现后即表示 RT-Thread 的 FinSH 命令行已就绪可以直接在命令行中输入 RT-Thread 命令进行交互验证。源码佐证LED 闪烁与串口初始化LED 周期性闪烁的逻辑位于 applications/main.c#include rtthread.h #include rtdevice.h #include board.h /* defined the LED0 pin: PC0 */ #define LED0_PIN GET_PIN(B, 7) int main(void) { int count 1; /* set LED0 pin mode to output */ rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); while (count) { rt_pin_write(LED0_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED0_PIN, PIN_LOW); rt_thread_mdelay(500); } return RT_EOK; }该示例演示了 RT-Thread PIN 设备框架的标准用法先通过rt_pin_mode将引脚配置为输出模式再循环调用rt_pin_write以 500ms 间隔翻转电平形成周期闪烁效果。串口控制台设备在 rtconfig.h 中通过RT_CONSOLE_DEVICE_NAME uart1指定为 UART1与板载 USB 转串口使用的 UART1 一致因此上电后系统日志会直接输出到该串口。进阶使用此 BSP 默认只开启了 GPIO 和串口 1 的功能这一点可由 rtconfig.h 中BSP_USING_GPIO、BSP_USING_UART、BSP_USING_UART1三个宏得到验证。如果需要使用 FLASH 等更多高级功能需要利用 ENV 工具对 BSP 进行配置步骤如下在 bsp 目录下打开 ENV 工具。输入menuconfig命令配置工程配置好之后保存退出。输入pkgs --update命令更新软件包。STM32 HAL/CMSIS 驱动由软件包提供首次从模板创建 BSP 或修改配置后需要先执行该命令下载依赖如果没有拉取到软件包请先执行pkgs --upgrade更新软件包索引再重新执行pkgs --update。输入scons --targetmdk4/mdk5/iar命令重新生成工程。关于外设驱动的具体使用方法如 SPI FLASH 挂载、软件 I2C 使用等请参考 STM32 系列 BSP 外设驱动使用教程。进阶配置背后的 Kconfig 结构menuconfig的配置界面由 board/Kconfig 定义整体分为四层结构Hardware Drivers Config芯片型号选择如SOC_STM32L151CB默认 y对应 STM32L151xB 系列Onboard Peripheral Drivers板载外设开关如 USB 转串口UART1、USBD 设备、I2C EEPROM软件 I2C1、SPI FLASHW25Q16/SPI2、电位器ADC1On-chip Peripheral Drivers片上外设开关包括 GPIO、UART1/2/3每路可单独开启 RX DMA、定时器 TIM2/3/4、PWM3 双通道、SPI1/2支持 TX/RX DMA、软件 I2C1SCL/SDA 引脚号可配、ADC1、片上 FLASH、RTC时钟源可在 LSE 外部晶振与 LSI 内部低速时钟之间选择、看门狗 WDTBoard extended module Drivers板级扩展模块当前为空。以 UART 为例其默认开启 UART1对应控制台设备UART2/UART3 默认关闭每路 UART 的 RX DMA 需要依赖RT_SERIAL_USING_DMA才能出现并可配置。RTC 的时钟源通过choice BSP_RTC_LS_SEL提供 LSE/LSI 二选一默认使用 LSE与 board.c 中SystemClock_Config将 RTC 时钟源配置为 LSE 的实现相吻合。时钟配置的源码实现board/board.c 中的SystemClock_Config完成了系统时钟的初始化以 HSI 为 PLL 源PLLMUL6、PLLDIV3 得到系统主频同时使能 LSE 低速外部晶振并将其选为 RTC 时钟源。链接脚本GCC 使用board/linker_scripts/link.ldsMDK 使用link.sctIAR 使用link.icf以及内存布局定义位于 board/board.h其中STM32_FLASH_SIZE128KB与STM32_SRAM_SIZE16KB等宏与芯片型号严格对应。多工具链切换rtconfig.py 集中定义了构建工具链的选择逻辑通过环境变量RTT_CC可切换gcc/keil/iar三种工具链配合RTT_ROOT、RTT_EXEC_PATH指定源码根目录与编译器路径。三种工具链分别生成不同的目标文件格式elf/axf/out并通过POST_ACTION输出rtthread.bin烧写镜像。因此在进阶使用第 4 步中scons --targetmdk4/mdk5/iar会依据当前选择的工具链重新生成对应 IDE 工程实现 GCC 命令行构建与 IDE 工程的无缝切换。注意事项首次编译前务必先执行pkgs --update拉取 STM32 HAL/CMSIS 依赖软件包否则工程无法通过编译若拉取失败先执行pkgs --upgrade更新软件包索引。工程默认使用 JLink 下载程序下载前需确保 JLink 已正确连接开发板板载 ST-LINK SWD 接口同样可用于下载调试。串口参数固定为 115200-8-1-N正点原子开发板使用 PuTTY、XShell 等终端软件时可能出现系统无法启动的问题建议改用串口调试助手类工具。外设驱动默认只开启 GPIO 与 UART1其余板载资源SPI FLASH、EEPROM、电位器等需通过 ENV 工具配置后重新生成工程方可使用。联系人信息维护人guozhanxin若在使用过程中遇到问题可结合 STM32 系列 BSP 外设驱动使用教程 与仓库中bsp/stm32/docs目录下的其他文档如 STM32系列BSP制作教程、STM32系列驱动介绍进一步排查。赞分享操作系统嵌入式物联网嵌入式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 N32H497ZGL7 开发板 BSP 上手指南从快速启动到外设深度配置RT Thread N32H497ZGL7 开发板 BSP 上手指南从快速启动到外设深度配置 本篇指南以 RT Thread 仓库中 N32H497ZGL7_操作系统嵌入式物联网嵌入式OSRTOSRT-Thread STM32F103 ATK-NANO BSP 快速上手与进阶配置指南RT Thread STM32F103 ATK NANO BSP 快速上手与进阶配置指南 RT Thread 官方为正点原子 ATK NANO STM32F10操作系统嵌入式物联网嵌入式OSRTOSES32VF2264 开发板 RT-Thread BSP 快速上手与外设驱动配置指南ES32VF2264 开发板 RT Thread BSP 快速上手与外设驱动配置指南 ES PDS ES32VF2264 是上海东软载波微电子EastSoft操作系统嵌入式物联网嵌入式OSRTOS上一篇JiaoZiVideoPlayer全息投影应用未来显示技术的视频播放下一篇3步实现Knockout.js组件可视化从源码到Storybook文档创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
