From ecab80a505310a57714b95b710bf35f61088c915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=B0=89=E6=81=A9?= Date: Tue, 18 Aug 2026 09:26:59 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20day2=20=E9=BB=84=E5=B0=89=E6=81=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.config.old" | 449 ++++++++++++++++++ .../.sconsign.dblite" | 0 .../rt-thread/tools/building.pyc" | Bin 0 -> 27138 bytes .../rt-thread/tools/cscope.py" | 61 +++ .../rt-thread/tools/defconfig.pyc" | Bin 0 -> 1402 bytes .../rt-thread/tools/eclipse.pyc" | Bin 0 -> 14884 bytes .../rt-thread/tools/gcc.pyc" | Bin 0 -> 5473 bytes .../rt-thread/tools/kconfiglib.pyc" | Bin 0 -> 177776 bytes .../rt-thread/tools/menuconfig.pyc" | Bin 0 -> 10031 bytes .../rt-thread/tools/mkdist.pyc" | Bin 0 -> 11660 bytes .../rt-thread/tools/options.pyc" | Bin 0 -> 2955 bytes .../rt-thread/tools/rt_studio.pyc" | Bin 0 -> 37597 bytes .../rt-thread/tools/utils.pyc" | Bin 0 -> 6728 bytes .../rtconfig.pyc" | Bin 0 -> 845 bytes ...4\345\244\251 \347\254\224\350\256\260.md" | 147 ++++++ 15 files changed, 657 insertions(+) create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/.config.old" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/.sconsign.dblite" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/building.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/cscope.py" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/defconfig.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/eclipse.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/gcc.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/kconfiglib.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/menuconfig.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/mkdist.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/options.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/rt_studio.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/utils.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rtconfig.pyc" create mode 100644 "2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \347\254\224\350\256\260.md" diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/.config.old" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/.config.old" new file mode 100644 index 0000000..04ef7fe --- /dev/null +++ "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/.config.old" @@ -0,0 +1,449 @@ +# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +CONFIG_RT_USING_TIMER_SOFT=y +CONFIG_RT_TIMER_THREAD_PRIO=4 +CONFIG_RT_TIMER_THREAD_STACK_SIZE=512 +CONFIG_RT_DEBUG=y +CONFIG_RT_DEBUG_COLOR=y +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_SIGNALS is not set +# end of Inter-Thread communication + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +# CONFIG_RT_USING_MEMHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMTRACE is not set +CONFIG_RT_USING_HEAP=y +# end of Memory Management + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=256 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart1" +# end of Kernel Device Object + +CONFIG_RT_VER_NUM=0x40002 +# end of RT-Thread Kernel + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set +# end of C++ features + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_CMD_SIZE=80 +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_USING_MSH_DEFAULT=y +CONFIG_FINSH_USING_MSH_ONLY=y +CONFIG_FINSH_ARG_MAX=10 +# end of Command shell + +# +# Device virtual file system +# +# CONFIG_RT_USING_DFS is not set +# end of Device virtual file system + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set +# end of Using USB +# end of Device Drivers + +# +# POSIX layer and C standard library +# +# CONFIG_RT_USING_LIBC is not set +# CONFIG_RT_USING_PTHREADS is not set +CONFIG_RT_LIBC_USING_TIME=y +# end of POSIX layer and C standard library + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set +# end of Socket abstraction layer + +# +# Network interface device +# +# CONFIG_RT_USING_NETDEV is not set +# end of Network interface device + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set +# end of light weight TCP/IP stack + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set +# end of AT commands +# end of Network + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS is not set +# end of VBUS(Virtual Software BUS) + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# end of Utilities + +# CONFIG_RT_USING_LWP is not set +# end of RT-Thread Components + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT is not set +# CONFIG_PKG_USING_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_LIBMODBUS is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_NANOPB is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set +# end of Marvell WiFi + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# end of Wiced WiFi + +# CONFIG_PKG_USING_RW007 is not set +# end of Wi-Fi + +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX is not set +# CONFIG_PKG_USING_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOTHUB is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# end of IoT Cloud + +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA is not set +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# end of IoT - internet of things + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# end of security packages + +# +# language packages +# +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set +# end of language packages + +# +# multimedia packages +# +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set +# end of multimedia packages + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set +# CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_URLENCODE is not set +# end of tools packages + +# +# system packages +# +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_PERSIMMON is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# end of system packages + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_SENSORS_DRIVERS is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_NRF5X_SDK is not set +# CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_TOUCH_DRIVERS is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# end of peripheral libraries and drivers + +# +# miscellaneous packages +# +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# end of samples: kernel and components samples + +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_UKAL is not set +# end of miscellaneous packages +# end of RT-Thread online packages + +# +# samples: kernel and components samples +# +# end of samples: kernel and components samples diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/.sconsign.dblite" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/.sconsign.dblite" new file mode 100644 index 0000000..e69de29 diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/building.pyc" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/building.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..844ac616f286f18954d0bd78bf3c4806410f6673 GIT binary patch literal 27138 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 literal 0 HcmV?d00001 diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/cscope.py" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/cscope.py" new file mode 100644 index 0000000..daeda52 --- /dev/null +++ "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/cscope.py" @@ -0,0 +1,61 @@ +# +# File : cscope.py +# This file is part of RT-Thread RTOS +# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Change Logs: +# Date Author Notes +# 2015-01-20 Bernard Add copyright information +# + +import os + +def _get_src(project): + li = [] + for group in project: + for f in group['src']: + li.append(os.path.normpath(f.rfile().abspath)) + return li + +def _get_header_dir(dirp): + li = [] + for root, dirs, files in os.walk(dirp): + for d in dirs: + fpath = os.path.join(root, d) + li.extend(_get_header_dir(fpath)) + + for f in files: + if f[-2:] == '.h': + fpath = os.path.join(root, f) + li.append(os.path.normpath(fpath)) + return li + +def _get_header(project): + li = [] + for g in project: + for d in g.get('CPPPATH', []): + li.extend(_get_header_dir(d)) + return li + +def CscopeDatabase(project): + files = set(_get_src(project) + _get_header(project)) + with open('cscope.files', 'w') as db: + db.write('-k\n-q\n') + db.write('\n'.join(files)) + db.flush() # let cscope see the full content + os.system('cscope -b') + diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/defconfig.pyc" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/defconfig.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..f51fed1d7feda1198caeabd2c2efec1f905c8615 GIT binary patch literal 1402 zcmb_cTW`}a6h29}cFj5v2oMqy@&nR}wDysQ2@qpr7fsqwR$it`ksG_MyWC_utA@50 z#v6Zt|H%)4bDZp=G2TdI=lJuve#cJZ*Gll_^xG_k`tkAm0f*VZNdO$|VH252 zEE5wQomFWVekz3=SHb%MRwNm&d6`(2mzE+EAsJ64!&+DSmF8-nZ7`w6W2t3!OQq(b z;D*>xSwIx*Zyp|O@9jj@hso?z={!rx@RV!CM~UnQ>Nh?IF}4XBIGQ*%ahM-CS%8^q zISJTrA1rm(zW_K#1iRj##*0M|O%N@(^n9=0SOU=o5x9-z>y1S^8y6nfCd^uJ?!jyc z_u#^Zb021HhXjP|>=J;6fFhp4qizTDIj|3L9_Kpc)=C}43D#?u5fjqHS`~DVOdHp| z-bqE6ZMj`XtdsX^d;#&PObYV~g^%1IUDb}`optMGtY5*eF=v2VPE%<)(r8x@t{DCj zZVdJg56p8!_Wp5rTpe}^HMpJ>TpMX0;9^5hN@~n!LbQE>P{`+7H&yLos@qqEyF#K! zPB8CeQp+D!s1_(IM1R1xi$w<^Fq$WH2D}so=BYX><->WdPfWpMIV^NOld(;?%7)tZtkW9W zJWtH<=2jGEE(~csL67DoMey46`c04C*7djJKlUDZj@T$7izssco{-85iSLkj4xi#w kYth|8Ed;8x|99>b^lh4pGLi2owxPx}y^h~$w4ZgnKW7bn-2eap literal 0 HcmV?d00001 diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/eclipse.pyc" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/eclipse.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..d60a3ee2bcb792202f7e85e55342506612266dd7 GIT binary patch literal 14884 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 literal 0 HcmV?d00001 diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/kconfiglib.pyc" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/kconfiglib.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..c2a97cd6d1390bb40ef59e9eaf1683d98319d40e GIT binary patch literal 177776 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 L{A&Dd?QZ=)_E0)F literal 0 HcmV?d00001 diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/menuconfig.pyc" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/menuconfig.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..540f13a63aba4acfb3b6adc0d4b02b12d0ca5008 GIT binary patch literal 10031 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 RFBXa;__~)Gu*V$n__u3wN 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 literal 0 HcmV?d00001 diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/options.pyc" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/options.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..7bc9e31542871345e5ca89250db41c93a2da5cb7 GIT binary patch literal 2955 zcmb_eS#uOO5Y~8&FD^p}210@$1k5qJISff0ZaYwZaa=Yjs$8zZ@<{6)JUg1GHQw6f zE#w#FujL0M-95+dGI?a}nU%V~ue;T1wYK%o>4k^Kf4+-E`I*A+XZXM!d};g-L?T2# z5W9g0Xg(#9DX}{xbW8jt#BPfuJIm9Ej{n8aa)2X0kFV!i|C0IGrkl0#lPF%p2mU}e zo{b|LE$L~YPY69Dd?56!&~xH_FdYzLp6u&|2I6FmIK_z54aAumah4H_LZ1`*JbBS; z?B$ahae)z^HV_wU#1bPeHN0G|5my-TSp#vkMtshQFB*tzLQAovuj6wApD)EywfdXP z_^OHvGjj{AwKy}kS-0GD;@cYW9V1r8>_4dO zKV;qa4fYQ;`$tBsHV{A6h)0Zg+(0}j5H0a;TD->^c`A-t!VRXVUY;@Md4uzUIVmF6 zuw2)v2=C%cKBkYvT9t<;H7<^%<)Q`Yt=w6&DU=YHL3kMI7`&%y*9JULo%hv|Da3?O z5tY1Oz#(|+%v)5QllG2s+S3pXK2GdNqq*heX&!%2Q8 zs8Xd`GDqfM5(6N+F?~@mrO6n>K0RTOB$SD!xvq6``*rxb=Zw;F$LBh>a%25xIK%cb zXWyB~hney{j(S|cDe}Y2cuEQdl^%kmq46Aah<;_skT&;O?j>8AG@h!ynJ~_R#nMp4 zXW>N@hM_a)A*@1)Y}$)3u zO{$HiWn&o?79mn;c)$xxVk|q~i(z#EZX$7iOowa7^YY;m_7~tKdFT?2%HYuA@&_hK z?#nUqAWjkv%jJ=mLz`0sae8dgAH$AgGiaB^%&{c#fu|j*CUC8qpc{!=r`%B5u2d42 zmD$v!zT`)VQEA1mCU67!Jdt_E6;atZ7~-mGH$@eA2I*Aa#k8vKRoT}^ z9eh^k^`H|g*Et6Kk2<;PM5qG;9Xft=T0166@X(u1WVK0Rj{{P17YOn6tLTXL8n9>3 zL7tGnRh0PRys~1VJdgr(1BW5Dx}wJUqONCrKwnWCRNlyT0g+v2`_lPh*6x)iur$U@ z)HAq_4!D(!7=?w(8m_U;eKQP?jXSWIFzSxw7;fP>!*1baDZvt;Lg%w6bxw^$@=laH znGMT0XjiHU+{Ve)(D!UAU;Vlvv83}VfQhd5VrPr{a2Qt95HP~jduqFt>}?_AbF^;L zeJ`PB2eMM*8A-Jr@H*b`5Xv?_^2;~EXgbQ%NG2y6E{3+bd;+7`#z%M>y;KRNi*BDy zEM~6#EK#2FQ}o#(c++1d{OASri)(##uWscX zuvgxO?QF;^sDIRPslngmsx=?X@ZW6k5k}KzgSpa9(_T|D6I8P5dnB10ov)+gU#p%j vTE5`hI}zTqp3}Tdx5)M-e2o&wqmP!wIkf$#Z*`uSCzo*yw4IB=sj2?}N$2nf literal 0 HcmV?d00001 diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/rt_studio.pyc" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/rt_studio.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..4f7716b44c2dee1ea69893cecb5d8936465bd9bb GIT binary patch literal 37597 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 literal 0 HcmV?d00001 diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/utils.pyc" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rt-thread/tools/utils.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..24a652c2203ef5bba940186156328ae42eda7f6d GIT binary patch literal 6728 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 Vmk^s1=O!8xQ~0?*@$AIpe*yJwbv*z8 literal 0 HcmV?d00001 diff --git "a/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rtconfig.pyc" "b/2026/\347\254\2543\347\273\204/\351\273\204\345\260\211\346\201\251/\347\254\254\344\272\214\345\244\251 \344\275\234\344\270\232/rtconfig.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..32df32159758eba9c3969ca00fb6aad2c8e064d7 GIT binary patch literal 845 zcmY+AZEw>s5XUcleq3P#2Jd)-RB7spMkOSK5Ft&svb2d34`orMs*Amnu1%`g1;$(W zmV69809>xD6LI|a@9ylg@AAK!wS(TzMF{`C9Io$i%3mlPe+`xZ0YVM}4R{`c9Pk1J zdC~&#A_PSc0E-gv68z90J^#a|AA?ZHp0q{Kt9uYq#eL{Lj`ZTM_Yqzkz=nsBll}DVVD_O-gOj0Gj zbyhv{&cjfl6I2t$Wo&BtrZIJNb|&}GgNHhC5{r(QT}2(0^=_8REZzL*h!Tk9wJM-3 zqwhkM5t6F~->lYm946~q`2zhN_Iw$|H!@74wUXVg$40MC2ECWBhi12%MUIzTwx8in zx+am7R(Fjvy2o%XR1JfMYkS_5*|w!BXgZe82DUp=S!uhss}fpsp+x+J&~eSd(5JkH zL5uEf7k8W7_vtokI6kLanC_mMSu+^ +> RT‑Thread 自动初始化机制,**靠编译器段属性,把初始化函数指针放到特定内存段**,系统启动的时候遍历该段,自动调用函数,不需要手动写函数调用。 + +1. `INIT_BOARD_EXPORT(fn)`:板级初始化,属于`INIT_BOARD`段,在`rt_hw_board_init()`里面执行; +适合硬件外设初始化:串口、GPIO、ADC。 +2. `INIT_APP_EXPORT(fn)`:应用层初始化,属于`INIT_APP`段,调度器启动之后、进入 main 之前执行; +适合应用组件、软件模块初始化。 + +底层实现: +宏展开后,定义一个静态`rt_init_handler_t`函数指针变量,加上编译器`__attribute__((section(".rti_fn.xxx")))`,把这个变量放置到专门的初始化段。 +编译链接时,所有被该宏修饰的函数指针全部收集到同一片内存段。系统启动时,直接遍历这个段内全部函数指针,逐个调用,实现自动执行。 + +优先级:`INIT_BOARD`早于`INIT_APP`。 + +## 2. 内核基础与对象模型 + +### 2.1 RT‑Thread 面向对象设计思想 + +RT‑Thread 内核采用面向对象 C 语言实现,不依靠 C++。 +所有内核资源(线程、信号量、互斥锁、队列)都有对应的**控制块结构体**。 + +- `struct rt_object`是基类,包含对象类型、名字、链表节点; +- 线程、信号量等控制块**继承这个基对象**(结构体第一个成员为`struct rt_object`); +内核统一对象容器链表管理所有内核对象,可以遍历、查找。 + +#### `struct rt_thread`关键成员 + +| 成员 | 作用 | +| ------------------ | ------------------------------------------------------------ | +| `stat` | 线程状态,标记:初始、就绪、运行、挂起、关闭;调度器依据该状态管理线程 | +| `current_priority` | 当前优先级,0 为最高;抢占调度依据优先级,可运行时动态修改 | +| `init_tick` | 线程时间片,时间片轮转调度;时间片耗尽触发调度 | +| `sp` | 线程栈指针;上下文切换时保存 / 恢复 SP,用来保存线程现场 | + +### 2.2 静态对象 vs 动态对象 + +| 对比项 | 静态对象 | 动态对象 | +| -------- | ----------------------------------------- | --------------------------------------- | +| 分配位置 | 编译期分配,存全局 / 静态内存(data/bss) | 运行时`rt_malloc`,从堆内存分配 | +| 生命周期 | 程序整个运行周期,不会自动销毁 | 调用rt_malloc`创建;`rt_free`释放 | +| 释放机制 | 不需要 free;不能手动释放 | 必须手动`rt_free`;忘记释放造成内存泄漏 | + +> 高可靠场景强制静态线程原因: + +1. 堆内存`malloc`会存在内存碎片,长期运行会分配失败; +2. 静态对象内存编译期就确定,运行时不会分配失败; +3. 嵌入式高可靠设备不能接受运行时内存分配失败导致系统崩溃,所以使用静态线程。 + +## 3. 线程状态机与调度算法 + +### 3.1 RT‑Thread 五态模型 + +**5 种状态:初始态、就绪态、运行态、挂起态、关闭态** + +1. **初始态 (INIT)**:线程已经初始化,还未加入就绪队列。 +API:`rt_thread_init()` / `rt_thread_create()`创建完,处于初始态。 +→调用`rt_thread_startup()`,切换到**就绪态**。 +2. **就绪态 (READY)**:线程一切准备完毕,等待 CPU 时间。放在就绪链表,调度器可以选中。 + - 高优先级线程就绪 → 抢占,低优先级从运行→就绪; + - 时间片用完,本线程运行→就绪。 +3. **运行态 (RUNNING)**:当前正在占用 CPU 执行,系统同一时刻只有 1 个线程处于运行态。 + - 调用阻塞 API(信号量等待、延时) → **挂起态**; + - 时间片耗尽 → 就绪态; + - 更高优先级就绪线程抢占 → 就绪态。 +4. **挂起态 (SUSPEND)**:线程阻塞,不参与调度。 +触发:`rt_thread_delay()`、`rt_sem_take()`等待不到资源; +资源到位 / 延时结束 → 切换回就绪态。 +5. **关闭态 (CLOSE)**:线程执行结束,不再参与调度。 +API:`rt_thread_close()`;静态线程回到初始,动态线程可以释放内存。 + +> +> 状态流转: +> 初始 →(startup)→ 就绪 →(调度选中)→运行 +> 运行 →(阻塞 / 延时)→挂起 →(资源到达)→就绪 +> 运行 →(线程结束 /close)→关闭 + +### 3.2 调度机制剖析 + +1. **抢占式调度** +只要有**更高优先级线程进入就绪态**,立刻抢占当前正在运行的低优先级线程,保存现场,切换至高优先级线程运行。 + +> +> 中断里面释放信号量,唤醒高优先级线程,中断退出瞬间就完成抢占。保证高优先级任务及时响应。 + +2. **时间片轮转调度** +针对**相同优先级**的多个就绪线程。每个线程分配时间片`init_tick`。 +线程运行消耗 tick,时间片耗尽,调度器切换同优先级下一个就绪线程。 + +> +> 不同优先级,时间片不起作用,高优先级优先执行。 + + + + + + + + + + + + + + + + + + + + + + + + + + + -- Gitee