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 0000000000000000000000000000000000000000..04ef7fe33d54d597af53ecd9b685abe9851f1a4d --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 Binary files /dev/null and "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" differ 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 0000000000000000000000000000000000000000..daeda52f9d931100a5ca469e4fafedfb8e91b5af --- /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 Binary files /dev/null and "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" differ 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 Binary files /dev/null and "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" differ 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/gcc.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/gcc.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..70eac6d8df93593e3113b40f9c41d64833ad57c5 Binary files /dev/null and "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/gcc.pyc" differ 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 Binary files /dev/null and "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" differ 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 Binary files /dev/null and "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" differ 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/mkdist.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/mkdist.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..fc86c1e42e52df9d13f9029261877e489d85e21a Binary files /dev/null and "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/mkdist.pyc" differ 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 Binary files /dev/null and "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" differ 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 Binary files /dev/null and "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" differ 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 Binary files /dev/null and "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" differ 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 Binary files /dev/null and "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" differ 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 \347\254\224\350\256\260.md" "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 \347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..1c6d1972a709acf451ec53e717b5d70e4b45f68f --- /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 \347\254\224\350\256\260.md" @@ -0,0 +1,147 @@ +# Day 2 笔记 + +## 1. STM32F407 启动流程与 RT‑Thread 引导机制 + +### 1.1 上电复位 `Reset_Handler` → `main()`完整调用链 + +```bash +上电复位 + ↓ +Reset_Handler(启动文件汇编,复位中断服务函数) + ↓ +SystemInit() // STM32库函数,初始化时钟、系统总线 + ↓ +__main() // 编译器库函数:初始化全局变量、.data/.bss段内存 + ↓ +rtthread_startup() // RT‑Thread入口函数 + ├─ rt_hw_board_init() // 硬件板级初始化 + ├─ rt_show_version() // 打印RT‑Thread版本 + ├─ rt_system_timer_init() // 系统定时器初始化 + ├─ rt_system_scheduler_init()// 调度器初始化 + ├─ rt_system_object_init() + ├─ rt_system_timer_thread_init() // 定时器线程初始化 + ├─ rt_thread_init(&rt_main_thread,...) //初始化main线程 + ├─ rt_system_scheduler_start() // 启动调度器,触发第一次上下文切换 + ↓ +main() // main线程入口,用户业务函数 +``` + +### 1.2 `INIT_BOARD_EXPORT`、`INIT_APP_EXPORT`自动初始化原理 + +> +> 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,时间片耗尽,调度器切换同优先级下一个就绪线程。 + +> +> 不同优先级,时间片不起作用,高优先级优先执行。 + + + + + + + + + + + + + + + + + + + + + + + + + + +