# RT_thread_test **Repository Path**: LAMP-BOBO/rt_thread_test ## Basic Information - **Project Name**: RT_thread_test - **Description**: 多种芯片的RT_thread测试 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-08-31 - **Last Updated**: 2024-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 基于rt-thread 使用的IDE RT-Thread Studio 开发一个USB 文件保存读写 随便实现拖拽升级 文件系统中有一个bin文件夹里面的固件版本比当前系统高则进行升级 1.点灯开始 PIN 设备 #define LED0_PIN GET_PIN(C, 13) rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); rt_pin_write(LED0_PIN, count % 2); 修改默认工程的时钟配置 //#define BSP_CLOCK_SOURCE ("HSI") //#define BSP_CLOCK_SOURCE_FREQ_MHZ ((int32_t)0) //#define BSP_CLOCK_SYSTEM_FREQ_MHZ ((int32_t)84) #define BSP_CLOCK_SOURCE ("HSE") #define BSP_CLOCK_SOURCE_FREQ_MHZ ((int32_t)25) #define BSP_CLOCK_SYSTEM_FREQ_MHZ ((int32_t)84) 开发板的原理图有问题 W25Q32 接的PB4是错的实际上接到了PA6 w25q ID is:16ef #define W25Q64BVSIG 0XEF16 64/8 = 8M STM32F401CCU6 RAM:64K FLASH:256K RT-Thread Studio ide还有很多设备功能不支持的问题,同时教程比较少,暂时不使用了。 使用MDK5+env的方式来构建项目。 可以手动挂载也可以自动挂载,通过宏RT_USING_DFS_MNTTABLE进行控制。 .\build\keil\Obj\rt-thread.axf: Error: L6218E: Undefined symbol mount_table (referred from dfs_fs.o). 打开这个宏定义要自己定义mount_table变量然后自动进行文件系统挂载。 log打印如果没有输出可能是串口号设置不对 #define RT_CONSOLE_DEVICE_NAME "uart1" 通过menuconfig RT-Thread Kernel/Kernel Device Object/中设置 挂载文件系统出现提示未找到RTC设备,应该是文件系统需要用到RTC设备 通过更改在每个目录下的SConscript脚本文件添加mdk中添加文件和头文件 这个函数目前是发现必须挂载在根目录下才行 dfs_mount(flash_dev->parent.name, "/", "elm", 0, 0) 第一次调用必须要格式把shell命令格式话:mkfs -t elm filesystem 使用FAL是进行flash分区管理的组件.可以管理多片flash还有内外flash. 2023.09.27 添加按键处理 按键 PA0 低电平检测到 key0 使用env工具添加软件包在online packages/peripheral libraries and drivers/botton botton 如果编译报错缺少botton.c 文件 添加完成之后要更新 pkgs --update RT-Thread 最大支持 256 个线程优先级 (0~255),数值越小的优先级越高,0 为最高优先级。 添加USB处理 使用rt-rhread 自带的USB协议在env中开启 /rt-thread/components/drivers/usb RT-Thread 依据 USB2.0 协议规范将 USB 协议栈逻辑高度抽象,支持 host(主机)模式、device(从机)模式 1.该组件允许用户通过宏 RT_USB_DEVICE_COMPOSITE 开启复合功能,无需额外的代码即可对多个设 备类型进行复合,虚拟串口、以太网卡、人体学输入设备、大容量存储设备、微软通用 USB 等 2.开启 USB的BSP驱动(如果没有要手动在Kconfig上面添加) config BSP_USING_USBD bool "Enable USB Device" select RT_USING_USB_DEVICE default n 设置disk名字必须是一个块设备,使用fal分区管理组件之后要分区中创建一个块设备 #define RT_USB_MSTORAGE_DISK_NAME "filesystem" 3.同一个设备不能挂载到文件系统,又挂载到u盘. 4.硬件上要做一个插入检测不然就是需要外部按键. 双发按键,进入u盘模式,上的重启退出u盘模式.