操作系统嵌入式物联网嵌入式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点击查看免费下载W60X 是 Winner Micro联盛德微电子推出的嵌入式 Wi-Fi SoC 芯片RT-Thread 在bsp/w60x下提供了完整的板级支持包BSP集成了 Cortex-M3 内核移植、Wi-Fi 协议栈对接以及 UART/GPIO/SPI/I2C/PWM/ADC/RTC/加密等全套驱动。本文以bsp/w60x/README.md为主线结合仓库内的 Kconfig、rtconfig、驱动源码与固件打包脚本系统讲解该 BSP 的外设支持能力、MDK5/IAR/GCC 三种环境的编译下载流程、ENV 菜单配置方法以及 1M/2M Flash 固件生成的注意事项帮助开发者快速将 RT-Thread 跑起来并开启更多板载资源。一、W60X 芯片与 BSP 概述W60X 芯片集成了 802.11b/g/n Wi-Fi 射频与基带支持 sta、ap、apsta 三种模式片上集成 Cortex-M3 内核与 QFlash 存储器并带出 SDIO、SPI、UART、GPIO、I²C、PWM、I²S、7816 等丰富接口还支持 AES/DES/3DES/RC/SHA1/MD5/CRC 等硬件加解密算法。其集成度高、外围器件少、性价比高特别适合 IoT智能家庭领域的智能产品。bsp/w60x目录结构如下见 bsp/w60x构建入口SConscript、SConstruct、rtconfig.py、rtconfig.h配置菜单Kconfig顶层、bsp/w60x/drivers/Kconfig外设驱动配置工程文件project.uvprojx/project.uvoptxMDK5、project.ewp/project.ewwIAR以及对应的template.*模板固件打包makeimg.py在编译结束后自动调用、makeimg.bat应用与驱动bsp/w60x/applications入口 main.c、bsp/w60x/drivers各外设驱动一键配网示例oneshot/其中rtconfig.h中的PKG_USING_WM_LIBRARIES表明芯片寄存器库wm_libraries以软件包形式由pkgs --update拉取到bsp/w60x/packages/目录下寄存器手册等文档位于其中的packages/wm_libraries/DOC目录。二、外设支持一览BSP 对外设的支持情况如下表对应README.md原始清单并补充了配置入口驱动支持情况备注UART支持UART0/UART1/UART2GPIO支持自动根据芯片型号选择引脚布局SPI支持低速 SPI支持 SPI BUS8/32bit 主机模式WDT支持支持I2C支持硬件 I2C 和软件 I2CRTC支持支持 NTP 同步、支持 AlarmADC支持8 channel ADC 采集CPU 温度采集W601 支持PWM支持5 channel PWM 输出Timer支持5 个 Timers 独立工作Crypto支持硬件 AES/DES/3DES/RC/SHA1/MD5/CRC 加解密算法WiFi支持IEEE802.11b/g/n支持 sta、ap、apsta 模式低功耗支持支持 WiFi 协议节电支持 standby 深度节电从源码结构看上述驱动分别对应 bsp/w60x/drivers 下的drv_uart.c、drv_pin.c、drv_spi.c、drv_wdt.c、drv_i2c.c、drv_rtc.c、drv_adc.c、drv_pwm.c、drv_hw_timer.c、drv_crypto.c、drv_wifi.c、drv_standby.c、drv_flash.c以及引脚映射表pin_map.c。这些驱动大多遵循 RT-Thread 设备框架接口注册为rt_device可供上层 DFS、MSH 等组件直接使用。三、快速上手把系统跑起来本 BSP 同时提供 MDK5 和 IAR 工程并支持 GCC 开发环境。rtconfig.py中通过CROSS_TOOL区分三种工具链gcc默认arm-none-eabi-、keilarmcc、iariccarm可用环境变量RTT_CC、RTT_ROOT、RTT_EXEC_PATH覆盖默认路径。下面以 MDK5 为例介绍完整流程。3.1 编译在 env 工具中进入bsp/w60x目录执行pkgs --update下载必要的软件包主要是wm_libraries芯片库与netutils等联网组件。执行scons --targetmdk5生成 MDK5 工程。双击project.uvprojx打开 MDK5 工程完成程序编译。编译完成后rtconfig.py中的POST_ACTION会自动触发后续处理GCC 环境先objcopy生成rtthread.bin再执行python ./makeimg.pyKeil 环境先fromelf生成rtthread.bin再执行python ./makeimg.pyIAR 环境先ielftool生成rtthread.bin再执行python ./makeimg.py。3.2 固件打包makeimg.pybsp/w60x/makeimg.py 负责把编译产物打包成可烧录固件关键流程如下输出目录固定为./Bin从rtthread.bin开始处理从packages/wm_libraries-*/Tools/中读取version.txt、secboot.img、wm_gzip、makeimg、makeimg_all等工具与素材Linux 下使用wm_gzip.py与对应的 Linux 版可执行文件分别生成1M Flash与2M Flash两套镜像*_1M.img、*_GZ_1M.img、*_SEC_1M.img、*_1M.FLS和*_2M对应版本1M 布局镜像使用偏移参数0与版本号90000 101002M 布局镜像使用偏移3与版本号100000 10100这一差异正对应 README 注意事项中 2M Flash 与 1M Flash 的区别若将脚本顶部make_fal置为True还会把分区表layout 文件写入固件生成*_layout_1M.FLS、*_layout_2M.FLS。3.3 下载BSP 支持两种下载方式JLink 下载将 JLink 连接到开发板点击 MDK5 中的下载按钮即可。JLink 下载之前务必参考packages/wm_libraries/DOC目录下的《WM_W60X_SWD调试配置指南》完成 SWD 引脚与时钟配置。串口下载编译正确无误后Bin文件夹中会生成.img固件。使用支持 Xmodem 协议的串口工具默认 UART0波特率 115200下载固件具体步骤参考packages/wm_libraries/DOC目录下的《WM_W60X_固件升级指导》。3.4 运行结果下载成功之后系统自动运行UART0默认波特率 115200上会输出 RT-Thread 启动 logo下述版本号为示例随实际构建版本变化\ | / - RT - Thread Operating System / | \ 4.0.1 build Mar 21 2019 2006 - 2019 Copyright by rt-thread team启动后默认进入 MSHFinSH命令行。BSP 默认入口 bsp/w60x/applications/main.c 在main中通过rt_wlan_set_mode将wlan0设置为 STA 模式、wlan1设置为 AP 模式为后续联网做准备rtconfig.h中已默认开启RT_WLAN_MSH_CMD_ENABLE可直接在命令行使用wifi join、wifi ap等 MSH 命令操作 Wi-Fi。四、进阶使用menuconfig 开启更多外设BSP 默认只开启 GPIO、UART0 和 WiFi 功能见 bsp/w60x/rtconfig.h 中BSP_USING_UART0、BSP_USING_PIN、BSP_USING_WIFI等宏。如需使用其他外设利用 env 工具配置即可在bsp/w60x下打开 env 工具输入menuconfig配置工程保存后退出输入pkgs --update更新软件包输入scons --targetmdk5或scons --targetiar重新生成工程。菜单结构与 bsp/w60x/drivers/Kconfig 一一对应核心配置项如下。4.1 SOC 类型与板卡选择W60x Device config菜单中SOC type可选SOC_W600_A8xx默认或SOC_W601_A8xxBoard typeW600 对应W600_EV_BOARDW601 对应W601_IOT_BOARD另有W60X_CUSTOM_BOARD自定义板。SOC 型号决定引脚布局与部分外设可用性如 ADC 仅在 W601 上提供BSP_USING_ADC菜单也只会在选择 W601 时出现。4.2 串口 UARTBSP_USING_UART默认开启并联动选择BSP_USING_UART0在 W600 EV 板/自定义板上可选UART1在 W601 IoT 板/自定义板上可选UART2每个额外串口可配置波特率默认 115200。控制台默认挂接在uart0RT_CONSOLE_DEVICE_NAME uart0。4.3 WiFi 与网络BSP_USING_WIFI默认开启会自动联动选择RT_USING_WIFIWi-Fi 设备框架与RT_USING_LWIP网络协议栈PKG_USING_NETUTILS与PKG_NETUTILS_NTPNTP 时间同步RT_USING_RTCRTC未使能硬件 RTC 时回退为软件 RTC。rtconfig.h中可看到对应的联网默认值STA 设备名wlan0、AP 设备名wlan1、SSID/密码最大长度 32、扫描与连接等待 10000ms、自动连接周期 2000mslwip 默认静态地址192.168.1.30、网关192.168.1.1、掩码255.255.255.0并默认开启 DHCP 服务器192.168.169.1用于 AP 模式。Wi-Fi 驱动的实际实现见 bsp/w60x/drivers/drv_wifi.c其基于 RT-Threadrt_wlan_dev框架封装rt_wlan_dev_ops将 wpa_supplicant/hostapd 的扫描、连接、AP 管理等能力注册为wlan0/wlan1两个设备。4.4 ADCW601BSP_USING_ADC仅在 W601 型号下可选开启后可逐个使能 ADC 通道 18并可选USING_CPU_TEMP采集 CPU 温度。4.5 PWMBSP_USING_PWM默认关闭开启后可逐个使能 5 个 PWM 通道每个通道可单独配置输出引脚默认引脚为通道 1→23、通道 2→22、通道 3→21、通道 4→37、通道 5→19。对应驱动为drv_pwm.c。4.6 I2C 与软件 I2CBSP_USING_I2C硬件 I2C开启后可配置频率WM_HW_I2C_FREQ默认 200000 HzBSP_USING_SOFT_I2C软件 I2C可进一步使能swi2c1SCL23、SDA24与swi2c2SCL25、SDA24引脚号均可在菜单中修改。4.7 其他外设BSP_USING_SPI低速 SPI 总线可配置总线名默认spi0支持 8/32bit 主机模式BSP_USING_WDT看门狗BSP_USING_RTC硬件 RTC可附带BSP_USING_ALARM闹钟功能BSP_USING_CLOCK_TIMER硬件 Timer可独立使能 Timer1Timer5BSP_USING_CRYPTO硬件加解密开启后自动选择 AESECB/CBC、MD5、SHA1、RNG、CRC多项式 07/8005/1021/04C11DB7与大数运算模块BSP_USING_STANDBYstandby 深度节电WM_USING_ONESHOTExternal Libraries 菜单Winner Micro 一键配网库默认开启并附带 Demo可用于手机热点快连场景。五、注意事项区分 1M 与 2M Flash使用 W600 芯片时请注意芯片 Flash 的大小区分 2M Flash 和 1M Flash。更多信息请查看packages/wm_libraries/DOC的文档《WM_W60X_2M_Flash布局说明》《WM_W60X_2M_Flash参数区使用说明》《WM_W60X_2M_Flash固件生成说明》从makeimg.py可以看到固件打包会同时生成_1M与_2M两套.img/.FLS镜像两者在分区偏移与版本号参数上不同1M偏移 0、版本90000 101002M偏移 3、版本100000 10100。因此烧录前必须确认板载 Flash 容量选择与之匹配的固件文件避免分区错位导致启动失败或参数区损坏。六、源码导读驱动与板级初始化若想深入了解 BSP 的实现可沿以下路径阅读板级初始化 bsp/w60x/drivers/board.c定义固件版本FirmWareVer、硬件版本HwVer、系统节拍HZ RT_TICK_PER_SECOND并将芯片库的内存分配、调试接口等桥接到 RT-Thread 的rt_malloc/rt_free与日志系统串口驱动 bsp/w60x/drivers/drv_uart.c注册 UART0/1/2 设备支持 DMA 接收RT_SERIAL_USING_DMAWi-Fi 驱动 bsp/w60x/drivers/drv_wifi.c对接 wpa_supplicant/hostapd提供rt_wlan_dev操作集引脚映射 bsp/w60x/drivers/pin_map.c 与 bsp/w60x/drivers/pin_map.h根据 SOC 型号自动选择引脚布局配合drv_pin.c实现rt_pin框架链接脚本 bsp/w60x/drivers/linker_scriptsGCC 使用link.lds、armcc 使用link.sct、IAR 使用link.icf。七、结语bsp/w60x是一个功能完整的 Wi-Fi SoC 板级支持包开箱即用的 MDK5/IAR/GCC 工程、自动化的固件打包脚本、按 Kconfig 菜单逐项开启的外设驱动以及基于 RT-Thread 设备框架的标准化实现让开发者可以在 W60XW600/W601上快速完成从点亮串口到Wi-Fi 联网、NTP 校时、AP/STA 切换的 IoT 应用开发。更多寄存器级细节与 Flash 布局规范请结合pkgs --update生成的packages/wm_libraries/DOC文档查阅。本文档基于 bsp/w60x/README.md 及仓库源码整理BSP 的后续维护与问题反馈可参考 README 中的联系人信息RT-Thread 团队及 Winner Micro 开源组织。赞分享操作系统嵌入式物联网嵌入式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 EK-RA2E2 板级支持包从编译下载到 FSP/ENV 外设配置把 RT-Thread 跑上瑞萨 RA2E2 (Cortex-M23)RT Thread EK RA2E2 板级支持包从编译下载到 FSP/ENV 外设配置把 RT Thread 跑上瑞萨 RA2E2 Cortex M23 本操作系统嵌入式物联网嵌入式OSRTOSRT-Thread N32L436-EVB 板级支持包板载资源、编译链与外设驱动配置实战指南RT Thread N32L436 EVB 板级支持包板载资源、编译链与外设驱动配置实战指南 本文基于 RT Thread 官方 BSP 文档 README.操作系统嵌入式物联网嵌入式OSRTOSRT-Thread LPC55S69-EVK 板级支持包实战指南环境搭建、编译烧写与外设驱动配置RT Thread LPC55S69 EVK 板级支持包实战指南环境搭建、编译烧写与外设驱动配置 LPC55S69 EVK 是恩智浦NXP基于 Corte操作系统嵌入式物联网嵌入式OSRTOS上一篇Rust函数指针安全实践unsafe-code-guidelines中的高级话题下一篇DoubleQoLMod-zh重塑《工业队长》游戏体验的智能优化方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考