Browse Source

update v5.2.0

CYFS 1 month ago
parent
commit
6009bc8633
100 changed files with 3767 additions and 942 deletions
  1. 242 0
      .clang-format
  2. 14 1
      .gitignore
  3. 0 45
      AUTHORS
  4. 782 11
      ChangeLog.md
  5. 0 154
      Jenkinsfile
  6. 4 4
      Kconfig
  7. 4 3
      README.md
  8. 7 7
      README_de.md
  9. 7 7
      README_es.md
  10. 3 3
      README_zh.md
  11. 11 0
      bsp/.clang-format
  12. 23 0
      bsp/qemu-vexpress-a9/.ci/attachconfig/ci.attachconfig.yml
  13. 198 27
      bsp/qemu-vexpress-a9/.config
  14. 3 76
      bsp/qemu-vexpress-a9/.vscode/launch.json
  15. 6 15
      bsp/qemu-vexpress-a9/Kconfig
  16. 1 0
      bsp/qemu-vexpress-a9/drivers/Kconfig
  17. 1 0
      bsp/qemu-vexpress-a9/drivers/drv_clcd.h
  18. 1 1
      bsp/qemu-vexpress-a9/drivers/drv_sdio.c
  19. 1 1
      bsp/qemu-vexpress-a9/drivers/drv_smc911x.c
  20. 94 11
      bsp/qemu-vexpress-a9/rtconfig.h
  21. 6 15
      bsp/qemu-virt64-aarch64/Kconfig
  22. 0 7
      bsp/qemu-virt64-aarch64/drivers/board.c
  23. 0 46
      bsp/qemu-virt64-aarch64/drivers/secondary_cpu.c
  24. 1 1
      bsp/qemu-virt64-aarch64/rtconfig.py
  25. 276 49
      bsp/qemu-virt64-riscv/.config
  26. 10 21
      bsp/qemu-virt64-riscv/Kconfig
  27. 388 30
      bsp/qemu-virt64-riscv/README.md
  28. 0 140
      bsp/qemu-virt64-riscv/README_ZH.md
  29. 0 28
      bsp/qemu-virt64-riscv/README_ch.md
  30. 409 0
      bsp/qemu-virt64-riscv/README_cn.md
  31. 4 0
      bsp/qemu-virt64-riscv/SConstruct
  32. 1 2
      bsp/qemu-virt64-riscv/applications/main.c
  33. 16 21
      bsp/qemu-virt64-riscv/driver/Kconfig
  34. 2 2
      bsp/qemu-virt64-riscv/driver/board.c
  35. 3 1
      bsp/qemu-virt64-riscv/driver/board.h
  36. 0 1
      bsp/qemu-virt64-riscv/driver/drv_uart.c
  37. 2 2
      bsp/qemu-virt64-riscv/driver/drv_virtio.c
  38. 186 0
      bsp/qemu-virt64-riscv/link_smart.lds
  39. 0 1
      bsp/qemu-virt64-riscv/qemu-nographic-smode.sh
  40. 0 9
      bsp/qemu-virt64-riscv/qemu-nographic.sh
  41. 1 0
      bsp/qemu-virt64-riscv/qemu-rv64ilp32-nographic.sh
  42. 160 18
      bsp/qemu-virt64-riscv/rtconfig.h
  43. 1 4
      bsp/qemu-virt64-riscv/rtconfig.py
  44. 30 0
      bsp/qemu-virt64-riscv/run.sh
  45. 2 0
      bsp/renesas/README.md
  46. 26 58
      bsp/renesas/ebf_qi_min_6m5/.config
  47. 8 20
      bsp/renesas/ebf_qi_min_6m5/Kconfig
  48. 4 0
      bsp/renesas/ebf_qi_min_6m5/README.md
  49. 120 2
      bsp/renesas/ebf_qi_min_6m5/board/Kconfig
  50. 83 26
      bsp/renesas/ebf_qi_min_6m5/project.uvprojx
  51. 3 14
      bsp/renesas/ebf_qi_min_6m5/rtconfig.h
  52. 1 1
      bsp/renesas/ebf_qi_min_6m5/template.uvprojx
  53. 1 5
      bsp/renesas/libraries/HAL_Drivers/SConscript
  54. 37 9
      bsp/renesas/libraries/HAL_Drivers/config/drv_config.h
  55. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra2l1/adc_config.h
  56. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra2l1/can_config.h
  57. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra2l1/dac_config.h
  58. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra2l1/pwm_config.h
  59. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra2l1/uart_config.h
  60. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra4m2/adc_config.h
  61. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra4m2/can_config.h
  62. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra4m2/dac_config.h
  63. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra4m2/pwm_config.h
  64. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra4m2/uart_config.h
  65. 42 0
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/adc_config.h
  66. 48 0
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/can_config.h
  67. 41 0
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/dac_config.h
  68. 31 0
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/lcd_config.h
  69. 68 0
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/pwm_config.h
  70. 67 0
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/timer_config.h
  71. 136 0
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/uart_config.h
  72. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/adc_config.h
  73. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/can_config.h
  74. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/dac_config.h
  75. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/lcd_config.h
  76. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/pwm_config.h
  77. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/timer_config.h
  78. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/uart_config.h
  79. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m4/adc_config.h
  80. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m4/can_config.h
  81. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m4/dac_config.h
  82. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m4/pwm_config.h
  83. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m4/uart_config.h
  84. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m5/adc_config.h
  85. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m5/can_config.h
  86. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m5/dac_config.h
  87. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m5/pwm_config.h
  88. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m5/uart_config.h
  89. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra8/adc_config.h
  90. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra8/dac_config.h
  91. 2 2
      bsp/renesas/libraries/HAL_Drivers/config/ra8/lcd_config.h
  92. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra8/pwm_config.h
  93. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra8/uart_config.h
  94. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/rzt/adc_config.h
  95. 85 0
      bsp/renesas/libraries/HAL_Drivers/config/rzt/can_config.h
  96. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/rzt/pwm_config.h
  97. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/rzt/timer_config.h
  98. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/rzt/uart_config.h
  99. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_adc.c
  100. 28 5
      bsp/renesas/libraries/HAL_Drivers/drv_can.c

+ 242 - 0
.clang-format

@@ -0,0 +1,242 @@
+# Available style options are described in https://clang.llvm.org/docs/ClangFormatStyleOptions.html
+#
+# An easy way to create the .clang-format file is:
+#
+# clang-format -style=llvm -dump-config > .clang-format
+#
+---
+Language: Cpp
+BasedOnStyle: LLVM
+AccessModifierOffset: -1
+AlignAfterOpenBracket: Align
+AlignArrayOfStructures: Right
+AlignConsecutiveAssignments:
+  Enabled: true
+  AcrossEmptyLines: false
+  AcrossComments: false
+  AlignCompound: true
+  PadOperators: true
+AlignConsecutiveBitFields:
+  Enabled: true
+  AcrossEmptyLines: false
+  AcrossComments: false
+  AlignCompound: true
+  PadOperators: true
+AlignConsecutiveDeclarations:
+  Enabled: true
+  AcrossEmptyLines: false
+  AcrossComments: false
+  AlignCompound: false
+  PadOperators: false
+AlignConsecutiveMacros:
+  Enabled: true
+  AcrossEmptyLines: false
+  AcrossComments: false
+  AlignCompound: false
+  PadOperators: false
+AlignConsecutiveShortCaseStatements:
+  Enabled: false
+  AcrossEmptyLines: false
+  AcrossComments: false
+  AlignCaseColons: false
+AlignEscapedNewlines: Left
+AlignOperands: Align
+AlignTrailingComments:
+  Kind: Always
+  OverEmptyLines: 1
+AllowAllArgumentsOnNextLine: false
+AllowAllParametersOfDeclarationOnNextLine: false
+AllowShortBlocksOnASingleLine: Always
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortEnumsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: None
+AllowShortIfStatementsOnASingleLine: WithoutElse
+AllowShortLambdasOnASingleLine: All
+AllowShortLoopsOnASingleLine: true
+AlwaysBreakAfterDefinitionReturnType: None
+AlwaysBreakAfterReturnType: None
+AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: MultiLine
+AttributeMacros:
+  - __capability
+BinPackArguments: true
+BinPackParameters: true
+BitFieldColonSpacing: Both
+BraceWrapping:
+  AfterCaseLabel: false
+  AfterClass: true
+  AfterControlStatement: Always
+  AfterEnum: true
+  AfterExternBlock: false
+  AfterFunction: true
+  AfterNamespace: true
+  AfterObjCDeclaration: true
+  AfterStruct: true
+  AfterUnion: false
+  BeforeCatch: true
+  BeforeElse: true
+  BeforeLambdaBody: false
+  BeforeWhile: false
+  IndentBraces: false
+  SplitEmptyFunction: true
+  SplitEmptyRecord: true
+  SplitEmptyNamespace: true
+BreakAfterAttributes: Never
+BreakAfterJavaFieldAnnotations: false
+BreakArrays: false
+BreakBeforeBinaryOperators: NonAssignment
+BreakBeforeConceptDeclarations: Always
+BreakBeforeBraces: Custom
+BreakBeforeInlineASMColon: OnlyMultiline
+BreakBeforeTernaryOperators: true
+BreakConstructorInitializers: AfterColon
+BreakInheritanceList: AfterColon
+BreakStringLiterals: true
+ColumnLimit: 0
+CommentPragmas: "^ IWYU pragma:"
+CompactNamespaces: false
+ConstructorInitializerIndentWidth: 4
+ContinuationIndentWidth: 4
+Cpp11BracedListStyle: true
+DerivePointerAlignment: false
+DisableFormat: false
+EmptyLineAfterAccessModifier: Never
+EmptyLineBeforeAccessModifier: Always
+ExperimentalAutoDetectBinPacking: false
+FixNamespaceComments: true
+ForEachMacros:
+  - foreach
+  - Q_FOREACH
+  - BOOST_FOREACH
+IfMacros:
+  - KJ_IF_MAYBE
+IncludeBlocks: Preserve
+IncludeCategories:
+  - Regex: '^"(llvm|llvm-c|clang|clang-c)/'
+    Priority: 2
+    SortPriority: 0
+    CaseSensitive: false
+  - Regex: '^(<|"(gtest|gmock|isl|json)/)'
+    Priority: 3
+    SortPriority: 0
+    CaseSensitive: false
+  - Regex: ".*"
+    Priority: 1
+    SortPriority: 0
+    CaseSensitive: false
+IncludeIsMainRegex: "(Test)?$"
+IncludeIsMainSourceRegex: ""
+IndentAccessModifiers: false
+IndentCaseBlocks: false
+IndentCaseLabels: false
+IndentExternBlock: NoIndent
+IndentGotoLabels: true
+IndentPPDirectives: None
+IndentRequiresClause: true
+IndentWidth: 4
+IndentWrappedFunctionNames: false
+InsertBraces: false
+InsertNewlineAtEOF: true
+InsertTrailingCommas: None
+IntegerLiteralSeparator:
+  Binary: 0
+  BinaryMinDigits: 0
+  Decimal: 0
+  DecimalMinDigits: 0
+  Hex: 0
+  HexMinDigits: 0
+JavaScriptQuotes: Leave
+JavaScriptWrapImports: true
+KeepEmptyLinesAtTheStartOfBlocks: false
+KeepEmptyLinesAtEOF: true
+LambdaBodyIndentation: Signature
+LineEnding: DeriveLF
+MacroBlockBegin: ""
+MacroBlockEnd: ""
+MaxEmptyLinesToKeep: 2
+NamespaceIndentation: None
+ObjCBinPackProtocolList: Auto
+ObjCBlockIndentWidth: 2
+ObjCBreakBeforeNestedBlockParam: true
+ObjCSpaceAfterProperty: false
+ObjCSpaceBeforeProtocolList: true
+PackConstructorInitializers: BinPack
+PenaltyBreakAssignment: 1000
+PenaltyBreakBeforeFirstCallParameter: 19
+PenaltyBreakComment: 300
+PenaltyBreakFirstLessLess: 120
+PenaltyBreakOpenParenthesis: 0
+PenaltyBreakString: 1000
+PenaltyBreakTemplateDeclaration: 10
+PenaltyExcessCharacter: 1000000
+PenaltyIndentedWhitespace: 0
+PenaltyReturnTypeOnItsOwnLine: 1000
+PointerAlignment: Right
+PPIndentWidth: 4
+QualifierAlignment: Leave
+ReferenceAlignment: Pointer
+ReflowComments: false
+RemoveBracesLLVM: false
+RemoveParentheses: Leave
+RemoveSemicolon: false
+RequiresClausePosition: OwnLine
+RequiresExpressionIndentation: OuterScope
+SeparateDefinitionBlocks: Leave
+ShortNamespaceLines: 1
+SortIncludes: Never
+SortJavaStaticImport: Before
+SortUsingDeclarations: LexicographicNumeric
+SpaceAfterCStyleCast: false
+SpaceAfterLogicalNot: false
+SpaceAfterTemplateKeyword: true
+SpaceAroundPointerQualifiers: Both
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeCaseColon: false
+SpaceBeforeCpp11BracedList: false
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
+SpaceBeforeJsonColon: false
+SpaceBeforeParens: ControlStatements
+SpaceBeforeParensOptions:
+  AfterControlStatements: true
+  AfterForeachMacros: true
+  AfterFunctionDefinitionName: false
+  AfterFunctionDeclarationName: false
+  AfterIfMacros: true
+  AfterOverloadedOperator: false
+  AfterRequiresInClause: false
+  AfterRequiresInExpression: false
+  BeforeNonEmptyParentheses: false
+SpaceBeforeRangeBasedForLoopColon: true
+SpaceBeforeSquareBrackets: false
+SpaceInEmptyBlock: false
+SpacesBeforeTrailingComments: 1
+SpacesInAngles: Never
+SpacesInContainerLiterals: true
+SpacesInLineCommentPrefix:
+  Minimum: 1
+  Maximum: -1
+SpacesInParens: Never
+SpacesInParensOptions:
+  InCStyleCasts: false
+  InConditionalStatements: false
+  InEmptyParentheses: false
+  Other: false
+SpacesInSquareBrackets: false
+Standard: Latest
+StatementAttributeLikeMacros:
+  - Q_EMIT
+StatementMacros:
+  - Q_UNUSED
+  - QT_REQUIRE_VERSION
+TabWidth: 4
+UseTab: Never
+VerilogBreakBetweenInstancePorts: true
+WhitespaceSensitiveMacros:
+  - BOOST_PP_STRINGIZE
+  - CF_SWIFT_NAME
+  - NS_SWIFT_NAME
+  - PP_STRINGIZE
+  - STRINGIZE
+---
+

+ 14 - 1
.gitignore

@@ -13,6 +13,7 @@
 *.crf
 build
 Debug
+.vs
 rtthread
 settings
 documentation/html
@@ -29,7 +30,6 @@ documentation/html
 *.su
 #source insight 4 project files
 *.si4project
-tools/kconfig-frontends/kconfig-mconf
 packages
 dist
 rt-studio-project
@@ -44,6 +44,7 @@ ncscope.*
 tags
 
 .idea
+**/.cache/
 .vscode
 *.code-workspace
 *.eide.*
@@ -51,3 +52,15 @@ tags
 CMakeLists.txt
 cmake-build-debug
 *.mk
+
+# vDSO
+vdso_sys.os
+vdso.lds
+
+# cherryusb libraries
+!components/drivers/usb/cherryusb/port/pusb2/*.a
+!components/drivers/usb/cherryusb/port/xhci/phytium/*.a
+
+# stm32cubemx
+**/CubeMX_Config/Drivers/
+**/CubeMX_Config/MDK-ARM/

+ 0 - 45
AUTHORS

@@ -1,45 +0,0 @@
-Kernel Design & Implementation
-- Bernard Xiong <bernard.xiong@gmail.com>
-
-LwIP 1.3.0/1.3.1/1.3.2/1.4.0
-- Porting
-  Qiu Yi
-  Mbbill
-- Testing
-  Bernard Xiong
-
-Filesystem
-- Porting and Add Virtual Filesystem
-- Testing
-  Qiu Yi
-  prife
-
-RTGUI
-- Design and Implemenation
-  Bernard Xiong
-  Grissiom
-
-BSP
-Bernard Xiong
-- ATMEL AT91SAM7S64 & AT91SAM7X256 Porting
-- STM32 Porting
-- S3C4510 Porting
-
-Mbbill
-- ATMEL AT91SAM7X256
-
-Xulong Cao
-- QEMU/x86
-
-Aozima
-- LPC 2148 Porting
-- STM32 Porting
-
-Jing Lee
-- LPC 2478 Porting
-
-Qiu Yi
-- S3C2410 & S3C2440 Porting
-- TI LM3S
-
-others...

+ 782 - 11
ChangeLog.md

@@ -1,3 +1,774 @@
+# RT-Thread v5.2.0 Released
+
+Change Log Since v5.1.0 Release
+
+## Kernel
+
+* **include/rtatomic.h:** set RT_USING_STDC_ATOMIC to first priority
+* **src/clock.c:** rt_tick setting arbitrary value function is added to support low-power wake-up tick compensation
+* **src/timer:**
+  * add all soft timer config [(#9048)](https://github.com/RT-Thread/rt-thread/pull/9048)
+  * Merge the functions of rt_timer_check and _soft_timer_check [(#8884)](https://github.com/RT-Thread/rt-thread/pull/8884)
+* **src/kservise:**
+  * Enhance support for backtrace service [(#9037)](https://github.com/RT-Thread/rt-thread/pull/9037)
+  * optimize console_device[(#9767)](https://github.com/RT-Thread/rt-thread/pull/9767)
+* **src:**
+  * add CPU/thread usage tracing config [(#8947)](https://github.com/RT-Thread/rt-thread/pull/8947)
+
+  * **src/Kconfig:** separate klibc Kconfig, format Kconfig, update src/Kconfig, add RT_USING_CI_ACTION
+* Remove redundant memset & unlock in smp
+* Add smp_ipi_call function to call other cpus to work
+* Change size_t to rt_size_t [(#9787)](https://github.com/RT-Thread/rt-thread/pull/9787)
+* Fix kconfig display copywriting error [(#9750)](https://github.com/RT-Thread/rt-thread/pull/9750)
+* Add RT_USING_SMP judgement inside smp_call.h [(#9835)](https://github.com/RT-Thread/rt-thread/pull/9835)
+* Support rt_packed
+* Added rt_interrupt_context* family for nested interrupt handling
+* Suppress unused warnings when DEBUG disabled
+* Specification interrupt nested level variable declaration type
+* Enable "recycling thread" in smart mode to fix bug with thread hanged
+* Remove RT_USING_SCHED_THREAD_CTX for next release
+* smart: User space context optimization
+* Add kerrno.h, kstring.h and kstdio.h
+* driver: smp_call: add non-blocking IPI calling method
+* Fixup memory address reserved and translate in early
+* fix bug of thread exit without releasing mutex & add error check log
+* add memset zero for rt_thread_init
+* support of lockless rt_completion,The new rt_completion implemented by lockless algorithm can improve timer resolution for up to ~12%, compare to sem IPC.[(#8887)](https://github.com/RT-Thread/rt-thread/pull/8887)
+* add rt_hw_cpu_id() wrapper API [(#8894)](https://github.com/RT-Thread/rt-thread/pull/8894) 
+* make RT_ASSERT independent of RT_USING_DEUBG
+* add rt_thread_close()
+* fix the issue of abnormal memcheck and memtrace calls when using SLAB.[(#8862)](https://github.com/RT-Thread/rt-thread/pull/8862)
+* Fixup UP irq_spinlock ,add cpu up,add Kconfig option
+* add rt_hw_interrupt_uninstall declare in rthw
+* upgrade RT-Thread version to v5.2.0
+* Add a check for the time slice parameter in the create thread function[(#8807)](https://github.com/RT-Thread/rt-thread/pull/8807)
+* Add subsys init level to facilitate earlier clk initialization
+* Fixed the rt_exit_critical_safe function incorrectly using returns
+* SIGNAL node assignment failure should return an error
+
+## Components
+
+* **drivers**
+  
+  * **virtio:** fix virtio net rx error[(#9170)](https://github.com/RT-Thread/rt-thread/pull/9170)
+  * **sensor:** 
+    * Add power detection type[(#9410)](https://github.com/RT-Thread/rt-thread/pull/9410)
+    * added sensor device lookup function
+    * Synchronizing sensor_v1 changes 
+    * [sensor_v2] Repair an error occurs when sensor v2 probes a sensor device for the first time
+  * **fdt:** 
+    * legacy fdt [(#9062)](https://github.com/RT-Thread/rt-thread/pull/9062)
+    * Add bootargs select in early[(#9411)](https://github.com/RT-Thread/rt-thread/pull/9411)
+    * fixup: add address reverse/translate for DMA/CPU's address
+    * fixup: ofw_parse_object fail
+    * fixup: DTS version header always v1.0
+    * fixup: Increase append child node's ref_count
+    * fixup: rt_ofw_foreach_node_by_compatible args
+  * **tty:** 
+  * **serial:**
+    * skip configure of rt_serial on tty open [(#9152)](https://github.com/RT-Thread/rt-thread/pull/9152)
+    * Make serial_v2.c compatible with the DFS_V2 interface [(#9153)](https://github.com/RT-Thread/rt-thread/pull/9153)
+    * Add an exception exit mechanism to poll tx.
+    * fix_serial_baudrate_set
+    * fix compiler error in serial dm [(#8927)](https://github.com/RT-Thread/rt-thread/pull/8927)
+    * fix error in getting serial_tty settings [(#8953)](https://github.com/RT-Thread/rt-thread/pull/8953)
+    * init dm serial naming framework in a separate phase [(#8971)](https://github.com/RT-Thread/rt-thread/pull/8971)
+    * fix when open smart but using msh after run elf file the msh will down
+    * Add bypass hook to direct processing char when uart irq coming  [(#9713)](https://github.com/RT-Thread/rt-thread/pull/9713)
+    * Add bypass testcase in utest [(#9713)](https://github.com/RT-Thread/rt-thread/pull/9713)
+    * fixed a minor typo in the comments of dev_serial_v2.c
+    * using serial name to name tty
+    * introduce hook for tty,improve code quality.
+    * fix: code format of serial.c and compile error in aarch64 context_gcc
+    * fix posix tty, and add more baudrate [(#8683)](https://github.com/RT-Thread/rt-thread/pull/8683)
+  * **i2c:** 
+    * merge the software i2c driver[(#9886)](https://github.com/RT-Thread/rt-thread/pull/9886)
+    * adjust the timing for I2C initialization
+    * add ofw support i2c
+  * **rtc:** 
+    * Specifies the rtc synchronization function [(#9804)](https://github.com/RT-Thread/rt-thread/pull/9804)
+    * Update software and hardware rtc device naming as rtc [(#9778)](https://github.com/RT-Thread/rt-thread/pull/9778)
+    * Fix rtc alarm thread parameters issue
+    * Make RTC alarm internal thread's attributes configurable
+  * **hwtimer:** 
+    * Add a user control interface
+  * **core:** 
+    * Added default values for `CPUTIME_TIMER_FREQ` in `components/drivers/cputime/Kconfig`.
+    * DFS mount auto by kernel parameters [(#8989)](https://github.com/RT-Thread/rt-thread/pull/8989)
+    * Simple NUMA (Non-Uniform Memory Access) [(#9000)](https://github.com/RT-Thread/rt-thread/pull/9000)
+    * Support simple power domain API [(#9005)](https://github.com/RT-Thread/rt-thread/pull/9005)
+    * Add IDA init in runtime
+    * check available in stub probe
+    * Fix the issue where creating a device using rt_device_create fails when attempting to delete it using rt_device_destroy[(#9379)](https://github.com/RT-Thread/rt-thread/pull/9379)
+  * **wlan:** 
+    * Add get_info api for more new sta information [(#9837)](https://github.com/RT-Thread/rt-thread/pull/9837)
+    * Add ap_get_info api for more ap information [(#9867)](https://github.com/RT-Thread/rt-thread/pull/9867)
+    * fixed a duplicate issue with the wifi scan command
+    * add the wlan join scan function
+  * **usb**
+    * refactor(drivers/usb):replace rtt usb stack with cherryusb [(#8799)](https://github.com/RT-Thread/rt-thread/pull/8799)
+    * cherryusb fix USBD_IRQHandler argument
+    * update(cherryusb) to v1.4.3
+  * **common**
+    * Organize the Kconfig in components/drivers[(#9054)](https://github.com/RT-Thread/rt-thread/pull/9054)
+    * Replace spinlock static init by RT_DEFINE_SPINLOCK
+  * **led**
+    * Rename LED register/unregister
+  * **pin**
+    * Reset the value of PIN_NONE
+  * **spi**
+    * Fix potential abnormal operations.
+    * Fixed the issue where spi configure would be executed twice [(#9972)](https://github.com/RT-Thread/rt-thread/pull/9972)
+    * Fixup device rename by chip_select
+    * Make CS pin config fixed in system [(#9977)](https://github.com/RT-Thread/rt-thread/pull/9977)
+    * Unified software SPI configuration
+    * dev_spi_flash_sfud: fix: set message.parent.next to NULL for qspi_read API
+    * fix: set message.parent.next to NULL for rt_qspi_send_then_recv API and rt_qspi_send API
+    * Fixed an issue that caused spi bus deadlock in the spi configuration
+    * Add -RT_EBUSY return value for rt_spi_bus_configure and mutex protection
+    * soft_spi_pin_init loop variable is initialized to 0
+    * spi device driver framework adds pin init function function
+  * **thermal**
+    * Remove unused code in update poll
+    * fixup coefficients's offset lost
+  * **can:**
+    * Fix possible memory overflow caused by RX
+    * close can irq before release fifo
+    * fix can warning in 64bit cpu [(#8772)](https://github.com/RT-Thread/rt-thread/pull/8772)
+    * fix compile warning in 64 bits arch cpu [(#8739)](https://github.com/RT-Thread/rt-thread/pull/8739)
+  * **sdio:**
+    * fix a bug that read members in non-existent functions
+    * fix an issue where repeated remove of card resulted in assertions
+    * Fix the issue where ART-PI smart cannot read partitions on SD/EMMC.[(#9058)](https://github.com/RT-Thread/rt-thread/pull/9058)
+    * add HS400 support to mmc driver
+    * port to the block
+  * **ofw:**
+    * fix initrd scan err
+    * add cromfs start with bootargs cmd
+    *  fix ofw_alias_scan() bug [(#8908)](https://github.com/RT-Thread/rt-thread/pull/8908)
+    * Fixup irq parse map and map mask [(#8992)](https://github.com/RT-Thread/rt-thread/pull/8992)
+    * Support ID map interface [(#8994)](https://github.com/RT-Thread/rt-thread/pull/8994)
+    * io ranges use list to storage without ofw data [(#8993)](https://github.com/RT-Thread/rt-thread/pull/8993)
+    * Delete redundant strcasecmp function  [(#9779)](https://github.com/RT-Thread/rt-thread/pull/9779)
+    * Fix when printf 0 addr by %p will return nil [(#9741)](https://github.com/RT-Thread/rt-thread/pull/9741)
+    * add pci
+    * Fixed fdt_scan_memory() memory adjustment bug [(#8853)](https://github.com/RT-Thread/rt-thread/pull/8853)
+    * fix some uninitialize err [(#8806)](https://github.com/RT-Thread/rt-thread/pull/8806)
+    * fix pin ofw variable init.
+  * **misc:**
+    * Fix the calculation error in ADC voltage conversion.
+    * random should copy size bytes of data to buffer [(#9012)](https://github.com/RT-Thread/rt-thread/pull/9012)
+    * fix pwm driver warnings
+    * Fix potential return value discrepancy when writing to urandom
+  * **pic**:
+    * fix compile err in pic-gic [(#9015)](https://github.com/RT-Thread/rt-thread/pull/9015)
+    * Implement PIC irq state { get; set } [(#9006)](https://github.com/RT-Thread/rt-thread/pull/9006)
+    * add percpu interrupt info
+    * remove intr disable
+    * add isr statistics [(#8955)](https://github.com/RT-Thread/rt-thread/pull/8955)
+    * Make affinity helper interface [(#8995)](https://github.com/RT-Thread/rt-thread/pull/8995)
+    * Fixup PIC ktime depends [(#9774)](https://github.com/RT-Thread/rt-thread/pull/9774)
+    * Add pci api,the pci/pcie driver writer can use this to get resource of current device with flag,there are three flag :
+    * Add ARM GICv2/v3 V2M, ITS support.[(#9428)](https://github.com/RT-Thread/rt-thread/pull/9428)
+    * support PIC cancel (only in debug)
+    * fixup: pirq's child handler should lock less
+    * fixup: set interrupt status when do traps
+    * fixup: pirq reinit fail
+    * delete nonexist include file
+  * **phy:**
+    *  add one more parameter for mulitiple phys;add phy and mdio bus, add head, add ofw api to of net,driver writer can use this api get phy modes or get mac address
+  * **audio**
+    * fixup: audio_pipe function conflicts with POSIX PIPE when enabling POSIX IPC[(#9404)](https://github.com/RT-Thread/rt-thread/pull/9404)
+    * fixup: protect taken_list on shared lock[(#9368)](https://github.com/RT-Thread/rt-thread/pull/9368)
+  
+* **lwp**
+  * feat: add unmap for null mapper [(#9186)](https://github.com/RT-Thread/rt-thread/pull/9186)
+  * Add VDSO functionality under the aarch64 architecture [(#9176)](https://github.com/RT-Thread/rt-thread/pull/9176)
+  * add mprotect config [(#9082)](https://github.com/RT-Thread/rt-thread/pull/9082)
+  * select console device dynamically [(#8949)](https://github.com/RT-Thread/rt-thread/pull/8949)
+  * fixup compiler warning [(#8961)](https://github.com/RT-Thread/rt-thread/pull/8961)
+  * arm: fixup signal handling [(#8988)](https://github.com/RT-Thread/rt-thread/pull/8988)
+  * add FIONREAD ioctl support for tty [(#8996)](https://github.com/RT-Thread/rt-thread/pull/8996)
+  * Initialize the user-mode SP before entering libc [(#8997)](https://github.com/RT-Thread/rt-thread/pull/8997)
+  * update sched_setaffinity() to use thread(task) ID [(#9004)](https://github.com/RT-Thread/rt-thread/pull/9004)
+  * fixup errno passing on sys_mkdir() [(#9007)](https://github.com/RT-Thread/rt-thread/pull/9007)
+  * list_process can print tid [(#8991)](https://github.com/RT-Thread/rt-thread/pull/8991)
+  * fixup of script execution [(#9009)](https://github.com/RT-Thread/rt-thread/pull/9009)
+  * Check the validity of the killpg signo parameter [(#9981)](https://github.com/RT-Thread/rt-thread/pull/9981)
+  * Fix the problem of user mode parameter space occupying heap address space [(#10014)](https://github.com/RT-Thread/rt-thread/pull/10014)
+  * Fix the return value error when killing (pid < -1)
+  * Fixed the problem of not being able to find pid by file name [(#9935)](https://github.com/RT-Thread/rt-thread/pull/9935)
+  * Kconfig: LWP_DEBUG default as n [(#9921)](https://github.com/RT-Thread/rt-thread/pull/9921)
+  * add comments for lwp system calls. [(#9934)](https://github.com/RT-Thread/rt-thread/pull/9934)
+  * fix TTYSUP_CFLAG did not include CBAUD flag [(#9773)](https://github.com/RT-Thread/rt-thread/pull/9773)
+  * add signal kill all functionality [(#9654)](https://github.com/RT-Thread/rt-thread/pull/9654)
+  * add system reboot and process teardown support [(#9654)](https://github.com/RT-Thread/rt-thread/pull/9654)
+  * support PID iteration [(#9654)](https://github.com/RT-Thread/rt-thread/pull/9654)
+  * use c99 to implement traversal [(#9654)](https://github.com/RT-Thread/rt-thread/pull/9654)
+  * Fixup possible memory leaking on close() in pty
+  * Uncheck the specific cpu category that restricts rv in the script[(#9438)](https://github.com/RT-Thread/rt-thread/pull/9438)
+  * remove extra check in sys_bind[(#9412)](https://github.com/RT-Thread/rt-thread/pull/9412)
+  * fix sys_getcwd [(#8852)](https://github.com/RT-Thread/rt-thread/pull/8852)
+  * fixup devfs porting layer of terminal [(#8797)](https://github.com/RT-Thread/rt-thread/pull/8797)
+  * fixup: uninitialized argument vector element
+  * Implementation of setpgrp and fix mmap2 problems [(#9308)](https://github.com/RT-Thread/rt-thread/pull/9308)
+  * add error log when tid depleted, and return correct errno when clone failed [(#9327)](https://github.com/RT-Thread/rt-thread/pull/9327)
+  * fix mount param issue [(#9333)](https://github.com/RT-Thread/rt-thread/pull/9333)
+  * fixup: compiler warning on cvitek risc-v cause by unsupport vDSO on rv64
+  * fix exec and mount error code
+  
+* **libc**
+
+  * fix Compilation error in "driver.c", "completion_up.c", "syslog.c" and "dlmodule.c". [(#9093)](https://github.com/RT-Thread/rt-thread/pull/9093)
+  * Fix the issue where the destructor of C++11 thread_local objects and the actual memory release actions occur in the opposite order.
+  * fix array overflow in rt_object name assignment
+  * fix pointer-to-integer cast warnings and address truncation
+  * uncomment wcwidth for win32 [(#9823)](https://github.com/RT-Thread/rt-thread/pull/9823)
+  * Add comments for timer fd APIs. [(#9794)](https://github.com/RT-Thread/rt-thread/pull/9794)
+  * Fix RT_USING_MUSLLIBC struct error bug [(#9834)](https://github.com/RT-Thread/rt-thread/pull/9834)
+  * add rt_sscanf
+  * **posix:**
+    * Add comments for thread local storage APIs
+    * Fix the problem that it doesn't check if barrier still in use and dosen't destory the mutex either, 
+    * Fix the errors that assigning an integer to a pointer and always return EINVAL, 
+    * Fixed the issue that TLS did not initialize memory after applying for it
+  * **compilers:** 
+    * add __rt_utest_tc_tab_start to support utest
+    * Add RT_USING_RTC conditional compilation protection in ctimer.c
+    * Fixed compile error when RT_USING_DEVICE is not enabled [(#9145)](https://github.com/RT-Thread/rt-thread/pull/9145)
+  * Fix issue with inconsistency between sig_mask and sigaddset implementations when using musl libc
+  * Fix ctime () crashes[(#9384)](https://github.com/RT-Thread/rt-thread/pull/9384)
+  * Fix logic error in POSIX thread local storage when looking for posix thread handle [(#8790)](https://github.com/RT-Thread/rt-thread/pull/8790)
+  * fix legacy macros will be added if cannot get the IAR version
+  * Fix the issue of incorrect return of invalid parameters in aio_write
+  * Fix incorrect naming of triggered 
+  
+* **dfs**
+
+  * **dfs v1**:
+    * Remove warning for ops
+    * Add comments and fix former comments error for dfs v1. [(#9739)](https://github.com/RT-Thread/rt-thread/pull/9739)
+    * Fixup ISO9660 build [(#9790)](https://github.com/RT-Thread/rt-thread/pull/9790)
+    * Fix cat command to output actual length
+  * **dfs v2**:
+    * fix cromfs read out of mem range [(#9197)](https://github.com/RT-Thread/rt-thread/pull/9197)
+    * Mark dirty on unmap on shared mapping only [(#9195)](https://github.com/RT-Thread/rt-thread/pull/9195)
+    * fix tmpfs bug  [(#8970)](https://github.com/RT-Thread/rt-thread/pull/8970)
+    * fixup out-of-memory access [(#8973)](https://github.com/RT-Thread/rt-thread/pull/8973)
+    * Fix cromfs bug [(#10054)](https://github.com/RT-Thread/rt-thread/pull/10054)
+    * releases the file pointer after closing the mmap file[(#9917)](https://github.com/RT-Thread/rt-thread/pull/9917)
+    * Add procfs and fix ref count check error;[(#9206)](https://github.com/RT-Thread/rt-thread/pull/9206)
+    * Separate dfs fs data structure ops;[(#9205)](https://github.com/RT-Thread/rt-thread/pull/9205)
+    * Fix DFS_V2 error and FAL warning during compilation [(#9826)](https://github.com/RT-Thread/rt-thread/pull/9826)
+    * Add ioctl assignments [(#9828)](https://github.com/RT-Thread/rt-thread/pull/9828)
+    * Add support for dfs remount functionality [(#9654)](https://github.com/RT-Thread/rt-thread/pull/9654)
+    * Fix dfs_devfs_open memory leak [(#9899)](https://github.com/RT-Thread/rt-thread/pull/9899)
+    * Set errno according to POSIX [(#9654)](https://github.com/RT-Thread/rt-thread/pull/9654)
+    * fixup: aligned proto of lseek to manual[(#9447)](https://github.com/RT-Thread/rt-thread/pull/9447)
+    * Fix symlink system call return value is not expected[(#9326)](https://github.com/RT-Thread/rt-thread/pull/9326)
+    * Fix link system call return value issue[(#9325)](https://github.com/RT-Thread/rt-thread/pull/9325)
+    * Fix rmdir system call return value does not meet user expectations[(#9328)](https://github.com/RT-Thread/rt-thread/pull/9328)
+    * Fix dup system call return value for user mode[(#9324)](https://github.com/RT-Thread/rt-thread/pull/9324)
+    * fix file mmap [(#8865)](https://github.com/RT-Thread/rt-thread/pull/8865)
+    * remove duplicate lseek in devfs[(#8859)](https://github.com/RT-Thread/rt-thread/pull/8859)
+    * fix chdir for ash's cd [(#8824)](https://github.com/RT-Thread/rt-thread/pull/8824)
+    * fix symlink, relative path resolution[(#8755)](https://github.com/RT-Thread/rt-thread/pull/8755)
+    * add dfs pwrite pread
+  * Collecting some config to sub-menu [(#9654)](https://github.com/RT-Thread/rt-thread/pull/9654)
+
+* **utilities**
+  * ulog: Fix the problem of file_buf being released incorrectly;add some comments to ulog for supplement.
+  * ymodem: last frame's data_sz issue, fixed
+  * Fix the issue of LOG_RAW asynchronous output being truncated.
+  * Fix the issue of files not being closed after the sy command in Ymodem.
+
+* **mm**
+  * improve sconscript [(#9028)](https://github.com/RT-Thread/rt-thread/pull/9028)
+  * fix DeprecationWarning: invalid escape sequence.
+  * Fixed the problem of missing the refresh address translation table when unmap memory.
+  * added affinity pages allocator
+  * improve Kconfig structure on MM
+  * install page in a discrete method
+  * page poison debugging and assertion enhancements
+
+* **Net**
+
+  * Update af_inet_at.c[(#9065)](https://github.com/RT-Thread/rt-thread/pull/9065)
+
+  * netdev: add statistics and more inupt parameters to ping command
+
+  * add comments for BSD socket APIs.
+
+  * add more socket flag [(#9436)](https://github.com/RT-Thread/rt-thread/pull/9436)
+
+  * **sal/socket:**
+
+    * optimize sal_bind[(#9413)](https://github.com/RT-Thread/rt-thread/pull/9413)
+    * delete netdev_lo[(#9431)](https://github.com/RT-Thread/rt-thread/pull/9431) 
+    * delay getting sal_proto_family in sal_ioctlsocket[(#9429)](https://github.com/RT-Thread/rt-thread/pull/9429)
+    * replace netdev's spin_lock_irqsave to spin_lock[(#9423)](https://github.com/RT-Thread/rt-thread/pull/9423)
+
+    * Add netdev ifindex feature, it will support SIOCGIFINDEX command and find netdev by ifindex
+    * Add netgetdev api for configure routation
+    * Increased the limit on the number of messages
+    * Fix compilation error when SAL_TLS is turned on
+
+  * **at:**
+
+    * Add support for SERIAL_V2 [(#9860)](https://github.com/RT-Thread/rt-thread/pull/9860);Fix the issue of data loss after socket disconnection for large data transmission volume;Fix the at socket semaphore release exception
+    * Fix the bug that udp communicates with multiple addresses for one socket、DNS locking prevents multithreading confusion 、Achieve at_gethostbyname_r、stability optimization[(#9403)](https://github.com/RT-Thread/rt-thread/pull/9403)
+    * netdb add at_gethostbyname_r 
+    * _gethostbyname_by_device 
+
+  * **lwip: **
+
+    * Add support for independent dns services for multiple network devices [(#9433)](https://github.com/RT-Thread/rt-thread/pull/9433);Hook functions are provided to provide greater flexibility for unknown Ethernet protocolsfix lwip poll macro conflict[(#9434)](https://github.com/RT-Thread/rt-thread/pull/9434)
+    * components: net: lwip: port: add netdev callback on link status change setting
+
+* **ktime**
+
+  * quality: remove recursion on hrtimer [(#9110)](https://github.com/RT-Thread/rt-thread/pull/9110)
+  * support period ktime timeout and multiple ktimer_hrtimer [(#8972)](https://github.com/RT-Thread/rt-thread/pull/8972)
+  * fixup use-after-free [(#8928)](https://github.com/RT-Thread/rt-thread/pull/8928)
+  * Address unsigned long overflow in some ktime function calculations [(#9008)](https://github.com/RT-Thread/rt-thread/pull/9008)
+  * improve ktimer sleep [(#8838)](https://github.com/RT-Thread/rt-thread/pull/8838)
+
+* **sdio**
+  * Fix the issue of not being able to read emmc/sd partitions on ART-PI samrt.[(#9051)](https://github.com/RT-Thread/rt-thread/pull/9051)
+  * add uhs-i mode support to sd driver
+  * Fix wrong max data rate calculation logic
+  
+* **finsh**
+  * Add print logs for msh command failures
+  * add msh command to bind thread to specific core [(#9085)](https://github.com/RT-Thread/rt-thread/pull/9085)
+  * When RT-USHING-POSIX_STDIO, use "get_console" to retrieve the current console descriptor
+  * remove finsh_syscall_lookup() function declaration
+  * solve data access bugs and fix shell.c strcat()
+  * feat: add finsh thread entry hook
+
+* **fal:** 
+
+  * Log warning for block partition exceeding flash length
+  * Fix the type mismatch issue in the FAL driver.
+
+* **ipc:**
+  * Fix the abnormal release of resources when pipe creation fails.
+  * If the requested space is insufficient and an appropriate space cannot be allocated, the new_rbb needs to be reclaimed.
+  * Update the implementation of list traversal [(#9869)](https://github.com/RT-Thread/rt-thread/pull/9869)
+  * remove timer and use list. [(#9825)](https://github.com/RT-Thread/rt-thread/pull/9825)
+  * remove useless judgments from task scheduling [(#9825)](https://github.com/RT-Thread/rt-thread/pull/9825)
+  * remove RT_EBUSY return value comment [(#9825)](https://github.com/RT-Thread/rt-thread/pull/9825)
+  * Fixed the error that a hung thread in the queue pop cannot be resumed by push [(#8839)](https://github.com/RT-Thread/rt-thread/pull/8839)
+  * fix workqueue bug
+  * feat: add ISR safe completion API fix 
+  * rt_atomic_dec_and_test
+
+* **pm:**
+  * The device is registered 和 uninstalled by linked list
+
+* **DM2.0**
+  
+  * **Feature:** 
+  
+    * Support virtual pin,LED, regulator
+  
+    * Support ATA AHCI [(#9683)](https://github.com/RT-Thread/rt-thread/pull/9683)、reset controller [(#9630)](https://github.com/RT-Thread/rt-thread/pull/9630)、hardware mailbox [(#9599)](https://github.com/RT-Thread/rt-thread/pull/9599)、PHY (external) [(#9597)](https://github.com/RT-Thread/rt-thread/pull/9597)、NVME [(#9591)](https://github.com/RT-Thread/rt-thread/pull/9591)、SCSI bus [(#9592)](https://github.com/RT-Thread/rt-thread/pull/9592)、DMA management [(#9682)](https://github.com/RT-Thread/rt-thread/pull/9682)、 IIO (Industrial I/O) [(#9598)](https://github.com/RT-Thread/rt-thread/pull/9598)、import SoC Pinctrl config
+    * Support milkv-duo rt-smart
+    * Support simple block layer
+    * Support MFD syscon
+    * Support import SoC CLK config
+    * Support clock subprobe in OFW
+    * Support driver depends fix auto
+    * Add general sdhci driver it support pio&&sdma [(#9649)](https://github.com/RT-Thread/rt-thread/pull/9649)
+    * Add PWM cool fan[(#9711)](https://github.com/RT-Thread/rt-thread/pull/9711)
+    * Add support AMP mode [(#9762)](https://github.com/RT-Thread/rt-thread/pull/9762)
+    * Add support PIC mailbox in AMP [(#9762)](https://github.com/RT-Thread/rt-thread/pull/9762)
+    * Add ms sleep for link status change
+    * DM Device IDA management
+    * Make SoC Kconfig import easy
+    * Basic PCI/PCIe (Peripheral Component Interconnect Express) bus
+    * Extended drivers MISC interface
+    * Merge ofw_parse and request_chan, use strict mode for device DMA pool
+  
+  * **Fixup:** 
+  
+    * Fixup pin propname check
+    * Fixup pin flags get from OFW and pin depend auto
+    * Fixup PCI device ofw private node for MSI
+    * Fixup pinctrl depend auto
+    * Fixup MSI first IRQ read offset
+    * Fixup PCI MSI global irq map
+    * Fixup bitmap to new type [(#9774)](https://github.com/RT-Thread/rt-thread/pull/9774)
+    * Fixup block value init [(#9774)](https://github.com/RT-Thread/rt-thread/pull/9774)
+    * Fix smart uninitialized buffer on mount(2) [(#9636)](https://github.com/RT-Thread/rt-thread/pull/9636)
+    * Fix DFS partition memory leak [(#9841)](https://github.com/RT-Thread/rt-thread/pull/9841)
+    * Fixup platform request will deadlock
+
+## Libcpu
+
+* **aarch64:**
+  * Fixed the rt_hw_secondary_cpu_bsp_start() bug [(#8898)](https://github.com/RT-Thread/rt-thread/pull/8898)
+  * fix fdt_ptr error [(#9138)](https://github.com/RT-Thread/rt-thread/pull/9138)
+  * cleanup libcpu/aarch64 [(#8950)](https://github.com/RT-Thread/rt-thread/pull/8950)
+  * mmu log fixup [(#9078)](https://github.com/RT-Thread/rt-thread/pull/9078)
+  * memory setup using memblock [(#9092)](https://github.com/RT-Thread/rt-thread/pull/9092)
+  * Update kernel's boot link for ARM64
+  * Add __rt_clz loss in aarch64 [(#9774)](https://github.com/RT-Thread/rt-thread/pull/9774)
+  * Improve memory mapping process [(#9733)](https://github.com/RT-Thread/rt-thread/pull/9733)
+  * fix No memory higher than 1 GB is mapped
+  * Update thread self on sp-switch
+  * Modify atomic implementation[(#9364)](https://github.com/RT-Thread/rt-thread/pull/9364)
+  * fix memheap search in setup of aarch64
+  * aarch64 UMP compiler error [(#8677)](https://github.com/RT-Thread/rt-thread/pull/8677)
+  * improve performance of IRQ dis/en-able [(#8687)](https://github.com/RT-Thread/rt-thread/pull/8687)
+  * call PV_OFFSET on entry for once
+  * quality: include the essential only to avoid recursion
+  * Trimming General Context
+* **arm:** 
+  * implement cpuid get by assembly [(#9052)](https://github.com/RT-Thread/rt-thread/pull/9052)
+  * Correct ".cpu cortex-m4" to ".cpu cortex-m7"
+  * add C11 atomic ticket spinlock [(#8882)](https://github.com/RT-Thread/rt-thread/pull/8882)
+  * discard rt_current_thread [(#8976)](https://github.com/RT-Thread/rt-thread/pull/8976)
+  * add hw thread self [(#8942)](https://github.com/RT-Thread/rt-thread/pull/8942)
+  * cortex-m7: Use hw atomic
+  * cortex-m4: allows rewrite to interrupt enable/disable api to support independent interrupts management[(#9305)](https://github.com/RT-Thread/rt-thread/pull/9305)
+  * generic implementation of vector irq[(#9336)](https://github.com/RT-Thread/rt-thread/pull/9336)
+  * dealing with mem region out of kernel space [(#8847)](https://github.com/RT-Thread/rt-thread/pull/8847)
+* **riscv:** 
+
+   - unify tick.c [(#9164)](https://github.com/RT-Thread/rt-thread/pull/9164)
+   - Bugfix/fix weak handle trap in riscv common crash rv64 trap handling [(#9189)](https://github.com/RT-Thread/rt-thread/pull/9189)
+   - support ARCH_REMAP_KERNEL on libcpu/c906 [(#9123)](https://github.com/RT-Thread/rt-thread/pull/9123)
+   - Fix missing break statements and update functions. [(#9095)](https://github.com/RT-Thread/rt-thread/pull/9095)
+   - Correct the issue where the user-mode sp is 8 less after exiting signal[(#9080)](https://github.com/RT-Thread/rt-thread/pull/9080)
+   - Restore gp before entering user mode from signal handling [(#9072)](https://github.com/RT-Thread/rt-thread/pull/9072)
+   - rv64: support for ARCH_REMAP_KERNEL [(#9067)](https://github.com/RT-Thread/rt-thread/pull/9067)
+   - add a doc for wch saving the irq stack as  stack-512 [(#10063)](https://github.com/RT-Thread/rt-thread/pull/10063)
+   - add comments for rv64 sv39 mmu APIs. [(#10053)](https://github.com/RT-Thread/rt-thread/pull/10053)
+   - fix the PPN length error in GET_PPN(pte). [(#10020)](https://github.com/RT-Thread/rt-thread/pull/10020)
+   - fixup for parameter passing on backtrace
+   - resolve compilation issues in cpuport. h under smp
+   - add build script for vector module, use general vector support code for virt64
+   - correct the alignment check of pv_offset
+   - fix the issue of long jmp with call
+   - Support riscv vector
+   - Fix the system fails to boot properly if ARCH_USING_ASID=y when using ASID in the RV64 MMU
+   - Add c908 cpu
+   - Optimize the judgment condition for selecting vendor directory in rv build script[(#9455)](https://github.com/RT-Thread/rt-thread/pull/9455)
+   - feat: remove redundant codes under virt64, c906[(#9154)](https://github.com/RT-Thread/rt-thread/pull/9154)
+   - feat: unify low-level bringups[(#9181)](https://github.com/RT-Thread/rt-thread/pull/9181)
+   - feat: unify interrupt & IO on rv64
+   - feat: unify mmu related works
+   - feat: unify context on c906, virt64
+   - fit into common64
+   - fixup for parameter passing on backtrace [(#8655)](https://github.com/RT-Thread/rt-thread/pull/8655)
+   - fixup for parameter passing on backtrace
+   - adapt to rv64ilp32 toolchain
+
+## Tools
+
+* Delete the tools/kconfiglib folder and use pip to install kconfiglib.
+* Let cmake generator get more param from `rtconfig.py` [(#9139)](https://github.com/RT-Thread/rt-thread/pull/9139)
+* remove kconfig-frontends
+* fix the issue of the missing link flags added in Sconscript [(#8957)](https://github.com/RT-Thread/rt-thread/pull/8957)
+* fix env toolchain path parse issue [(#8936)](https://github.com/RT-Thread/rt-thread/pull/8936)
+* fix the issue of cc detection failure in Windows [(#8914)](https://github.com/RT-Thread/rt-thread/pull/8914)
+* Address the incompatibility of str.decode() between Python 3 and Python 2 in tools/keil.py.
+* test kconfiglib is installed and info how to install
+* mkdist and sdk_dist support the kconfiglib syntax.
+* Add requirements.txt for python packages
+* Verify l4 platform, fix scons --dist
+* ci.attachconfig.yml is used in combination with scons
+* fix missing some flags added in Sconscript
+* get some info from env to save time [(#10062)](https://github.com/RT-Thread/rt-thread/pull/10062)
+* iar.py fix scons --target=iar --dist [(#9997)](https://github.com/RT-Thread/rt-thread/pull/9997)
+* pkgs --update-force instead of pkgs --update [(#10042)](https://github.com/RT-Thread/rt-thread/pull/10042)
+* Fix cppcheck fail error in lwp.c [(#9912)](https://github.com/RT-Thread/rt-thread/pull/9912)
+* Add sdk_cfg.json setting for env CC detection [(#9890)](https://github.com/RT-Thread/rt-thread/pull/9890)
+* Add clangd support [(#9772)](https://github.com/RT-Thread/rt-thread/pull/9772)
+* Add more c++ src file type [(#9776)](https://github.com/RT-Thread/rt-thread/pull/9776)
+* Add zig target Support [(#9787)](https://github.com/RT-Thread/rt-thread/pull/9787)
+* Fix the issue of missing commands in compile_commands.json[(#9856)](https://github.com/RT-Thread/rt-thread/pull/9856)
+* Update workspace by compile_commands.json [(#9781)](https://github.com/RT-Thread/rt-thread/pull/9781)
+* cmake: fix processing groups with similar name [(#9667)](https://github.com/RT-Thread/rt-thread/pull/9667)
+* vsc: Add project.json generation in vsc.py [(#9632)](https://github.com/RT-Thread/rt-thread/pull/9632)
+* fix the SDK path issue in env script.[(#9362)](https://github.com/RT-Thread/rt-thread/pull/9362)
+* disable tools check temporarily
+* Add --cdb to make compile_commands.json.
+* set at_device package as strict mode
+* add workflow to check env 1.5.x stable version
+* fix doxygen ci grammar error
+* fix menuconfig error on vscode console [(#8843)](https://github.com/RT-Thread/rt-thread/pull/8843)
+* Added clang-format configuration, supporting automatic code formatting via IDE or script.
+* fix EXEC_PATH exists, but the CC does not.
+* Add toolchain detection in sdk packages [(#8827)](https://github.com/RT-Thread/rt-thread/pull/8827)
+* disable doxygen check
+* remove Jenkinsfile
+* Unify the invocation of kconfiglib with scons --menuconfig, --pyconfig, and --pyconfig-silent.
+* Add install env script
+* add RTduino libraries check
+* add footprint information when compiling
+* Unify env-related interfaces in tools and optimize env partial path splicing [(#9185)](https://github.com/RT-Thread/rt-thread/pull/9185),
+* fix: add gd32h759i-start to CI,
+* add the keil ci check for runner
+* env_utility: [tools] fix the SDK package path issue
+* CMake: Generator re-write and bug fixes.
+
+## Action
+
+* use env install script to install env
+* remove env-v1.5.x checking
+* add bsp to bsp_buildings.yml
+* Resolve the issue of pull_request_template.md being accidentally moved to the issue_template directory [(#9021)](https://github.com/RT-Thread/rt-thread/pull/9021)
+* Update the issue template to use an issue form format [(#9011)](https://github.com/RT-Thread/rt-thread/pull/9011)
+* Revert "[action] add cvitek/c906_little ci" [(#9945)](https://github.com/RT-Thread/rt-thread/pull/9945)
+* ci script associated with auto_utest. [(#9933)](https://github.com/RT-Thread/rt-thread/pull/9933)
+* remove spell_check
+* update bsp_buildings.yml
+* set runner to ubuntu22.04 [(#9874)](https://github.com/RT-Thread/rt-thread/pull/9874)
+* Remove rockchip/rk3568 because of the complie time
+* Attachconfig adapts yml syntax features [(#9629)](https://github.com/RT-Thread/rt-thread/pull/9629)
+* Recursive folder lookup attachconfig.yml
+* Add toolchain stup script [(#9453)](https://github.com/RT-Thread/rt-thread/pull/9453)
+* add cppcheck new feature[(#9425)](https://github.com/RT-Thread/rt-thread/pull/9425)
+* Add summary for easy viewing of error messages[(#9426)](https://github.com/RT-Thread/rt-thread/pull/9426)
+* add cppcheck project and action debug[(#9401)](https://github.com/RT-Thread/rt-thread/pull/9401)
+* Supplementary part bsp, Component's label.[(#9350)](https://github.com/RT-Thread/rt-thread/pull/9350)
+* add toolchain download link
+
+## Documents
+
+* **Doxygen**:
+  * Fix some doxygen error.
+  * add prefix for groups [(#9991)](https://github.com/RT-Thread/rt-thread/pull/9991)
+  * add prefix for page name [(#9989)](https://github.com/RT-Thread/rt-thread/pull/9989)
+  * create framework to unify markdown and source code part [(#9946)](https://github.com/RT-Thread/rt-thread/pull/9946)
+  * Introduce how to build & run doxygen on ubuntu [(#9821)](https://github.com/RT-Thread/rt-thread/pull/9821)
+  * Doxygen attach github pages [(#9859)](https://github.com/RT-Thread/rt-thread/pull/9859)
+  * Update doxygen rtthread_logo.png [(#9861)](https://github.com/RT-Thread/rt-thread/pull/9861)
+  * Add pwm、touch、can、i2c、spi、pin、dac、rtc、adcdriver example for doxygen
+  
+* **dfs**:
+  
+  * Add some comments to dfs posix APIs for supplement
+  
+  * Handling unit size in POSIX RW request
+  
+* **finsh**: fix the wrong comments for FINSH_USING_SYMTAB macro in markdown files.
+
+* Update STM32 BSP production tutorial
+
+* add driver example for doxygen [(#9446)](https://github.com/RT-Thread/rt-thread/pull/9446)
+
+* fix source code catalog Name itemUtest
+
+* Remove useless code And Update mem documentation
+
+* fix dead link to contribution_guide.md in README.md README_es.md README_de.md
+
+## Utest
+
+*  add device find [(#8959)](https://github.com/RT-Thread/rt-thread/pull/8959)
+*  remove delay for on thread testing [(#9053)](https://github.com/RT-Thread/rt-thread/pull/9053)
+*  Implementation of some test cases has been added.
+   * Add implementation of more test case for rt_memcpy  [(#9823)](https://github.com/RT-Thread/rt-thread/pull/9823)
+   * Add implementation of rt_memcmp test cases [(#9823)](https://github.com/RT-Thread/rt-thread/pull/9823)
+   * Add implementation of uassert_ptr_equal and uassert_ptr_not_equal [(#9823)](https://github.com/RT-Thread/rt-thread/pull/9823)
+   * Add rt_memcpy utest case [(#9815)](https://github.com/RT-Thread/rt-thread/pull/9815)
+   * Add rt_memset test case [(#9831)](https://github.com/RT-Thread/rt-thread/pull/9831)
+   * Add float operators uassert_float_equal and uassert_float_not_equal [(#9868)](https://github.com/RT-Thread/rt-thread/pull/9868) 
+   * Add workqueue_tc [(#9850)](https://github.com/RT-Thread/rt-thread/pull/9850)
+   * Add rt_sprintf family functions test cases [(#9820)](https://github.com/RT-Thread/rt-thread/pull/9820)
+   * add mutex_pi_tc[(#9353)](https://github.com/RT-Thread/rt-thread/pull/9353)
+   * add smp testcases[(#9356)](https://github.com/RT-Thread/rt-thread/pull/9356)
+*  precise & readable mm fault type [(#9047)](https://github.com/RT-Thread/rt-thread/pull/9047)
+*  fix twice operation of uassert;[(#9911)](https://github.com/RT-Thread/rt-thread/pull/9911)
+*  fix an issue where macros are output directly when UTEST_UNIT_RUN is nested [(#9868)](https://github.com/RT-Thread/rt-thread/pull/9868)
+*  Optimize the utest to support new CI [(#9815)](https://github.com/RT-Thread/rt-thread/pull/9815)
+*  Remove rt_kprintf from TC_rt_sprintf.c [(#9823)](https://github.com/RT-Thread/rt-thread/pull/9823)
+*  make RT_USING_CI_ACTION to be clear RT_USING_CI_ACTION will select RT_UTEST_USING_AUTO_RUN and RT_UTEST_USING_ALL_CASES[(#9889)](https://github.com/RT-Thread/rt-thread/pull/9889)
+*  fix race in mutex tc & add recurse lock tc[(#9365)](https://github.com/RT-Thread/rt-thread/pull/9365)
+*  feat: print progress on testing
+
+## BSP
+
+* Some driver issues have been resolved and some driver support has been added...
+* Added some new BSPs
+  * ST: 
+    * STM32H730 [(#9962)](https://github.com/RT-Thread/rt-thread/pull/9962)、stm32h723-st-nucleo board [(#9738)](https://github.com/RT-Thread/rt-thread/pull/9738)、stm32f407-lckfb-skystar、 stm32h7s7-st-disco、FK407M2-ZGT6 
+  * Infineon:
+    * XMC7200
+  * HT32:
+    * ht32f53252 [(#9876)](https://github.com/RT-Thread/rt-thread/pull/9876)
+  * HC32: 
+    * lckfb-hc32f4a0-lqfp100  [(#9119)](https://github.com/RT-Thread/rt-thread/pull/9119)
+  * mm32f526x:
+    * mm32f526x [(#9940)](https://github.com/RT-Thread/rt-thread/pull/9940)
+  * gd32:
+    * gd32e503v-eval
+    * gd32h759i-start bsp 
+  * renesas:
+    * ra6e2-fpb
+    * RZN2L-RSK[(#9450)](https://github.com/RT-Thread/rt-thread/pull/9450)、RZT2M-RSK、EtherKit
+  * rpi4b:
+    - qemu-rpi4b
+  * canaan:
+    * k230
+
+# RT-Thread v5.1.0 released
+
+Change log since v5.0.2 release:
+
+## Kernel
+
+- kservice: Use C89 format to avoid warnings; Fix start address misalignment issue; Remove malloc scheduler lock, fix incorrect use of memheap lock; Add MT-safe console support
+- rtdef: Add rt_always_inline operation function
+- cpu: Optimize CPU scheduler
+- thread: Remove thread reference count
+- rthw: Add rt_hw_interrupt_uninstall declaration
+- Add hooks for malloc service; Support hook lists (add multiple hooks in a single hook node)
+- Optimize system scheduler; Improve rt_vsnprintf
+- Prohibit nested blocking IPC interfaces such as free, malloc inside spinlock
+- Rename RT_DEBUGING_INIT to RT_DEBUGING_AUTO_INIT
+- Define standard spinlock to require scheduler to be disabled, all external spinlocks use disable/enable scheduler mode
+- Add RT_USING_NANO macro, support BSP one-click switch to Nano version
+- Add functionality to release mutex locks when deleting threads
+- Add support for controlling configuration of rt_sem to set the maximum value of semaphore
+- Add RV64 RTOS kernel backtrace support; Add ARM64, RV64 implementations
+- Add thread creation function time slice parameter check
+- Add scons compilation to display project space usage information ([#8697](https://github.com/RT-Thread/rt-thread/pull/8697))
+- Add abstract layer of scheduler (rt_sched), optimize SMP performance ([#8537](https://github.com/RT-Thread/rt-thread/pull/8537))
+- Fix SMP mode software timer repeated triggering issue
+- Fix rt_slist_for_each_entry macro cannot traverse elements in slist linked list normally issue
+- Fix thread cannot be reclaimed error; Fix deadlock issue of repeatedly obtaining spinlock in SMP mode rt_timer timer check and timer start
+- Fix software timer sleep issue; Fix idle_hook_list not locked issue; Fix thread exit system function possible issue
+- Fix issue of only being able to schedule two threads with the same priority
+- Fix data race issue of accessing percpu object data; Fix rt_exit_critical_safe function error return issue
+- Fix SIGNAL node allocation failure return error issue
+
+## Components
+
+- Drivers
+  - core: Adapt and optimize new device driver model; Fix issue where some device drivers could not enter the probe function after registration
+  - usb: rt_size_t follows UNIX style, changed to rt_ssize_t
+  - virtio: qemu-virt64-aarch64 / qemu-virt64-riscv support SDL2
+  - i2c: Add generic software simulation I2C; Add device tree support
+  - spi: Fix qspi configuration not taking effect issue
+  - sdio: Add rt_mmcsd_fops_flush(block_dev) function
+  - rtc: Fix rt_soft_rtc_sync function warning issue caused by using deprecated declaration method
+  - clk: Add clk driver framework, preparing for full use of device tree
+  - pwm: Add console secondary command completion feature
+  - can: Optimize can close order ([#8780](https://github.com/RT-Thread/rt-thread/pull/8780))
+  - serial: Add tty name allocation mechanism when using dm, support more baud rates; Add tty related hook functions; Add serial framework device tree support; Fix serial_v2 memory leak issue; Fix virtual serial port data can only be successfully sent once issue
+  - pic: Add pic-gic support
+  - pinctrl: Add pinctrl/pin-irqchip support
+  - hwtimer: Improve Cortex®-a, ARMv8 driver
+- DFS
+  - Add exfat configuration;
+  - dfs_v1: Fix assertion bug caused by FATFS file system using cat command
+  - dfs_v2:
+    - Update Smart kernel to default dfsv2; Update elmfat version from r14b to r15
+    - Support O_DIRECT and O_SYNC flags
+    - Fix dfs_dentry_lookup resolving file path issue
+    - Fix dfs_tmpfs_write error; Fix dfs_v2 dfs_romfs_getdents buffer overflow issue
+    - Fix potential heap buffer overflow issue in dfs_v2 dfs_file
+    - Fix transfer fd under dfs_v2, dentry or vnode not existing issue; Fix lwp_free timer recovery call issue
+    - Fix permissions issue in elm; Fix page cache issue; Fix unmounted mqueue issue
+    - Add dfs pwrite pread ([#8672](https://github.com/RT-Thread/rt-thread/pull/8672)); Add ptyfs support ([#8672](https://github.com/RT-Thread/rt-thread/pull/8672))
+    - Add symbolic link, regular file management and other features ([#8672](https://github.com/RT-Thread/rt-thread/pull/8672))
+    - Add sys_utimensat function; Add cromfs symbolic link ([#8132](https://github.com/RT-Thread/rt-thread/pull/8132))
+    - Add cromfs mmap support ([#8218](https://github.com/RT-Thread/rt-thread/pull/8218))
+- Libc
+  - Fix difftime function multiple definitions issue in MDK compilation environment
+  - Fix data race issue in shared counter ID list; Fix compatibility issue of ctime.c file with old drivers
+  - Fix macro redefinition issue in eventfd due to toolchain update
+  - Fix logic error in posix thread local storage search for posix thread handle
+  - Fix issue of adding legacy macros when unable to get IAR version
+  - Improve gcc picolibc; Further optimize epoll and timerfd
+  - Add RT_USING_INTERNAL_LIBC_ONLY macro; Add GCC generic atomic operation functionality ([#8648](https://github.com/RT-Thread/rt-thread/pull/8648))
+- LWP
+  - Add sys_setitimer function
+  - Replace lwp_new function with lwp_create; Replace irq disable/enable code in futex; Replace off_t with size_t in lwp_syscall.c
+  - Fix CPU affinity setting issue; Fix rt_channel internal lock issue; Fix pid recycling issue; Fix init process signal protection flag setting ([#8797](https://github.com/RT-Thread/rt-thread/pull/8797))
+  - Enable automatic selection of LDSO and pcache options by default after enabling smart/lwp options
+  - Update AF_UNIX bind and connect entry, update AF_UNIX data structure sockaddr_un to standard structure
+- MM
+  - Add reserved memory support; Add rt_aspace_mremap_range function implementation
+  - Fix issue of using released memory in aspace_traversal; Fix issue of page_install function on shadow region
+- Net
+  - Fix wifi scan command duplication issue ([#8666](https://github.com/RT-Thread/rt-thread/pull/8666))
+  - at: Optimize at formatting output to avoid conflicts between multiple at client and server outputs; Optimize AT component, and fix potential memory leak issue
+  - lwip: Fix possible deadlock issue under SMP
+  - sal: Add ifconfig updown function; Add message quantity limit; Update SAL socket abstraction layer, improve socketpair, sendmsg, recvmsg functionality
+- Finsh
+  - Optimize list_thread display; Optimize MSH macro definition
+  - Add finsh thread stack size check; Add finsh thread entry hook function
+- FAL
+  - Add blocks mechanism for fal, support adding special block definitions
+- MProtect
+  - Add MPU abstraction layer design, support ARMv7-M, ARMv8-M architecture
+- Others
+  - Synchronize differences in kernel, file system, etc.; Remove vmm
+  - Fix -Wmissing-prototypes warning
+
+## Libcpu
+
+- AARCH64: Fix kernel entry symbol; Fix trace information not visible issue under ulog environment; Use device tree to initialize CPU and memory; Improve IRQ disable/enable performance
+- ARM: Add support for Cortex®-M85, Cortex®-R52 architectures; Fix abnormal SMP operation issue in Cortex®-A ([#8517](https://github.com/RT-Thread/rt-thread/pull/8517))
+- RISC-V: Fix d1s smart build failure issue ([#8212](https://github.com/RT-Thread/rt-thread/pull/8212))
+- Fix mmap support
+- Support for the overall backtrace framework in the RT-Thread kernel; Added weak implementation of architecture-level backtrace service; Added support for RV64 architecture
+- Standardize the Libcpu group name as libcpu
+
+## Tools
+
+- Support for LLVMEmbeddedToolchainForArm-17.0.1 toolchain
+- Added `scons --target=vsc/--pack=xxx` command; Added prebuilding operation
+- Fixed rtconfig.h file recognition issue in MPU in scripts
+- rt_studio: Fixed missing {cross_toolchain_flags} field issue when importing bsp projects in rt-studio
+- env: Fixed built-in python2 subprocess issue
+
+## Action
+
+- Fixed Doxygen CI issue
+- Added CI monitoring for BSP
+- Added bsp attach check CI
+
+## Utest
+
+- Added memory system test cases; Added serial_v2 framework test cases; Added mm test cases; Added scheduler test cases
+
+## BSP
+
+- Improved several bsp driver files; Fixed some issues in bsp
+- RT-Smart support: DFZU2EG MPSoC, cv181x-riscv
+- STM32: STM32 G0, G4, L0, L4 series support one-click switch to RT-Thread Nano version; STM32 Nucleo series added board-level identification macros; STM32 series added Nano version attach config related CI
+- RTduino support: raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark
+- Added some new BSP:
+  - Adafruit:Metro M4
+  - Seeed Studio:Wio-Terminal
+  - ST:stm32L431_tencentos、stm32h7s7-disco,stm32f407-lckfb-skystar、stm32h503-st-nucleo
+  - Renesas:ek-ra8m1、ek-ra8d1、ra8d1-vision-board
+  - AT32:at32f402-start、at32f405-start
+  - HT32:ht32f52352、ht32f12366
+  - AVR32:at32uc3a0256、at32uc3b0256
+  - CVITEK: c906_little、cv18xx_risc-v
+  - WCH:yd-ch32v307vct6(risc-v)
+  - HC32:ev_hc32f4a0_lqfp176、ev_hc32f460_lqfp100_v2、ev_hc32f448_lqfp80
+  - GD32:gd32407v-lckfb
+  - NXP:
+    - mcxn:frdm-mcxn947
+    - mcxa:frdm-mcxa153
+
+## Userapps
+
+- Fixed issue where the timer would not run when the user space retrieves the current time and then retrieves it again in kernel space, resulting in a negative difference
+- Default enabling of epoll/eventfd/signalfd/timerfd/select when using RT-Smart
+- Removed prebuilt versions
+- Fixed setitimer bug, improved FUTEX support
+- Added support for RT-Smart terminal subsystem ([#8672](https://github.com/RT-Thread/rt-thread/pull/8672))
+- Other updates: ssh, sftp, weston, vim...
+
 # RT-Thread v5.0.2 released
 
 Change Log Since v5.0.1 Release
@@ -248,16 +1019,16 @@ add debug info for gdb
 - Fix the deque issue for Env['CPPDEFINES'] (#7541)
 - Modify move file_check.py into ci folder
 
-## action
+## Action
 
 - Refactoring and optimizing the execution process of ci and adding manual triggers and cppcheck checks for scons dist
 
-## utest
+## Utest
 
 - Add UtestTcTab section access under MSC and change access under gcc
 - Fix strtol,the sizeof incorrect calculation,the issue of thread test case looping at high optimization levels,file open close mismatch
 
-## bsp
+## BSP
 
 fix mismatched function types in rt_pin_ops for all drv_gpio.c
 
@@ -2544,7 +3315,7 @@ DBG_COLOR - Whether use color log in console.
 
 # RT-Thread v3.0.1 Change log
 
-## Platform:
+## Platform
 
 * Add mmap()/munmap() API for POSIX compatibility.
 * Fix the filesystem_operation_table issue.
@@ -2557,12 +3328,12 @@ DBG_COLOR - Whether use color log in console.
 * Add IPv6 options in Kconfig;
 * Fix the module_id issue in _rt_thread_init;
 
-## Tools:
+## Tools
 
 * Add menuconfig for Linux/Mac platform: use `scons --memuconfig` to enable it;
 * Add LIBS feature for IAR project;
 
-## BSP:
+## BSP
 
 * Enhance LPC54608 BSP for kinds of compiler;
 * Add GPIO/I2C/SPI driver for Loongson 1C;
@@ -2574,7 +3345,7 @@ DBG_COLOR - Whether use color log in console.
 * Add Audio/MMC/SLCD/Touch/USB slave/RTC/SPI/SFC Flash driver in Ingenic X1000 bsp;
 
 # RT-Thread v3.0.0 Change log
-## Platform:
+## Platform
 
 * Add more POSIX features, for example poll/select, signal, termios etc.
 * Add waitqueue for poll feature.
@@ -2585,17 +3356,17 @@ DBG_COLOR - Whether use color log in console.
 * Integrate SFUD into RT-Thread to unify the operations of spi flash.
 * Update lwIP to v2.0.2 version.
 
-## Tools:
+## Tools
 
 * Enable packages, with ENV tool.
 * menuconfig & Kconfig.
 * Add scons --dist for make a distribution for specified BSP.
 
-## BSP:
+## BSP
 
 * more MCU porting.
 
-## IoT:
+## IoT
 
 * put more IoT components as packages, for example, MQTT, CoAP, HTTP, TLS etc.
 
@@ -2605,7 +3376,7 @@ This release is the final release for RT-Thread v2.1.0 branch. This release has
 
 The change log since last stable version:
 
-## Kernel:
+## Kernel  
 
 * Move the init component to the kernel.
 * Fix the device open flag issue.

+ 0 - 154
Jenkinsfile

@@ -1,154 +0,0 @@
-pipeline {
-    agent {
-        docker { 
-            image 'ubuntu_ci:latest' 
-        }
-    }
-    stages {
-        stage('build') {
-            steps {
-                sh '''
-
-                    uname -a
-                    cat /etc/issue
-                    apt-get update
-                    apt-get install -y -qq lib32ncurses5 lib32z1 > /dev/null
-
-                    curl -s http://download.isrc.rt-thread.com/download/gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2 | sudo tar xjf - -C /opt
-                    /opt/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi-gcc --version
-                '''
-
-                script {
-                    def bsp_array = [
-                        ['CME_M7', 'sourcery-arm'],
-                        // ['apollo2', 'sourcery-arm'], /* CI compile not support */
-                        ['asm9260t', 'sourcery-arm'],
-                        ['at91sam9260', 'sourcery-arm'],
-                        ['allwinner_tina', 'sourcery-arm'],
-                        ['efm32', 'sourcery-arm'],
-                        // ['gd32e230k-start', 'sourcery-arm'], /* CI compile not support */
-                        ['gd32303e-eval', 'sourcery-arm'],
-                        // ['gd32450z-eval', 'sourcery-arm'], /* CI link not support */
-                        ['imx6sx/cortex-a9', 'sourcery-arm'],
-                        // ['imxrt/imxrt1052-atk-commander', 'sourcery-arm'], /* CI compile not support */
-                        // ['imxrt/imxrt1052-fire-pro', 'sourcery-arm'], /* CI compile not support */
-                        // ['imxrt/imxrt1052-nxp-evk', 'sourcery-arm'], /* CI compile not support */
-                        ['lm3s8962', 'sourcery-arm'],
-                        ['lm3s9b9x', 'sourcery-arm'],
-                        ['lm4f232', 'sourcery-arm'],
-                        ['tm4c129x', 'sourcery-arm'],
-                        // ['lpc43xx/M4', 'sourcery-arm'], /* CI compile not support */
-                        ['lpc176x', 'sourcery-arm'],
-                        ['lpc178x', 'sourcery-arm'],
-                        ['lpc408x', 'sourcery-arm'],
-                        ['lpc1114', 'sourcery-arm'],
-                        ['lpc2148', 'sourcery-arm'],
-                        ['lpc2478', 'sourcery-arm'],
-                        ['lpc5410x', 'sourcery-arm'],
-                        // ['lpc54114-lite', 'sourcery-arm'], /* CI link not support */
-                        ['mb9bf500r', 'sourcery-arm'],
-                        ['mb9bf506r', 'sourcery-arm'],
-                        ['mb9bf618s', 'sourcery-arm'],
-                        ['mb9bf568r', 'sourcery-arm'],
-                        ['mini2440', 'sourcery-arm'],
-                        ['nuvoton_nuc472', 'sourcery-arm'],
-                        ['nuvoton_m05x', 'sourcery-arm'],
-                        ['qemu-vexpress-a9', 'sourcery-arm'],
-                        ['qemu-vexpress-gemini', 'sourcery-arm'],
-                        ['sam7x', 'sourcery-arm'],
-                        // ['stm32/stm32f072-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f091-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f103-atk-nano', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f103-atk-warshipv3', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f103-dofly-lyc8', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f103-dofly-M3S', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f103-fire-arbitrary', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f103-hw100k-ibox', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f103-mini-system', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f103-onenet-nbiot', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f103-yf-ufun', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f107-uc-eval', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f401-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f405-smdz-breadfruit', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f407-atk-explorer', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f407-st-discovery', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f410-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f411-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f411-weact-MiniF4', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f413-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f427-robomaster-a', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f429-armfly-v6', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f429-atk-apollo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f429-fire-challenger', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f429-st-disco', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f446-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f469-st-disco', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32f746-st-disco', 'sourcery-arm'], /* CI compile -mcpu= not support */
-                        // ['stm32/stm32f767-atk-apollo', 'sourcery-arm'], /* CI compile -mcpu= not support */
-                        // ['stm32/stm32f767-fire-challenger', 'sourcery-arm'], /* CI compile -mcpu= not support */
-                        // ['stm32/stm32f767-st-nucleo', 'sourcery-arm'], /* CI compile -mcpu= not support */
-                        // ['stm32/stm32g071-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32g431-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32h743-atk-apollo', 'sourcery-arm'], /* CI compile -mcpu= not support */
-                        // ['stm32/stm32h743-st-nucleo', 'sourcery-arm'], /* CI compile -mcpu= not support */
-                        // ['stm32/stm32h747-st-discovery', 'sourcery-arm'], /* CI compile -mcpu= not support */
-                        // ['stm32/stm32l4r9-st-eval', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32l010-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32l053-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32l412-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32l432-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32l433-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32l475-atk-pandora', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32l475-st-discovery', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32l476-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32l496-ali-developer', 'sourcery-arm'], /* CI compile C99 not support */
-                        // ['stm32/stm32l496-st-nucleo', 'sourcery-arm'], /* CI compile C99 not support */
-                        ['stm32f20x', 'sourcery-arm'],
-                        ['beaglebone', 'sourcery-arm'],
-                        ['frdm-k64f', 'sourcery-arm'],
-                        ['xplorer4330/M4', 'sourcery-arm'],
-                        // ['at32/at32f403a-start', 'sourcery-arm'],/* CI link not support */
-                        // ['at32/at32f407-start', 'sourcery-arm']/* CI compile C99 not support */
-                    ]
-
-                    for (int i in bsp_array) {
-
-                        sh """
-
-                        export RTT_BSP=${i.getAt(0)}
-                        export RTT_TOOL_CHAIN=${i.getAt(1)}
-                        export RTT_EXEC_PATH=/opt/gcc-arm-none-eabi-5_4-2016q3/bin/
-                        export RTT_CC='gcc'
-                        export RTT_ROOT=`pwd`
-
-                        echo \$RTT_EXEC_PATH
-
-                        export CPUS=\$(cat /proc/cpuinfo | grep "processor" | sort | uniq | wc -l)
-                        scons -j\${CPUS} -C bsp/\$RTT_BSP
-                        """
-                    }
-                }
-            }
-        }
-    }
-    post {
-        failure {
-            addGiteeMRComment(comment: """:x: Jenkins CI 构建失败。\n\n \
-查看更多日志详细信息: \
-<a href="${env.RUN_DISPLAY_URL}">Jenkins[${env.JOB_NAME} # ${env.BUILD_NUMBER}]</a> \
-<hr /> \
-:x: The Jenkins CI build failed.\n\n \
-Results available at: \
-<a href="${env.RUN_DISPLAY_URL}">Jenkins[${env.JOB_NAME} # ${env.BUILD_NUMBER}]</a>""")
-        }
-        success {
-            addGiteeMRComment(comment: """:white_check_mark: Jenkins CI 构建通过。\n\n \
-查看更多日志详细信息: \
-<a href="${env.RUN_DISPLAY_URL}">Jenkins[${env.JOB_NAME} # ${env.BUILD_NUMBER}]</a> \
-<hr /> \
-:white_check_mark: The Jenkins CI build passed.\n\n \
-Results available at: \
-<a href="${env.RUN_DISPLAY_URL}">Jenkins[${env.JOB_NAME} # ${env.BUILD_NUMBER}]</a>""")
-        }
-    }
-}

+ 4 - 4
Kconfig

@@ -1,4 +1,4 @@
-source "$RTT_DIR/src/Kconfig"
-source "$RTT_DIR/libcpu/Kconfig"
-source "$RTT_DIR/components/Kconfig"
-source "$RTT_DIR/examples/utest/testcases/Kconfig"
+rsource "src/Kconfig"
+rsource "libcpu/Kconfig"
+rsource "components/Kconfig"
+rsource "examples/utest/testcases/Kconfig"

+ 4 - 3
README.md

@@ -11,7 +11,8 @@
 [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/RT-Thread/rt-thread?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
 [![GitHub pull-requests](https://img.shields.io/github/issues-pr/RT-Thread/rt-thread.svg)](https://github.com/RT-Thread/rt-thread/pulls)
 [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](https://github.com/RT-Thread/rt-thread/pulls)
-
+[![RT-Thread BSP Static Build Check](https://github.com/RT-Thread/rt-thread/actions/workflows/bsp_buildings.yml/badge.svg)](https://github.com/RT-Thread/rt-thread/actions/workflows/bsp_buildings.yml)
+<a href="https://hellogithub.com/repository/5816fc3c1e714d109631ceb377538ca9" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=5816fc3c1e714d109631ceb377538ca9&claim_uid=kVCe5FXIMGAjJfy" alt="Featured|HelloGitHub" style="width: 100px; height: 20px;" width="250" height="54" /></a>
 # RT-Thread
 
 RT-Thread was born in 2006, it is an open source, neutral, and community-based real-time operating system (RTOS).
@@ -53,7 +54,7 @@ It includes:
 
 | Name          | Description                                             |
 | ------------- | ------------------------------------------------------- |
-| BSP          | Board Support Package based on the porting of various development boards |
+| bsp        | Board Support Package based on the porting of various development boards |
 | components    | Components, such as finsh shell, file system, protocol stack etc. |
 | documentation | Related documents, like coding style, doxygen etc.        |
 | examples      | Related sample code                                     |
@@ -122,7 +123,7 @@ Based on [STM32F103 BluePill](https://github.com/RT-Thread/rt-thread/tree/master
 ## Simulator
 
 RT-Thread BSP can be compiled directly and downloaded to the corresponding development board for use. In addition, RT-Thread also provides qemu-vexpress-a9 BSP, which can be used without hardware platform. See the getting started guide below for details. Getting Started of QEMU with Env:
-[Windows](documentation/quick-start/quick_start_qemu/quick_start_qemu.md) | [Linux Ubuntu](documentation/quick-start/quick_start_qemu/quick_start_qemu_linux.md) | [Mac OS](documentation/quick-start/quick_start_qemu/quick_start_qemu_macos.md)
+[Windows](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_windows.md) | [Linux Ubuntu](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_linux.md) | [Mac OS](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_macos.md)
 
 # License
 

+ 7 - 7
README_de.md

@@ -53,14 +53,14 @@ Sie umfasst:
 
 | Name          | Beschreibung                                             |
 | ------------- | ------------------------------------------------------- |
-| BSP          | Board Support Package basierend auf der Portierung von verschiedenen Entwicklungsboards. |
-| Komponenten    | Komponenten, wie Shell, Dateisystem, Protokollstapel usw. |
-| Dokumentation | Verwandte Dokumente, wie Coding Style, Doxygen usw.        |
-| Beispiele      | Zugehöriger Beispielcode.                                 |
-| einschließen   | Kopfdateien des RT-Thread-Kernels.                        |
+| bsp       | Board Support Package basierend auf der Portierung von verschiedenen Entwicklungsboards. |
+| components | Komponenten, wie Shell, Dateisystem, Protokollstapel usw. |
+| documentation | Verwandte Dokumente, wie Coding Style, Doxygen usw.        |
+| examples | Zugehöriger Beispielcode.                                 |
+| include | Kopfdateien des RT-Thread-Kernels.                        |
 | libcpu        | CPU-Portierungscode wie ARM/MIPS/RISC-V usw. |
 | src           | Die Quelldateien für den RT-Thread-Kernel. |
-| Werkzeuge     | Die Skriptdateien für das RT-Thread Befehlserstellungswerkzeug.  |
+| tools | Die Skriptdateien für das RT-Thread Befehlserstellungswerkzeug.  |
 
 RT-Thread wurde inzwischen für fast 200 Entwicklungsboards portiert, die meisten BSPs unterstützen MDK, IAR-Entwicklungsumgebung und GCC-Compiler und bieten ein Standard-MDK- und IAR-Projekt, das es den Benutzern ermöglicht, ihren eigenen Anwendungscode direkt auf der Grundlage des Projekts hinzuzufügen. Jedes BSP hat eine ähnliche Verzeichnisstruktur, und die meisten BSPs bieten eine README.md-Datei, eine Datei im Markdown-Format, die eine grundlegende Einführung in das BSP enthält und erklärt, wie man einfach mit dem BSP beginnt.
 
@@ -122,7 +122,7 @@ Basierend auf [STM32F103 BluePill](https://github.com/RT-Thread/rt-thread/tree/m
 ## Simulator
 
 Das RT-Thread BSP kann direkt kompiliert und zur Verwendung auf das entsprechende Entwicklungsboard heruntergeladen werden. Darüber hinaus bietet RT-Thread auch das qemu-vexpress-a9 BSP, das ohne Hardware-Plattform verwendet werden kann. Weitere Informationen finden Sie in der Anleitung für die ersten Schritte unten.
-[Windows](documentation/quick-start/quick_start_qemu/quick_start_qemu.md) | [Linux Ubuntu](documentation/quick-start/quick_start_qemu/quick_start_qemu_linux.md) | [Mac OS](documentation/quick-start/quick_start_qemu/quick_start_qemu_macos.md)
+[Windows](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_windows.md) | [Linux Ubuntu](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_linux.md) | [Mac OS](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_macos.md)
 
 # Lizenz
 

+ 7 - 7
README_es.md

@@ -53,14 +53,14 @@ Incluye:
 
 | Name          | Descripción                                             |
 | ------------- | ------------------------------------------------------- |
-| BSP          | Board Support Package basado en la portación de varias placas de desarrollo |
+| bsp        | Board Support Package basado en la portación de varias placas de desarrollo |
 | componentes    | Componentes, como finsh shell, sistema de archivos, pila de protocolos, etc.|
-| documentación | Documentos relacionados, como el estilo de codificación, doxygen, etc.       |
-| ejemplos      | Código de ejemplo relacionado                            |
-| incluir       | Archivos de cabecera del kernel RT-Thread.                |
-| libcpu        | Código de portabilidad de CPUs como ARM/MIPS/RISC-V, etc.|
+| documentation | Documentos relacionados, como el estilo de codificación, doxygen, etc.       |
+| examples | Código de ejemplo relacionado                            |
+| include | Archivos de cabecera del kernel RT-Thread.                |
+| libcpu  | Código de portabilidad de CPUs como ARM/MIPS/RISC-V, etc.|
 | src           | Los archivos fuente del kernel RT-Thread. |
-| herramientas  | Los archivos de script para la herramienta de construcción de comandos de RT-Thread. |
+| tools | Los archivos de script para la herramienta de construcción de comandos de RT-Thread. |
 
 RT-Thread ha sido portado para casi 200 placas de desarrollo, la mayoría de los BSPs soportan el MDK, el entorno de desarrollo IAR y el compilador GCC, y han proporcionado un proyecto MDK e IAR por defecto, que permite a los usuarios añadir su propio código de aplicación directamente basado en el proyecto. Cada BSP tiene una estructura de directorio similar, y la mayoría de los BSPs proporcionan un archivo README.md, que es un archivo con formato markdown que contiene la introducción básica del BSP, y presenta cómo empezar a usar el BSP de forma sencilla.
 
@@ -121,7 +121,7 @@ Basado en [STM32F103 BluePill](https://github.com/RT-Thread/rt-thread/tree/maste
 
 ## Simulator
 
-El BSP de RT-Thread puede compilarse directamente y descargarse en la placa de desarrollo correspondiente para su uso. Además, RT-Thread también proporciona el BSP qemu-vexpress-a9, que puede utilizarse sin plataforma de hardware. Consulte la guía de inicio más abajo para más detalles. [Windows](documentation/quick-start/quick_start_qemu/quick_start_qemu.md) | [Linux Ubuntu](documentation/quick-start/quick_start_qemu/quick_start_qemu_linux.md) | [Mac OS](documentation/quick-start/quick_start_qemu/quick_start_qemu_macos.md)
+El BSP de RT-Thread puede compilarse directamente y descargarse en la placa de desarrollo correspondiente para su uso. Además, RT-Thread también proporciona el BSP qemu-vexpress-a9, que puede utilizarse sin plataforma de hardware. Consulte la guía de inicio más abajo para más detalles. [Windows](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_windows.md) | [Linux Ubuntu](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_linux.md) | [Mac OS](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_macos.md)
 
 # Licencia
 

+ 3 - 3
README_zh.md

@@ -57,7 +57,7 @@ RT-Thread源代码目录结构如下图所示:
 
 | 名称          | 描述                                                    |
 | ------------- | ------------------------------------------------------- |
-| BSP           | Board Support Package(板级支持包)基于各种开发板的移植 |
+| bsp           | Board Support Package(板级支持包)基于各种开发板的移植 |
 | components    | RT-Thread 的各个组件代码,例如 finsh,gui 等。          |
 | documentation | 相关文档,如编码规范等                                  |
 | examples      | 相关示例代码                                            |
@@ -124,9 +124,9 @@ RT-Thread Studio演示:
 
 RT-Thread BSP可以直接编译并下载到相应的开发板使用。此外,RT-Thread还提供 qemu-vexpress-a9 BSP,无需硬件平台即可使用。有关详细信息,请参阅下面的入门指南。
 
-[QEMU 入门指南(Windows)](documentation/quick-start/quick_start_qemu/quick_start_qemu.md)
+[QEMU 入门指南(Windows)](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_windows.md)
 
-[QEMU 入门指南(Ubuntu)](documentation/quick-start/quick_start_qemu/quick_start_qemu_linux.md)
+[QEMU 入门指南(Ubuntu)](documentation/2.quick-start/quick_start_qemu/quick_start_qemu_linux.md)
 
 
 ## 文档

+ 11 - 0
bsp/.clang-format

@@ -0,0 +1,11 @@
+# Available style options are described in https://clang.llvm.org/docs/ClangFormatStyleOptions.html
+#
+# An easy way to create the .clang-format file is:
+#
+# clang-format -style=llvm -dump-config > .clang-format
+#
+---
+Language: Cpp
+DisableFormat: true
+---
+

+ 23 - 0
bsp/qemu-vexpress-a9/.ci/attachconfig/ci.attachconfig.yml

@@ -0,0 +1,23 @@
+# ------ PERIPHERAL CI ------
+peripheral.EMAC:
+    kconfig:
+      - CONFIG_BSP_DRV_EMAC=y
+peripheral.LVGL:
+    kconfig:
+      - CONFIG_RT_USING_POSIX_SOCKET=y  
+      - ONFIG_RT_USING_LWIP=y 
+      - CONFIG_BSP_USING_LVGL=y     
+      
+# ------ online-packages CI ------
+online-packages.misc.entertainment.tetris:
+    kconfig:
+      - CONFIG_PKG_USING_TETRIS=y
+online-packages.misc.entertainment.2048:
+    kconfig:
+      - CONFIG_PKG_USING_2048=y
+online-packages.ai.llmchat:
+    kconfig:
+      - CONFIG_WEBCLIENT_USING_MBED_TLS=y
+      - CONFIG_BSP_DRV_EMAC=y
+      - CONFIG_PKG_USING_LLMCHAT=y
+      - CONFIG_PKG_LLM_API_KEY="sk-xxxxxx"

+ 198 - 27
bsp/qemu-vexpress-a9/.config

@@ -1,7 +1,3 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# RT-Thread Project Configuration
-#
 
 #
 # RT-Thread Kernel
@@ -19,7 +15,6 @@ CONFIG_RT_ALIGN_SIZE=8
 CONFIG_RT_THREAD_PRIORITY_256=y
 CONFIG_RT_THREAD_PRIORITY_MAX=256
 CONFIG_RT_TICK_PER_SECOND=100
-CONFIG_RT_USING_OVERFLOW_CHECK=y
 CONFIG_RT_USING_HOOK=y
 CONFIG_RT_HOOK_USING_FUNC_PTR=y
 # CONFIG_RT_USING_HOOKLIST is not set
@@ -29,19 +24,30 @@ CONFIG_IDLE_THREAD_STACK_SIZE=4096
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=4096
+# CONFIG_RT_USING_TIMER_ALL_SOFT is not set
+# CONFIG_RT_USING_CPU_USAGE_TRACER is not set
 
 #
 # kservice optimization
 #
-# CONFIG_RT_KSERVICE_USING_STDLIB is not set
-# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
 # CONFIG_RT_USING_TINY_FFS is not set
-# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
+# end of kservice optimization
+
+#
+# klibc optimization
+#
+# CONFIG_RT_KLIBC_USING_STDLIB is not set
+# CONFIG_RT_KLIBC_USING_TINY_SIZE is not set
+# CONFIG_RT_KLIBC_USING_PRINTF_LONGLONG is not set
+# end of klibc optimization
+
 CONFIG_RT_USING_DEBUG=y
+CONFIG_RT_DEBUGING_ASSERT=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
 # CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
+CONFIG_RT_USING_OVERFLOW_CHECK=y
 
 #
 # Inter-Thread communication
@@ -53,6 +59,7 @@ CONFIG_RT_USING_MAILBOX=y
 CONFIG_RT_USING_MESSAGEQUEUE=y
 CONFIG_RT_USING_MESSAGEQUEUE_PRIORITY=y
 # CONFIG_RT_USING_SIGNALS is not set
+# end of Inter-Thread communication
 
 #
 # Memory Management
@@ -72,6 +79,8 @@ CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
 CONFIG_RT_USING_MEMTRACE=y
 # CONFIG_RT_USING_HEAP_ISR is not set
 CONFIG_RT_USING_HEAP=y
+# end of Memory Management
+
 CONFIG_RT_USING_DEVICE=y
 CONFIG_RT_USING_DEVICE_OPS=y
 CONFIG_RT_USING_INTERRUPT_INFO=y
@@ -80,21 +89,19 @@ CONFIG_RT_USING_INTERRUPT_INFO=y
 CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_CONSOLEBUF_SIZE=256
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
-CONFIG_RT_VER_NUM=0x50100
-CONFIG_RT_USING_STDC_ATOMIC=y
+CONFIG_RT_VER_NUM=0x50200
+# CONFIG_RT_USING_STDC_ATOMIC is not set
 CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32
+# end of RT-Thread Kernel
+
 CONFIG_RT_USING_CACHE=y
 CONFIG_RT_USING_HW_ATOMIC=y
-# CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE is not set
-# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
 CONFIG_RT_USING_CPU_FFS=y
 CONFIG_ARCH_MM_MMU=y
 CONFIG_ARCH_ARM=y
 CONFIG_ARCH_ARM_MMU=y
 CONFIG_ARCH_ARM_CORTEX_A=y
-# CONFIG_RT_SMP_AUTO_BOOT is not set
 CONFIG_RT_USING_GIC_V2=y
-# CONFIG_RT_USING_GIC_V3 is not set
 CONFIG_ARCH_ARM_CORTEX_A9=y
 # CONFIG_ARCH_ARM_SECURE_MODE is not set
 # CONFIG_RT_BACKTRACE_FUNCTION_NAME is not set
@@ -157,18 +164,23 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=4096
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
 # CONFIG_RT_DFS_ELM_USE_EXFAT is not set
+# end of elm-chan's FatFs, Generic FAT Filesystem Module
+
 CONFIG_RT_USING_DFS_DEVFS=y
 CONFIG_RT_USING_DFS_ROMFS=y
 # CONFIG_RT_USING_DFS_ROMFS_USER_ROOT is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
 CONFIG_RT_USING_DFS_TMPFS=y
 CONFIG_RT_USING_DFS_MQUEUE=y
+# end of DFS: device virtual file system
+
 # CONFIG_RT_USING_FAL is not set
 
 #
 # Device Drivers
 #
 # CONFIG_RT_USING_DM is not set
+CONFIG_RT_USING_DEV_BUS=y
 CONFIG_RT_USING_DEVICE_IPC=y
 CONFIG_RT_UNAMED_PIPE_NUMBER=64
 CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
@@ -193,6 +205,8 @@ CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
 # CONFIG_RT_USING_PWM is not set
+# CONFIG_RT_USING_PULSE_ENCODER is not set
+# CONFIG_RT_USING_INPUT_CAPTURE is not set
 CONFIG_RT_USING_MTD_NOR=y
 CONFIG_RT_USING_MTD_NAND=y
 CONFIG_RT_MTD_NAND_DEBUG=y
@@ -204,7 +218,7 @@ CONFIG_RT_USING_SDIO=y
 CONFIG_RT_SDIO_STACK_SIZE=4096
 CONFIG_RT_SDIO_THREAD_PRIORITY=15
 CONFIG_RT_MMCSD_STACK_SIZE=16384
-CONFIG_RT_MMCSD_THREAD_PREORITY=22
+CONFIG_RT_MMCSD_THREAD_PRIORITY=22
 CONFIG_RT_MMCSD_MAX_PARTITION=16
 # CONFIG_RT_SDIO_DEBUG is not set
 CONFIG_RT_USING_SPI=y
@@ -225,21 +239,13 @@ CONFIG_RT_USING_WDT=y
 # CONFIG_RT_USING_TOUCH is not set
 # CONFIG_RT_USING_LCD 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_DEV_BUS=y
 # CONFIG_RT_USING_WIFI is not set
 # CONFIG_RT_USING_VIRTIO is not set
 CONFIG_RT_USING_PIN=y
 CONFIG_RT_USING_KTIME=y
 # CONFIG_RT_USING_HWTIMER is not set
-
-#
-# Using USB
-#
-# CONFIG_RT_USING_USB is not set
-# CONFIG_RT_USING_USB_HOST is not set
-# CONFIG_RT_USING_USB_DEVICE is not set
+# CONFIG_RT_USING_CHERRYUSB is not set
+# end of Device Drivers
 
 #
 # C/C++ and POSIX layer
@@ -257,6 +263,8 @@ CONFIG_RT_LIBC_USING_LIGHT_TZ_DST=y
 CONFIG_RT_LIBC_TZ_DEFAULT_HOUR=8
 CONFIG_RT_LIBC_TZ_DEFAULT_MIN=0
 CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
+# end of Timezone and Daylight Saving Time
+# end of ISO-ANSI C layer
 
 #
 # POSIX (Portable Operating System Interface) layer
@@ -289,7 +297,11 @@ CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE=y
 #
 # Socket is in the 'Network' category
 #
+# end of Interprocess Communication (IPC)
+# end of POSIX (Portable Operating System Interface) layer
+
 # CONFIG_RT_USING_CPLUSPLUS is not set
+# end of C/C++ and POSIX layer
 
 #
 # Network
@@ -298,12 +310,14 @@ CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE=y
 # CONFIG_RT_USING_NETDEV is not set
 # CONFIG_RT_USING_LWIP is not set
 # CONFIG_RT_USING_AT is not set
+# end of Network
 
 #
 # Memory protection
 #
 # CONFIG_RT_USING_MEM_PROTECTION is not set
 # CONFIG_RT_USING_HW_STACK_GUARD is not set
+# end of Memory protection
 
 #
 # Utilities
@@ -319,12 +333,25 @@ CONFIG_RT_USING_ADT_BITMAP=y
 CONFIG_RT_USING_ADT_HASHMAP=y
 CONFIG_RT_USING_ADT_REF=y
 # CONFIG_RT_USING_RT_LINK is not set
+# end of Utilities
+
 # CONFIG_RT_USING_VBUS is not set
 
+#
+# Using USB legacy version
+#
+# CONFIG_RT_USING_USB_HOST is not set
+# CONFIG_RT_USING_USB_DEVICE is not set
+# end of Using USB legacy version
+
+# CONFIG_RT_USING_FDT is not set
+# end of RT-Thread Components
+
 #
 # RT-Thread Utestcases
 #
 # CONFIG_RT_USING_UTESTCASES is not set
+# end of RT-Thread Utestcases
 
 #
 # RT-Thread online packages
@@ -333,7 +360,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # IoT - internet of things
 #
-# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -346,6 +372,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_WEBTERMINAL is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
 # CONFIG_PKG_USING_NANOPB is not set
+# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set
 
 #
 # Wi-Fi
@@ -355,27 +382,35 @@ CONFIG_RT_USING_ADT_REF=y
 # 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
 
 #
 # CYW43012 WiFi
 #
 # CONFIG_PKG_USING_WLAN_CYW43012 is not set
+# end of CYW43012 WiFi
 
 #
 # BL808 WiFi
 #
 # CONFIG_PKG_USING_WLAN_BL808 is not set
+# end of BL808 WiFi
 
 #
 # CYW43439 WiFi
 #
 # CONFIG_PKG_USING_WLAN_CYW43439 is not set
+# end of CYW43439 WiFi
+# 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
@@ -398,6 +433,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
 # CONFIG_PKG_USING_JOYLINK is not set
 # CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# end of IoT Cloud
+
 # CONFIG_PKG_USING_NIMBLE is not set
 # CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -440,6 +477,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
 # CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
 # CONFIG_PKG_USING_LHC_MODBUS is not set
+# CONFIG_PKG_USING_QMODBUS is not set
+# end of IoT - internet of things
 
 #
 # security packages
@@ -450,6 +489,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_TINYCRYPT is not set
 # CONFIG_PKG_USING_TFM is not set
 # CONFIG_PKG_USING_YD_CRYPTO is not set
+# end of security packages
 
 #
 # language packages
@@ -465,18 +505,22 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PARSON is not set
+# end of JSON: JavaScript Object Notation, a lightweight data-interchange format
 
 #
 # XML: Extensible Markup Language
 #
 # CONFIG_PKG_USING_SIMPLE_XML is not set
 # CONFIG_PKG_USING_EZXML is not set
+# end of XML: Extensible Markup Language
+
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
 # CONFIG_PKG_USING_RTT_RUST is not set
+# end of language packages
 
 #
 # multimedia packages
@@ -488,12 +532,15 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_LVGL is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+# end of LVGL: powerful and easy-to-use embedded GUI library
 
 #
 # u8g2: a monochrome graphic library
 #
 # CONFIG_PKG_USING_U8G2_OFFICIAL is not set
 # CONFIG_PKG_USING_U8G2 is not set
+# end of u8g2: a monochrome graphic library
+
 # CONFIG_PKG_USING_OPENMV is not set
 # CONFIG_PKG_USING_MUPDF is not set
 # CONFIG_PKG_USING_STEMWIN is not set
@@ -514,6 +561,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_PERSIMMON is not set
 # CONFIG_PKG_USING_3GPP_AMRNB is not set
+# end of multimedia packages
 
 #
 # tools packages
@@ -562,6 +610,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
 # CONFIG_PKG_USING_ZDEBUG is not set
+# end of tools packages
 
 #
 # system packages
@@ -573,6 +622,9 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_RT_MEMCPY_CM is not set
 # CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
 # CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+# end of enhanced kernel services
+
+# CONFIG_PKG_USING_AUNITY is not set
 
 #
 # acceleration: Assembly language or algorithmic acceleration packages
@@ -580,6 +632,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
 # CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
 # CONFIG_PKG_USING_QFPLIB_M3 is not set
+# end of acceleration: Assembly language or algorithmic acceleration packages
 
 #
 # CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
@@ -590,6 +643,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_CMSIS_NN is not set
 # CONFIG_PKG_USING_CMSIS_RTOS1 is not set
 # CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
 
 #
 # Micrium: Micrium software products porting for RT-Thread
@@ -600,6 +654,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
+# end of Micrium: Micrium software products porting for RT-Thread
+
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
 # CONFIG_PKG_USING_LITEOS_SDK is not set
 # CONFIG_PKG_USING_TZ_DATABASE is not set
@@ -647,6 +703,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_RTP is not set
 # CONFIG_PKG_USING_REB is not set
 # CONFIG_PKG_USING_R_RHEALSTONE is not set
+# end of system packages
 
 #
 # peripheral libraries and drivers
@@ -659,9 +716,29 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # STM32 HAL & SDK Drivers
 #
-# CONFIG_PKG_USING_STM32L4XX_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set
 # CONFIG_PKG_USING_STM32WB55_SDK is not set
 # CONFIG_PKG_USING_STM32_SDIO is not set
+# end of STM32 HAL & SDK Drivers
+
+#
+# Infineon HAL Packages
+#
+# CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set
+# CONFIG_PKG_USING_INFINEON_CMSIS is not set
+# CONFIG_PKG_USING_INFINEON_CORE_LIB is not set
+# CONFIG_PKG_USING_INFINEON_MTB_HAL_CAT1 is not set
+# CONFIG_PKG_USING_INFINEON_MTB_PDL_CAT1 is not set
+# CONFIG_PKG_USING_INFINEON_RETARGET_IO is not set
+# CONFIG_PKG_USING_INFINEON_CAPSENSE is not set
+# CONFIG_PKG_USING_INFINEON_CSDIDAC is not set
+# CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set
+# CONFIG_PKG_USING_INFINEON_USBDEV is not set
+# end of Infineon HAL Packages
+
 # CONFIG_PKG_USING_BLUETRUM_SDK is not set
 # CONFIG_PKG_USING_EMBARC_BSP is not set
 # CONFIG_PKG_USING_ESP_IDF is not set
@@ -671,9 +748,12 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_K210_SDK is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# end of Kendryte SDK
+
 # CONFIG_PKG_USING_NRF5X_SDK is not set
 # CONFIG_PKG_USING_NRFX is not set
 # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
+# end of HAL & SDK Drivers
 
 #
 # sensors drivers
@@ -743,6 +823,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ICM20608 is not set
 # CONFIG_PKG_USING_PAJ7620 is not set
 # CONFIG_PKG_USING_STHS34PF80 is not set
+# end of sensors drivers
 
 #
 # touch drivers
@@ -757,6 +838,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_XPT2046_TOUCH is not set
 # CONFIG_PKG_USING_CST816X is not set
 # CONFIG_PKG_USING_CST812T is not set
+# end of touch drivers
+
 # CONFIG_PKG_USING_REALTEK_AMEBA is not set
 # CONFIG_PKG_USING_BUTTON is not set
 # CONFIG_PKG_USING_PCF8574 is not set
@@ -829,6 +912,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_BT_MX01 is not set
 # CONFIG_PKG_USING_RGPOWER is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
+# end of peripheral libraries and drivers
 
 #
 # AI packages
@@ -843,15 +927,18 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 # CONFIG_PKG_USING_R_TINYMAIX is not set
+# end of AI packages
 
 #
 # Signal Processing and Control Algorithm Packages
 #
+# CONFIG_PKG_USING_APID is not set
 # CONFIG_PKG_USING_FIRE_PID_CURVE is not set
 # CONFIG_PKG_USING_QPID is not set
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
+# end of Signal Processing and Control Algorithm Packages
 
 #
 # miscellaneous packages
@@ -860,6 +947,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # project laboratory
 #
+# end of project laboratory
 
 #
 # samples: kernel and components samples
@@ -868,6 +956,7 @@ CONFIG_RT_USING_ADT_REF=y
 # 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
 
 #
 # entertainment: terminal games and other interesting software packages
@@ -883,6 +972,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_DONUT is not set
 # CONFIG_PKG_USING_COWSAY is not set
 # CONFIG_PKG_USING_MORSE is not set
+# end of entertainment: terminal games and other interesting software packages
+
 # CONFIG_PKG_USING_LIBCSV is not set
 # CONFIG_PKG_USING_OPTPARSE is not set
 # CONFIG_PKG_USING_FASTLZ is not set
@@ -916,6 +1007,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_SOEM is not set
 # CONFIG_PKG_USING_QPARAM is not set
 # CONFIG_PKG_USING_CorevMCU_CLI is not set
+# end of miscellaneous packages
 
 #
 # Arduino libraries
@@ -931,6 +1023,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set
 # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set
 # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set
+# end of Projects and Demos
 
 #
 # Sensors
@@ -1070,6 +1163,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set
 # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set
+# CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set
+# end of Sensors
 
 #
 # Display
@@ -1081,6 +1176,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set
 # CONFIG_PKG_USING_SEEED_TM1637 is not set
+# end of Display
 
 #
 # Timing
@@ -1089,6 +1185,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
+# end of Timing
 
 #
 # Data Processing
@@ -1096,6 +1193,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set
 # CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set
 # CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set
+# CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set
+# end of Data Processing
 
 #
 # Data Storage
@@ -1106,6 +1205,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set
+# end of Communication
 
 #
 # Device Control
@@ -1117,12 +1217,14 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set
+# end of Device Control
 
 #
 # Other
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set
+# end of Other
 
 #
 # Signal IO
@@ -1135,10 +1237,77 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set
+# end of Signal IO
 
 #
 # Uncategorized
 #
+# end of Arduino libraries
+# end of RT-Thread online packages
+
+#
+# Privated Packages of RealThread
+#
+# CONFIG_PKG_USING_CODEC is not set
+# CONFIG_PKG_USING_PLAYER is not set
+# CONFIG_PKG_USING_MPLAYER is not set
+# CONFIG_PKG_USING_PERSIMMON_SRC is not set
+# CONFIG_PKG_USING_JS_PERSIMMON is not set
+# CONFIG_PKG_USING_JERRYSCRIPT_WIN32 is not set
+
+#
+# Network Utilities
+#
+# end of Network Utilities
+
+# CONFIG_PKG_USING_WICED is not set
+# CONFIG_PKG_USING_CLOUDSDK is not set
+# CONFIG_PKG_USING_POWER_MANAGER is not set
+# CONFIG_PKG_USING_RT_OTA is not set
+# CONFIG_PKG_USING_RTINSIGHT is not set
+# CONFIG_PKG_USING_SMARTCONFIG is not set
+# CONFIG_PKG_USING_RTX is not set
+# CONFIG_RT_USING_TESTCASE is not set
+# CONFIG_PKG_USING_NGHTTP2 is not set
+# CONFIG_PKG_USING_AVS is not set
+# CONFIG_PKG_USING_ALI_LINKKIT is not set
+# CONFIG_PKG_USING_STS is not set
+# CONFIG_PKG_USING_DLMS is not set
+# CONFIG_PKG_USING_AUDIO_FRAMEWORK is not set
+# CONFIG_PKG_USING_ZBAR is not set
+# CONFIG_PKG_USING_MCF is not set
+# CONFIG_PKG_USING_URPC is not set
+# CONFIG_PKG_USING_DCM is not set
+# CONFIG_PKG_USING_EMQ is not set
+# CONFIG_PKG_USING_CFGM is not set
+# CONFIG_PKG_USING_RT_CMSIS_DAP is not set
+# CONFIG_PKG_USING_SMODULE is not set
+# CONFIG_PKG_USING_SNFD is not set
+# CONFIG_PKG_USING_UDBD is not set
+# CONFIG_PKG_USING_BENCHMARK is not set
+# CONFIG_PKG_USING_UBJSON is not set
+# CONFIG_PKG_USING_DATATYPE is not set
+# CONFIG_PKG_USING_FASTFS is not set
+# CONFIG_PKG_USING_RIL is not set
+# CONFIG_PKG_USING_WATCH_DCM_SVC is not set
+# CONFIG_PKG_USING_WATCH_APP_FWK is not set
+# CONFIG_PKG_USING_GUI_TEST is not set
+# CONFIG_PKG_USING_PMEM is not set
+# CONFIG_PKG_USING_LWRDP is not set
+# CONFIG_PKG_USING_MASAN is not set
+# CONFIG_PKG_USING_BSDIFF_LIB is not set
+# CONFIG_PKG_USING_PRC_DIFF is not set
+
+#
+# RT-Thread Smart
+#
+# CONFIG_PKG_USING_UKERNEL is not set
+# end of RT-Thread Smart
+
+# CONFIG_PKG_USING_TRACE_AGENT is not set
+# CONFIG_PKG_USING_DLOG is not set
+# CONFIG_PKG_USING_EXT4 is not set
+# end of Privated Packages of RealThread
 
 #
 # Hardware Drivers Config
@@ -1155,3 +1324,5 @@ CONFIG_RT_USING_UART1=y
 # CONFIG_BSP_DRV_MOUSE is not set
 # CONFIG_BSP_DRV_EMAC is not set
 # CONFIG_BSP_DRV_AUDIO is not set
+# end of Onboard Peripheral Drivers
+# end of Hardware Drivers Config

+ 3 - 76
bsp/qemu-vexpress-a9/.vscode/launch.json

@@ -1,52 +1,6 @@
 {
     "version": "0.2.0",
     "configurations": [
-        {
-            "name": "Debug @ Mac/Linux",
-            "type": "cppdbg",
-            "request": "launch",
-            "program": "${workspaceRoot}/rtthread.elf",
-            "args": [],
-            "stopAtEntry": true,
-            "cwd": "${workspaceRoot}",
-            "environment": [],
-            "externalConsole": true,
-            "miDebuggerServerAddress": "localhost:1234",
-            "serverLaunchTimeout": 2000,
-            "targetArchitecture": "ARM",
-            "setupCommands": [
-                {
-                    "text": "cd ${workspaceRoot}"
-                },
-                {
-                    "text": "shell qemu-dbg.sh"
-                },
-                {
-                    "text": "target remote localhost:1234"
-                },
-                {
-                    "text": "file rtthread.elf"
-                },
-                {
-                    "text": "break application_start"
-                }
-            ],
-            "customLaunchSetupCommands": [],
-            "launchCompleteCommand": "exec-run",
-            "preLaunchTask": "qemu debug",
-            "osx": {
-                "MIMode": "gdb",
-                "miDebuggerPath": "arm-none-eabi-gdb"
-            },
-            "linux": {
-                "MIMode": "gdb",
-                "miDebuggerPath": "arm-none-eabi-gdb"
-            },
-            "windows": {
-                "MIMode": "gdb",
-                "miDebuggerPath": "arm-none-eabi-gdb.exe"
-            }
-        },
         {
             "name": "Debug @ Windows",
             "type": "cppdbg",
@@ -60,37 +14,10 @@
             "miDebuggerServerAddress": "localhost:1234",
             "serverLaunchTimeout": 2000,
             "targetArchitecture": "ARM",
-            "setupCommands": [
-                {
-                    "text": "cd ${workspaceRoot}"
-                },
-                {
-                    "text": "shell qemu-dbg.bat"
-                },
-                {
-                    "text": "target remote localhost:1234"
-                },
-                {
-                    "text": "file rtthread.elf"
-                },
-                {
-                    "text": "break main"
-                }
-            ],
+            "MIMode": "gdb",
+            "miDebuggerPath": "arm-none-eabi-gdb.exe",
             "customLaunchSetupCommands": [],
             "launchCompleteCommand": "exec-run",
-            "osx": {
-                "MIMode": "gdb",
-                "miDebuggerPath": "arm-none-eabi-gdb"
-            },
-            "linux": {
-                "MIMode": "gdb",
-                "miDebuggerPath": "arm-none-eabi-gdb"
-            },
-            "windows": {
-                "MIMode": "gdb",
-                "miDebuggerPath": "arm-none-eabi-gdb.exe"
-            }
         },
     ]
-}
+}

+ 6 - 15
bsp/qemu-vexpress-a9/Kconfig

@@ -1,20 +1,11 @@
 mainmenu "RT-Thread Project Configuration"
 
-config BSP_DIR
-    string
-    option env="BSP_ROOT"
-    default "."
+BSP_DIR := .
 
-config RTT_DIR
-    string
-    option env="RTT_ROOT"
-    default "../.."
+RTT_DIR := ../..
 
-config PKGS_DIR
-    string
-    option env="PKGS_ROOT"
-    default "packages"
+PKGS_DIR := packages
 
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
-source "$BSP_DIR/drivers/Kconfig"
+source "$(RTT_DIR)/Kconfig"
+osource "$PKGS_DIR/Kconfig"
+source "$(BSP_DIR)/drivers/Kconfig"

+ 1 - 0
bsp/qemu-vexpress-a9/drivers/Kconfig

@@ -35,6 +35,7 @@ endif
 
 config BSP_DRV_CLCD
     bool "CLCD driver"
+    select RT_USING_LCD
     default n
 
 config BSP_DRV_MOUSE

+ 1 - 0
bsp/qemu-vexpress-a9/drivers/drv_clcd.h

@@ -11,6 +11,7 @@
 #define DRV_CLCD_H__
 
 #include <rtthread.h>
+#include <rtdevice.h>
 
 #ifndef BSP_LCD_WIDTH
 #define BSP_LCD_WIDTH   640

+ 1 - 1
bsp/qemu-vexpress-a9/drivers/drv_sdio.c

@@ -10,7 +10,7 @@
 #include <rthw.h>
 #include <rtthread.h>
 #include <rtdevice.h>
-#include <drivers/mmcsd_core.h>
+#include <drivers/dev_mmcsd_core.h>
 
 #include <stdint.h>
 #include <stdio.h>

+ 1 - 1
bsp/qemu-vexpress-a9/drivers/drv_smc911x.c

@@ -14,7 +14,7 @@
 #include <automac.h>
 #include <netif/ethernetif.h>
 #include <lwipopts.h>
-
+#include "delay.h"
 #include "mmu.h"
 #include "drv_smc911x.h"
 

+ 94 - 11
bsp/qemu-vexpress-a9/rtconfig.h

@@ -1,9 +1,6 @@
 #ifndef RT_CONFIG_H__
 #define RT_CONFIG_H__
 
-/* Automatically generated file; DO NOT EDIT. */
-/* RT-Thread Project Configuration */
-
 /* RT-Thread Kernel */
 
 #define RT_NAME_MAX 8
@@ -12,7 +9,6 @@
 #define RT_THREAD_PRIORITY_256
 #define RT_THREAD_PRIORITY_MAX 256
 #define RT_TICK_PER_SECOND 100
-#define RT_USING_OVERFLOW_CHECK
 #define RT_USING_HOOK
 #define RT_HOOK_USING_FUNC_PTR
 #define RT_USING_IDLE_HOOK
@@ -24,9 +20,16 @@
 
 /* kservice optimization */
 
+/* end of kservice optimization */
+
+/* klibc optimization */
+
+/* end of klibc optimization */
 #define RT_USING_DEBUG
+#define RT_DEBUGING_ASSERT
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
+#define RT_USING_OVERFLOW_CHECK
 
 /* Inter-Thread communication */
 
@@ -36,6 +39,7 @@
 #define RT_USING_MAILBOX
 #define RT_USING_MESSAGEQUEUE
 #define RT_USING_MESSAGEQUEUE_PRIORITY
+/* end of Inter-Thread communication */
 
 /* Memory Management */
 
@@ -47,15 +51,16 @@
 #define RT_USING_SMALL_MEM_AS_HEAP
 #define RT_USING_MEMTRACE
 #define RT_USING_HEAP
+/* end of Memory Management */
 #define RT_USING_DEVICE
 #define RT_USING_DEVICE_OPS
 #define RT_USING_INTERRUPT_INFO
 #define RT_USING_CONSOLE
 #define RT_CONSOLEBUF_SIZE 256
 #define RT_CONSOLE_DEVICE_NAME "uart0"
-#define RT_VER_NUM 0x50100
-#define RT_USING_STDC_ATOMIC
+#define RT_VER_NUM 0x50200
 #define RT_BACKTRACE_LEVEL_MAX_NR 32
+/* end of RT-Thread Kernel */
 #define RT_USING_CACHE
 #define RT_USING_HW_ATOMIC
 #define RT_USING_CPU_FFS
@@ -110,13 +115,16 @@
 #define RT_DFS_ELM_MAX_SECTOR_SIZE 4096
 #define RT_DFS_ELM_REENTRANT
 #define RT_DFS_ELM_MUTEX_TIMEOUT 3000
+/* end of elm-chan's FatFs, Generic FAT Filesystem Module */
 #define RT_USING_DFS_DEVFS
 #define RT_USING_DFS_ROMFS
 #define RT_USING_DFS_TMPFS
 #define RT_USING_DFS_MQUEUE
+/* end of DFS: device virtual file system */
 
 /* Device Drivers */
 
+#define RT_USING_DEV_BUS
 #define RT_USING_DEVICE_IPC
 #define RT_UNAMED_PIPE_NUMBER 64
 #define RT_USING_SYSTEM_WORKQUEUE
@@ -140,7 +148,7 @@
 #define RT_SDIO_STACK_SIZE 4096
 #define RT_SDIO_THREAD_PRIORITY 15
 #define RT_MMCSD_STACK_SIZE 16384
-#define RT_MMCSD_THREAD_PREORITY 22
+#define RT_MMCSD_THREAD_PRIORITY 22
 #define RT_MMCSD_MAX_PARTITION 16
 #define RT_USING_SPI
 #define RT_USING_SPI_MSD
@@ -149,12 +157,9 @@
 #define RT_SFUD_USING_FLASH_INFO_TABLE
 #define RT_SFUD_SPI_MAX_HZ 50000000
 #define RT_USING_WDT
-#define RT_USING_DEV_BUS
 #define RT_USING_PIN
 #define RT_USING_KTIME
-
-/* Using USB */
-
+/* end of Device Drivers */
 
 /* C/C++ and POSIX layer */
 
@@ -166,6 +171,8 @@
 #define RT_LIBC_TZ_DEFAULT_HOUR 8
 #define RT_LIBC_TZ_DEFAULT_MIN 0
 #define RT_LIBC_TZ_DEFAULT_SEC 0
+/* end of Timezone and Daylight Saving Time */
+/* end of ISO-ANSI C layer */
 
 /* POSIX (Portable Operating System Interface) layer */
 
@@ -189,12 +196,17 @@
 
 /* Socket is in the 'Network' category */
 
+/* end of Interprocess Communication (IPC) */
+/* end of POSIX (Portable Operating System Interface) layer */
+/* end of C/C++ and POSIX layer */
 
 /* Network */
 
+/* end of Network */
 
 /* Memory protection */
 
+/* end of Memory protection */
 
 /* Utilities */
 
@@ -204,9 +216,16 @@
 #define RT_USING_ADT_BITMAP
 #define RT_USING_ADT_HASHMAP
 #define RT_USING_ADT_REF
+/* end of Utilities */
+
+/* Using USB legacy version */
+
+/* end of Using USB legacy version */
+/* end of RT-Thread Components */
 
 /* RT-Thread Utestcases */
 
+/* end of RT-Thread Utestcases */
 
 /* RT-Thread online packages */
 
@@ -217,57 +236,78 @@
 
 /* Marvell WiFi */
 
+/* end of Marvell WiFi */
 
 /* Wiced WiFi */
 
+/* end of Wiced WiFi */
 
 /* CYW43012 WiFi */
 
+/* end of CYW43012 WiFi */
 
 /* BL808 WiFi */
 
+/* end of BL808 WiFi */
 
 /* CYW43439 WiFi */
 
+/* end of CYW43439 WiFi */
+/* end of Wi-Fi */
 
 /* IoT Cloud */
 
+/* end of IoT Cloud */
+/* end of IoT - internet of things */
 
 /* security packages */
 
+/* end of security packages */
 
 /* language packages */
 
 /* JSON: JavaScript Object Notation, a lightweight data-interchange format */
 
+/* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */
 
 /* XML: Extensible Markup Language */
 
+/* end of XML: Extensible Markup Language */
+/* end of language packages */
 
 /* multimedia packages */
 
 /* LVGL: powerful and easy-to-use embedded GUI library */
 
+/* end of LVGL: powerful and easy-to-use embedded GUI library */
 
 /* u8g2: a monochrome graphic library */
 
+/* end of u8g2: a monochrome graphic library */
+/* end of multimedia packages */
 
 /* tools packages */
 
+/* end of tools packages */
 
 /* system packages */
 
 /* enhanced kernel services */
 
+/* end of enhanced kernel services */
 
 /* acceleration: Assembly language or algorithmic acceleration packages */
 
+/* end of acceleration: Assembly language or algorithmic acceleration packages */
 
 /* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
 
+/* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
+/* end of Micrium: Micrium software products porting for RT-Thread */
+/* end of system packages */
 
 /* peripheral libraries and drivers */
 
@@ -275,66 +315,107 @@
 
 /* STM32 HAL & SDK Drivers */
 
+/* end of STM32 HAL & SDK Drivers */
+
+/* Infineon HAL Packages */
+
+/* end of Infineon HAL Packages */
 
 /* Kendryte SDK */
 
+/* end of Kendryte SDK */
+/* end of HAL & SDK Drivers */
 
 /* sensors drivers */
 
+/* end of sensors drivers */
 
 /* touch drivers */
 
+/* end of touch drivers */
+/* end of peripheral libraries and drivers */
 
 /* AI packages */
 
+/* end of AI packages */
 
 /* Signal Processing and Control Algorithm Packages */
 
+/* end of Signal Processing and Control Algorithm Packages */
 
 /* miscellaneous packages */
 
 /* project laboratory */
 
+/* end of project laboratory */
+
 /* samples: kernel and components samples */
 
+/* end of samples: kernel and components samples */
 
 /* entertainment: terminal games and other interesting software packages */
 
+/* end of entertainment: terminal games and other interesting software packages */
+/* end of miscellaneous packages */
 
 /* Arduino libraries */
 
 
 /* Projects and Demos */
 
+/* end of Projects and Demos */
 
 /* Sensors */
 
+/* end of Sensors */
 
 /* Display */
 
+/* end of Display */
 
 /* Timing */
 
+/* end of Timing */
 
 /* Data Processing */
 
+/* end of Data Processing */
 
 /* Data Storage */
 
 /* Communication */
 
+/* end of Communication */
 
 /* Device Control */
 
+/* end of Device Control */
 
 /* Other */
 
+/* end of Other */
 
 /* Signal IO */
 
+/* end of Signal IO */
 
 /* Uncategorized */
 
+/* end of Arduino libraries */
+/* end of RT-Thread online packages */
+
+/* Privated Packages of RealThread */
+
+
+/* Network Utilities */
+
+/* end of Network Utilities */
+
+/* RT-Thread Smart */
+
+/* end of RT-Thread Smart */
+/* end of Privated Packages of RealThread */
+
 /* Hardware Drivers Config */
 
 #define SOC_VEXPRESS_A9
@@ -343,5 +424,7 @@
 
 #define RT_USING_UART0
 #define RT_USING_UART1
+/* end of Onboard Peripheral Drivers */
+/* end of Hardware Drivers Config */
 
 #endif

+ 6 - 15
bsp/qemu-virt64-aarch64/Kconfig

@@ -1,22 +1,13 @@
 mainmenu "RT-Thread Project Configuration"
 
-config BSP_DIR
-    string
-    option env="BSP_ROOT"
-    default "."
+BSP_DIR := .
 
-config RTT_DIR
-    string
-    option env="RTT_ROOT"
-    default "../../"
+RTT_DIR := ../../
 
-config PKGS_DIR
-    string
-    option env="PKGS_ROOT"
-    default "packages"
+PKGS_DIR := packages
 
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
+source "$(RTT_DIR)/Kconfig"
+osource "$PKGS_DIR/Kconfig"
 
 config SOC_VIRT64_AARCH64
     bool
@@ -31,4 +22,4 @@ config SOC_VIRT64_AARCH64
     select ARCH_MM_MMU
     default y
 
-source "$BSP_DIR/drivers/Kconfig"
+source "$(BSP_DIR)/drivers/Kconfig"

+ 0 - 7
bsp/qemu-virt64-aarch64/drivers/board.c

@@ -21,12 +21,5 @@ extern size_t MMUTable[];
 
 void rt_hw_board_init(void)
 {
-    rt_fdt_commit_memregion_early(&(rt_region_t)
-    {
-        .name  = "memheap",
-        .start = (rt_size_t)rt_kmem_v2p(HEAP_BEGIN),
-        .end   = (rt_size_t)rt_kmem_v2p(HEAP_END),
-    }, RT_TRUE);
-
     rt_hw_common_setup();
 }

+ 0 - 46
bsp/qemu-virt64-aarch64/drivers/secondary_cpu.c

@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2006-2022, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- */
-#include <rthw.h>
-#include <rtthread.h>
-#include <cpu.h>
-#include "gic.h"
-#include "interrupt.h"
-#include "mmu.h"
-#include "gtimer.h"
-
-#ifdef BSP_USING_GICV3
-#include <gicv3.h>
-#endif
-
-#ifdef RT_USING_SMP
-
-extern unsigned long MMUTable[];
-
-void rt_hw_secondary_cpu_bsp_start(void)
-{
-    rt_hw_spin_lock(&_cpus_lock);
-
-    rt_hw_mmu_ktbl_set((unsigned long)MMUTable);
-
-    // interrupt init
-    rt_hw_vector_init();
-
-    arm_gic_cpu_init(0, 0);
-
-#ifdef BSP_USING_GICV3
-    arm_gic_redist_init(0, 0);
-#endif /* BSP_USING_GICV3 */
-
-    // local timer init
-    rt_hw_gtimer_init();
-
-    rt_system_scheduler_start();
-}
-
-#endif // SMP

+ 1 - 1
bsp/qemu-virt64-aarch64/rtconfig.py

@@ -28,7 +28,7 @@ if PLATFORM == 'gcc':
 
     CPPFLAGS= ' -E -P -x assembler-with-cpp'
     CXXFLAGS= DEVICE + CFPFLAGS + ' -Wall -fdiagnostics-color=always'
-    CFLAGS  = DEVICE + CFPFLAGS + ' -Wall -Wno-cpp -std=gnu99 -fdiagnostics-color=always'
+    CFLAGS  = DEVICE + CFPFLAGS + ' -Wall -Wno-cpp -fdiagnostics-color=always'
     AFLAGS  = ' -c' + AFPFLAGS + ' -x assembler-with-cpp'
     LFLAGS  = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,system_vectors -T link.lds' + ' -lsupc++ -lgcc -static'
     CPATH   = ''

+ 276 - 49
bsp/qemu-virt64-riscv/.config

@@ -1,15 +1,127 @@
+
 #
-# Automatically generated file; DO NOT EDIT.
-# RT-Thread Project Configuration
+# RT-Thread Kernel
 #
 
 #
-# RT-Thread Kernel
+# klibc options
+#
+
+#
+# rt_vsnprintf options
+#
+# CONFIG_RT_KLIBC_USING_LIBC_VSNPRINTF is not set
+CONFIG_RT_KLIBC_USING_VSNPRINTF_LONGLONG=y
+CONFIG_RT_KLIBC_USING_VSNPRINTF_STANDARD=y
+CONFIG_RT_KLIBC_USING_VSNPRINTF_DECIMAL_SPECIFIERS=y
+CONFIG_RT_KLIBC_USING_VSNPRINTF_EXPONENTIAL_SPECIFIERS=y
+CONFIG_RT_KLIBC_USING_VSNPRINTF_WRITEBACK_SPECIFIER=y
+CONFIG_RT_KLIBC_USING_VSNPRINTF_CHECK_NUL_IN_FORMAT_SPECIFIER=y
+# CONFIG_RT_KLIBC_USING_VSNPRINTF_MSVC_STYLE_INTEGER_SPECIFIERS is not set
+CONFIG_RT_KLIBC_USING_VSNPRINTF_INTEGER_BUFFER_SIZE=32
+CONFIG_RT_KLIBC_USING_VSNPRINTF_DECIMAL_BUFFER_SIZE=32
+CONFIG_RT_KLIBC_USING_VSNPRINTF_FLOAT_PRECISION=6
+CONFIG_RT_KLIBC_USING_VSNPRINTF_MAX_INTEGRAL_DIGITS_FOR_DECIMAL=9
+CONFIG_RT_KLIBC_USING_VSNPRINTF_LOG10_TAYLOR_TERMS=4
+# end of rt_vsnprintf options
+
+#
+# rt_vsscanf options
+#
+# CONFIG_RT_KLIBC_USING_LIBC_VSSCANF is not set
+# end of rt_vsscanf options
+
+#
+# rt_memset options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMSET is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMSET is not set
+# CONFIG_RT_KLIBC_USING_TINY_MEMSET is not set
+# end of rt_memset options
+
+#
+# rt_memcpy options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMCPY is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMCPY is not set
+# CONFIG_RT_KLIBC_USING_TINY_MEMCPY is not set
+# end of rt_memcpy options
+
+#
+# rt_memmove options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMMOVE is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMMOVE is not set
+# end of rt_memmove options
+
+#
+# rt_memcmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMCMP is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMCMP is not set
+# end of rt_memcmp options
+
 #
+# rt_strstr options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRSTR is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRSTR is not set
+# end of rt_strstr options
+
+#
+# rt_strcasecmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRCASECMP is not set
+# end of rt_strcasecmp options
+
+#
+# rt_strncpy options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRNCPY is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRNCPY is not set
+# end of rt_strncpy options
+
+#
+# rt_strcpy options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRCPY is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRCPY is not set
+# end of rt_strcpy options
+
+#
+# rt_strncmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRNCMP is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRNCMP is not set
+# end of rt_strncmp options
+
+#
+# rt_strcmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRCMP is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRCMP is not set
+# end of rt_strcmp options
+
+#
+# rt_strlen options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRLEN is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRLEN is not set
+# end of rt_strlen options
+
+#
+# rt_strnlen options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRNLEN is not set
+# end of rt_strnlen options
+
+# CONFIG_RT_UTEST_TC_USING_KLIBC is not set
+# end of klibc options
+
 CONFIG_RT_NAME_MAX=24
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
-# CONFIG_RT_USING_SMART is not set
 # CONFIG_RT_USING_NANO is not set
+# CONFIG_RT_USING_SMART is not set
 # CONFIG_RT_USING_AMP is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_CPUS_NR=1
@@ -29,20 +141,22 @@ CONFIG_IDLE_THREAD_STACK_SIZE=16384
 CONFIG_RT_USING_TIMER_SOFT=y
 CONFIG_RT_TIMER_THREAD_PRIO=4
 CONFIG_RT_TIMER_THREAD_STACK_SIZE=16384
+# CONFIG_RT_USING_TIMER_ALL_SOFT is not set
+CONFIG_RT_USING_CPU_USAGE_TRACER=y
 
 #
-# kservice optimization
+# kservice options
 #
-CONFIG_RT_KSERVICE_USING_STDLIB=y
-# CONFIG_RT_KSERVICE_USING_STDLIB_MEMORY is not set
-# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
 # CONFIG_RT_USING_TINY_FFS is not set
-CONFIG_RT_KPRINTF_USING_LONGLONG=y
+# end of kservice options
+
 CONFIG_RT_USING_DEBUG=y
+CONFIG_RT_DEBUGING_ASSERT=y
 CONFIG_RT_DEBUGING_COLOR=y
 CONFIG_RT_DEBUGING_CONTEXT=y
 # CONFIG_RT_DEBUGING_AUTO_INIT is not set
 # CONFIG_RT_DEBUGING_PAGE_LEAK is not set
+# CONFIG_RT_USING_CI_ACTION is not set
 
 #
 # Inter-Thread communication
@@ -54,43 +168,47 @@ CONFIG_RT_USING_MAILBOX=y
 CONFIG_RT_USING_MESSAGEQUEUE=y
 # CONFIG_RT_USING_MESSAGEQUEUE_PRIORITY is not set
 CONFIG_RT_USING_SIGNALS=y
+# end of Inter-Thread communication
 
 #
 # Memory Management
 #
 CONFIG_RT_PAGE_MAX_ORDER=11
 CONFIG_RT_USING_MEMPOOL=y
-CONFIG_RT_USING_SMALL_MEM=y
-# CONFIG_RT_USING_SLAB is not set
+# CONFIG_RT_USING_SMALL_MEM is not set
+CONFIG_RT_USING_SLAB=y
 # CONFIG_RT_USING_MEMHEAP is not set
-CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
+# CONFIG_RT_USING_SMALL_MEM_AS_HEAP is not set
 # CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
-# CONFIG_RT_USING_SLAB_AS_HEAP is not set
+CONFIG_RT_USING_SLAB_AS_HEAP=y
 # CONFIG_RT_USING_USERHEAP is not set
 # CONFIG_RT_USING_NOHEAP is not set
 CONFIG_RT_USING_MEMTRACE=y
 # CONFIG_RT_USING_HEAP_ISR is not set
 CONFIG_RT_USING_HEAP=y
+# end of Memory Management
+
 CONFIG_RT_USING_DEVICE=y
 CONFIG_RT_USING_DEVICE_OPS=y
 # CONFIG_RT_USING_INTERRUPT_INFO is not set
 # CONFIG_RT_USING_THREADSAFE_PRINTF is not set
-# CONFIG_RT_USING_SCHED_THREAD_CTX is not set
 CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_CONSOLEBUF_SIZE=256
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
-CONFIG_RT_VER_NUM=0x50100
-# CONFIG_RT_USING_STDC_ATOMIC is not set
+CONFIG_RT_VER_NUM=0x50200
+CONFIG_RT_USING_STDC_ATOMIC=y
 CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32
+# end of RT-Thread Kernel
+
 CONFIG_ARCH_CPU_64BIT=y
 CONFIG_RT_USING_CACHE=y
-CONFIG_RT_USING_HW_ATOMIC=y
-# CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE is not set
-# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
-# CONFIG_RT_USING_CPU_FFS is not set
 CONFIG_ARCH_MM_MMU=y
 CONFIG_ARCH_RISCV=y
+CONFIG_ARCH_RISCV_FPU=y
 CONFIG_ARCH_RISCV64=y
+CONFIG_ARCH_USING_NEW_CTX_SWITCH=y
+CONFIG_ARCH_USING_RISCV_COMMON64=y
+CONFIG_ARCH_REMAP_KERNEL=y
 
 #
 # RT-Thread Components
@@ -123,12 +241,9 @@ CONFIG_FINSH_USING_OPTION_COMPLETION=y
 CONFIG_RT_USING_DFS=y
 CONFIG_DFS_USING_POSIX=y
 CONFIG_DFS_USING_WORKDIR=y
-# CONFIG_RT_USING_DFS_MNTTABLE is not set
 CONFIG_DFS_FD_MAX=32
-CONFIG_RT_USING_DFS_V1=y
-# CONFIG_RT_USING_DFS_V2 is not set
-CONFIG_DFS_FILESYSTEMS_MAX=4
-CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
+# CONFIG_RT_USING_DFS_V1 is not set
+CONFIG_RT_USING_DFS_V2=y
 CONFIG_RT_USING_DFS_ELMFAT=y
 
 #
@@ -153,20 +268,22 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
 CONFIG_RT_DFS_ELM_REENTRANT=y
 CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000
 # CONFIG_RT_DFS_ELM_USE_EXFAT is not set
+# end of elm-chan's FatFs, Generic FAT Filesystem Module
+
 CONFIG_RT_USING_DFS_DEVFS=y
 CONFIG_RT_USING_DFS_ROMFS=y
-# CONFIG_RT_USING_DFS_ROMFS_USER_ROOT is not set
 # CONFIG_RT_USING_DFS_CROMFS is not set
-# CONFIG_RT_USING_DFS_RAMFS is not set
 # CONFIG_RT_USING_DFS_TMPFS is not set
 # CONFIG_RT_USING_DFS_MQUEUE is not set
-# CONFIG_RT_USING_DFS_NFS is not set
+# end of DFS: device virtual file system
+
 # CONFIG_RT_USING_FAL is not set
 
 #
 # Device Drivers
 #
 # CONFIG_RT_USING_DM is not set
+# CONFIG_RT_USING_DEV_BUS is not set
 CONFIG_RT_USING_DEVICE_IPC=y
 CONFIG_RT_UNAMED_PIPE_NUMBER=64
 CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
@@ -177,18 +294,22 @@ CONFIG_RT_USING_SERIAL_V1=y
 # CONFIG_RT_USING_SERIAL_V2 is not set
 CONFIG_RT_SERIAL_USING_DMA=y
 CONFIG_RT_SERIAL_RB_BUFSZ=64
+# CONFIG_RT_USING_SERIAL_BYPASS is not set
 # CONFIG_RT_USING_CAN is not set
 CONFIG_RT_USING_CPUTIME=y
 CONFIG_RT_USING_CPUTIME_RISCV=y
 CONFIG_CPUTIME_TIMER_FREQ=10000000
 # CONFIG_RT_USING_I2C is not set
 # CONFIG_RT_USING_PHY is not set
+# CONFIG_RT_USING_PHY_V2 is not set
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_DAC is not set
 CONFIG_RT_USING_NULL=y
 CONFIG_RT_USING_ZERO=y
 CONFIG_RT_USING_RANDOM=y
 # CONFIG_RT_USING_PWM is not set
+# CONFIG_RT_USING_PULSE_ENCODER is not set
+# CONFIG_RT_USING_INPUT_CAPTURE 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
@@ -203,10 +324,8 @@ CONFIG_RT_USING_SOFT_RTC=y
 # CONFIG_RT_USING_TOUCH is not set
 # CONFIG_RT_USING_LCD 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_DEV_BUS is not set
 # CONFIG_RT_USING_WIFI is not set
+# CONFIG_RT_USING_BLK is not set
 CONFIG_RT_USING_VIRTIO=y
 CONFIG_RT_USING_VIRTIO10=y
 # CONFIG_RT_USING_VIRTIO_MMIO_ALIGN is not set
@@ -214,18 +333,13 @@ CONFIG_RT_USING_VIRTIO_BLK=y
 CONFIG_RT_USING_VIRTIO_NET=y
 CONFIG_RT_USING_VIRTIO_CONSOLE=y
 CONFIG_RT_USING_VIRTIO_CONSOLE_PORT_MAX_NR=4
-# CONFIG_RT_USING_VIRTIO_GPU is not set
-# CONFIG_RT_USING_VIRTIO_INPUT is not set
+CONFIG_RT_USING_VIRTIO_GPU=y
+CONFIG_RT_USING_VIRTIO_INPUT=y
 CONFIG_RT_USING_PIN=y
 CONFIG_RT_USING_KTIME=y
 # CONFIG_RT_USING_HWTIMER is not set
-
-#
-# Using USB
-#
-# CONFIG_RT_USING_USB is not set
-# CONFIG_RT_USING_USB_HOST is not set
-# CONFIG_RT_USING_USB_DEVICE is not set
+# CONFIG_RT_USING_CHERRYUSB is not set
+# end of Device Drivers
 
 #
 # C/C++ and POSIX layer
@@ -243,6 +357,8 @@ CONFIG_RT_LIBC_USING_LIGHT_TZ_DST=y
 CONFIG_RT_LIBC_TZ_DEFAULT_HOUR=8
 CONFIG_RT_LIBC_TZ_DEFAULT_MIN=0
 CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
+# end of Timezone and Daylight Saving Time
+# end of ISO-ANSI C layer
 
 #
 # POSIX (Portable Operating System Interface) layer
@@ -275,7 +391,11 @@ CONFIG_RT_USING_POSIX_PIPE_SIZE=512
 #
 # Socket is in the 'Network' category
 #
+# end of Interprocess Communication (IPC)
+# end of POSIX (Portable Operating System Interface) layer
+
 # CONFIG_RT_USING_CPLUSPLUS is not set
+# end of C/C++ and POSIX layer
 
 #
 # Network
@@ -289,16 +409,18 @@ CONFIG_SAL_INTERNET_CHECK=y
 CONFIG_SAL_USING_LWIP=y
 # CONFIG_SAL_USING_AT is not set
 # CONFIG_SAL_USING_TLS is not set
+# end of Docking with protocol stacks
+
 CONFIG_SAL_USING_POSIX=y
 CONFIG_RT_USING_NETDEV=y
 CONFIG_NETDEV_USING_IFCONFIG=y
 CONFIG_NETDEV_USING_PING=y
 CONFIG_NETDEV_USING_NETSTAT=y
 CONFIG_NETDEV_USING_AUTO_DEFAULT=y
+# CONFIG_NETDEV_USING_LINK_STATUS_CALLBACK is not set
 # CONFIG_NETDEV_USING_IPV6 is not set
 CONFIG_NETDEV_IPV4=1
 CONFIG_NETDEV_IPV6=0
-# CONFIG_NETDEV_IPV6_SCOPES is not set
 CONFIG_RT_USING_LWIP=y
 # CONFIG_RT_USING_LWIP_LOCAL_VERSION is not set
 # CONFIG_RT_USING_LWIP141 is not set
@@ -322,6 +444,8 @@ CONFIG_IP_SOF_BROADCAST_RECV=1
 CONFIG_RT_LWIP_IPADDR="192.168.1.30"
 CONFIG_RT_LWIP_GWADDR="192.168.1.1"
 CONFIG_RT_LWIP_MSKADDR="255.255.255.0"
+# end of Static IPv4 Address
+
 CONFIG_RT_LWIP_UDP=y
 CONFIG_RT_LWIP_TCP=y
 CONFIG_RT_LWIP_RAW=y
@@ -357,14 +481,17 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
 # CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set
 CONFIG_RT_LWIP_USING_PING=y
 # CONFIG_LWIP_USING_DHCPD is not set
+# CONFIG_RT_LWIP_ENABLE_USER_HOOKS is not set
 # CONFIG_RT_LWIP_DEBUG is not set
 # CONFIG_RT_USING_AT is not set
+# end of Network
 
 #
 # Memory protection
 #
 # CONFIG_RT_USING_MEM_PROTECTION is not set
 # CONFIG_RT_USING_HW_STACK_GUARD is not set
+# end of Memory protection
 
 #
 # Utilities
@@ -382,12 +509,25 @@ CONFIG_RT_USING_ADT_BITMAP=y
 CONFIG_RT_USING_ADT_HASHMAP=y
 CONFIG_RT_USING_ADT_REF=y
 # CONFIG_RT_USING_RT_LINK is not set
+# end of Utilities
+
 # CONFIG_RT_USING_VBUS is not set
 
+#
+# Using USB legacy version
+#
+# CONFIG_RT_USING_USB_HOST is not set
+# CONFIG_RT_USING_USB_DEVICE is not set
+# end of Using USB legacy version
+
+# CONFIG_RT_USING_FDT is not set
+# end of RT-Thread Components
+
 #
 # RT-Thread Utestcases
 #
 # CONFIG_RT_USING_UTESTCASES is not set
+# end of RT-Thread Utestcases
 
 #
 # RT-Thread online packages
@@ -396,7 +536,6 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # IoT - internet of things
 #
-# CONFIG_PKG_USING_LWIP is not set
 # CONFIG_PKG_USING_LORAWAN_DRIVER is not set
 # CONFIG_PKG_USING_PAHOMQTT is not set
 # CONFIG_PKG_USING_UMQTT is not set
@@ -409,6 +548,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_WEBTERMINAL is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
 # CONFIG_PKG_USING_NANOPB is not set
+# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set
 
 #
 # Wi-Fi
@@ -418,27 +558,35 @@ CONFIG_RT_USING_ADT_REF=y
 # 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
 
 #
 # CYW43012 WiFi
 #
 # CONFIG_PKG_USING_WLAN_CYW43012 is not set
+# end of CYW43012 WiFi
 
 #
 # BL808 WiFi
 #
 # CONFIG_PKG_USING_WLAN_BL808 is not set
+# end of BL808 WiFi
 
 #
 # CYW43439 WiFi
 #
 # CONFIG_PKG_USING_WLAN_CYW43439 is not set
+# end of CYW43439 WiFi
+# 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
@@ -461,6 +609,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
 # CONFIG_PKG_USING_JOYLINK is not set
 # CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# end of IoT Cloud
+
 # CONFIG_PKG_USING_NIMBLE is not set
 # CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
@@ -503,6 +653,9 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
 # CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
 # CONFIG_PKG_USING_LHC_MODBUS is not set
+# CONFIG_PKG_USING_QMODBUS is not set
+# CONFIG_PKG_USING_PNET is not set
+# end of IoT - internet of things
 
 #
 # security packages
@@ -513,6 +666,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_TINYCRYPT is not set
 # CONFIG_PKG_USING_TFM is not set
 # CONFIG_PKG_USING_YD_CRYPTO is not set
+# end of security packages
 
 #
 # language packages
@@ -528,18 +682,23 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_JSMN is not set
 # CONFIG_PKG_USING_AGILE_JSMN is not set
 # CONFIG_PKG_USING_PARSON is not set
+# CONFIG_PKG_USING_RYAN_JSON is not set
+# end of JSON: JavaScript Object Notation, a lightweight data-interchange format
 
 #
 # XML: Extensible Markup Language
 #
 # CONFIG_PKG_USING_SIMPLE_XML is not set
 # CONFIG_PKG_USING_EZXML is not set
+# end of XML: Extensible Markup Language
+
 # CONFIG_PKG_USING_LUATOS_SOC is not set
 # CONFIG_PKG_USING_LUA is not set
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
 # CONFIG_PKG_USING_RTT_RUST is not set
+# end of language packages
 
 #
 # multimedia packages
@@ -551,12 +710,15 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_LVGL is not set
 # CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
 # CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+# end of LVGL: powerful and easy-to-use embedded GUI library
 
 #
 # u8g2: a monochrome graphic library
 #
 # CONFIG_PKG_USING_U8G2_OFFICIAL is not set
 # CONFIG_PKG_USING_U8G2 is not set
+# end of u8g2: a monochrome graphic library
+
 # CONFIG_PKG_USING_OPENMV is not set
 # CONFIG_PKG_USING_MUPDF is not set
 # CONFIG_PKG_USING_STEMWIN is not set
@@ -576,6 +738,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QRCODE is not set
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_3GPP_AMRNB is not set
+# end of multimedia packages
 
 #
 # tools packages
@@ -624,6 +787,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
 # CONFIG_PKG_USING_VOFA_PLUS is not set
 # CONFIG_PKG_USING_ZDEBUG is not set
+# CONFIG_PKG_USING_RVBACKTRACE is not set
+# end of tools packages
 
 #
 # system packages
@@ -634,7 +799,9 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_RT_MEMCPY_CM is not set
 # CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
-# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
+# end of enhanced kernel services
+
+# CONFIG_PKG_USING_AUNITY is not set
 
 #
 # acceleration: Assembly language or algorithmic acceleration packages
@@ -642,6 +809,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
 # CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
 # CONFIG_PKG_USING_QFPLIB_M3 is not set
+# end of acceleration: Assembly language or algorithmic acceleration packages
 
 #
 # CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
@@ -652,6 +820,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_CMSIS_NN is not set
 # CONFIG_PKG_USING_CMSIS_RTOS1 is not set
 # CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
 
 #
 # Micrium: Micrium software products porting for RT-Thread
@@ -662,6 +831,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
+# end of Micrium: Micrium software products porting for RT-Thread
+
 # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
 # CONFIG_PKG_USING_LITEOS_SDK is not set
 # CONFIG_PKG_USING_TZ_DATABASE is not set
@@ -705,10 +876,13 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_FLASH_BLOB is not set
 # CONFIG_PKG_USING_MLIBC is not set
 # CONFIG_PKG_USING_TASK_MSG_BUS is not set
+# CONFIG_PKG_USING_UART_FRAMEWORK is not set
 # CONFIG_PKG_USING_SFDB is not set
 # CONFIG_PKG_USING_RTP is not set
 # CONFIG_PKG_USING_REB is not set
 # CONFIG_PKG_USING_R_RHEALSTONE is not set
+# CONFIG_PKG_USING_HEARTBEAT is not set
+# end of system packages
 
 #
 # peripheral libraries and drivers
@@ -721,9 +895,29 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # STM32 HAL & SDK Drivers
 #
-# CONFIG_PKG_USING_STM32L4XX_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set
 # CONFIG_PKG_USING_STM32WB55_SDK is not set
 # CONFIG_PKG_USING_STM32_SDIO is not set
+# end of STM32 HAL & SDK Drivers
+
+#
+# Infineon HAL Packages
+#
+# CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set
+# CONFIG_PKG_USING_INFINEON_CMSIS is not set
+# CONFIG_PKG_USING_INFINEON_CORE_LIB is not set
+# CONFIG_PKG_USING_INFINEON_MTB_HAL_CAT1 is not set
+# CONFIG_PKG_USING_INFINEON_MTB_PDL_CAT1 is not set
+# CONFIG_PKG_USING_INFINEON_RETARGET_IO is not set
+# CONFIG_PKG_USING_INFINEON_CAPSENSE is not set
+# CONFIG_PKG_USING_INFINEON_CSDIDAC is not set
+# CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set
+# CONFIG_PKG_USING_INFINEON_USBDEV is not set
+# end of Infineon HAL Packages
+
 # CONFIG_PKG_USING_BLUETRUM_SDK is not set
 # CONFIG_PKG_USING_EMBARC_BSP is not set
 # CONFIG_PKG_USING_ESP_IDF is not set
@@ -733,10 +927,13 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_K210_SDK is not set
 # CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# end of Kendryte SDK
+
 # CONFIG_PKG_USING_NRF5X_SDK is not set
 # CONFIG_PKG_USING_NRFX is not set
 # CONFIG_PKG_USING_NUCLEI_SDK is not set
 # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
+# end of HAL & SDK Drivers
 
 #
 # sensors drivers
@@ -781,6 +978,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_MLX90632 is not set
 # CONFIG_PKG_USING_MLX90393 is not set
 # CONFIG_PKG_USING_MLX90392 is not set
+# CONFIG_PKG_USING_MLX90394 is not set
 # CONFIG_PKG_USING_MLX90397 is not set
 # CONFIG_PKG_USING_MS5611 is not set
 # CONFIG_PKG_USING_MAX31865 is not set
@@ -806,6 +1004,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ICM20608 is not set
 # CONFIG_PKG_USING_PAJ7620 is not set
 # CONFIG_PKG_USING_STHS34PF80 is not set
+# end of sensors drivers
 
 #
 # touch drivers
@@ -820,6 +1019,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_XPT2046_TOUCH is not set
 # CONFIG_PKG_USING_CST816X is not set
 # CONFIG_PKG_USING_CST812T is not set
+# end of touch drivers
+
 # CONFIG_PKG_USING_REALTEK_AMEBA is not set
 # CONFIG_PKG_USING_BUTTON is not set
 # CONFIG_PKG_USING_PCF8574 is not set
@@ -891,7 +1092,11 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_BT_MX01 is not set
 # CONFIG_PKG_USING_RGPOWER is not set
+# CONFIG_PKG_USING_BT_MX02 is not set
+# CONFIG_PKG_USING_GC9A01 is not set
+# CONFIG_PKG_USING_IK485 is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
+# end of peripheral libraries and drivers
 
 #
 # AI packages
@@ -906,15 +1111,18 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
 # CONFIG_PKG_USING_R_TINYMAIX is not set
+# end of AI packages
 
 #
 # Signal Processing and Control Algorithm Packages
 #
+# CONFIG_PKG_USING_APID is not set
 # CONFIG_PKG_USING_FIRE_PID_CURVE is not set
 # CONFIG_PKG_USING_QPID is not set
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
+# end of Signal Processing and Control Algorithm Packages
 
 #
 # miscellaneous packages
@@ -923,6 +1131,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # project laboratory
 #
+# end of project laboratory
 
 #
 # samples: kernel and components samples
@@ -931,6 +1140,7 @@ CONFIG_RT_USING_ADT_REF=y
 # 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
 
 #
 # entertainment: terminal games and other interesting software packages
@@ -946,6 +1156,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_DONUT is not set
 # CONFIG_PKG_USING_COWSAY is not set
 # CONFIG_PKG_USING_MORSE is not set
+# end of entertainment: terminal games and other interesting software packages
+
 # CONFIG_PKG_USING_LIBCSV is not set
 # CONFIG_PKG_USING_OPTPARSE is not set
 # CONFIG_PKG_USING_FASTLZ is not set
@@ -979,6 +1191,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_SOEM is not set
 # CONFIG_PKG_USING_QPARAM is not set
 # CONFIG_PKG_USING_CorevMCU_CLI is not set
+# end of miscellaneous packages
 
 #
 # Arduino libraries
@@ -991,9 +1204,11 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set
 # CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set
 # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set
+# CONFIG_PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD is not set
 # CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set
 # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set
 # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set
+# end of Projects and Demos
 
 #
 # Sensors
@@ -1133,6 +1348,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set
 # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set
+# CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set
+# end of Sensors
 
 #
 # Display
@@ -1144,6 +1361,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set
 # CONFIG_PKG_USING_SEEED_TM1637 is not set
+# end of Display
 
 #
 # Timing
@@ -1152,6 +1370,7 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
+# end of Timing
 
 #
 # Data Processing
@@ -1159,6 +1378,8 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set
 # CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set
 # CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set
+# CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set
+# end of Data Processing
 
 #
 # Data Storage
@@ -1169,6 +1390,7 @@ CONFIG_RT_USING_ADT_REF=y
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set
+# end of Communication
 
 #
 # Device Control
@@ -1180,12 +1402,14 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set
+# end of Device Control
 
 #
 # Other
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set
+# end of Other
 
 #
 # Signal IO
@@ -1198,24 +1422,27 @@ CONFIG_RT_USING_ADT_REF=y
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set
+# end of Signal IO
 
 #
 # Uncategorized
 #
+# end of Arduino libraries
+# end of RT-Thread online packages
 
 #
 # RISC-V QEMU virt64 configs
 #
-CONFIG_RISCV_S_MODE=y
+CONFIG_BSP_USING_VIRTIO=y
 CONFIG_BSP_USING_VIRTIO_BLK=y
 CONFIG_BSP_USING_VIRTIO_NET=y
 CONFIG_BSP_USING_VIRTIO_CONSOLE=y
-# CONFIG_BSP_USING_VIRTIO_GPU is not set
-# CONFIG_BSP_USING_VIRTIO_INPUT is not set
-# CONFIG_BSP_USING_UART1 is not set
+CONFIG_BSP_USING_VIRTIO_GPU=y
+CONFIG_BSP_USING_VIRTIO_INPUT=y
+# end of RISC-V QEMU virt64 configs
+
 CONFIG_BOARD_QEMU_VIRT_RV64=y
 CONFIG_ENABLE_FPU=y
 # CONFIG_ENABLE_VECTOR is not set
 # CONFIG_RT_USING_USERSPACE_32BIT_LIMIT is not set
-CONFIG_ARCH_USING_NEW_CTX_SWITCH=y
 CONFIG___STACKSIZE__=16384

+ 10 - 21
bsp/qemu-virt64-riscv/Kconfig

@@ -1,41 +1,34 @@
 mainmenu "RT-Thread Project Configuration"
 
-config BSP_DIR
-    string
-    option env="BSP_ROOT"
-    default "."
+BSP_DIR := .
 
-config RTT_DIR
-    string
-    option env="RTT_ROOT"
-    default "../../"
+RTT_DIR := ../../
 
-config PKGS_DIR
-    string
-    option env="PKGS_ROOT"
-    default "packages"
+PKGS_DIR := packages
 
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
-source "driver/Kconfig"
+source "$(RTT_DIR)/Kconfig"
+osource "$PKGS_DIR/Kconfig"
+rsource "driver/Kconfig"
 
 config BOARD_QEMU_VIRT_RV64
     bool
     select ARCH_RISCV64
-    select ARCH_CONTEXT_EXTEND
+    select ARCH_USING_RISCV_COMMON64
     select RT_USING_COMPONENTS_INIT
     select RT_USING_USER_MAIN
     select RT_USING_CACHE
     select ARCH_MM_MMU
-    select RT_USING_HW_ATOMIC
+    select ARCH_REMAP_KERNEL
     default y
 
 config ENABLE_FPU
     bool "Enable FPU"
+    select ARCH_RISCV_FPU
     default y
 
 config ENABLE_VECTOR
     bool "Using RISC-V Vector Extension"
+    select ARCH_RISCV_VECTOR
     default n
 
 if ENABLE_VECTOR
@@ -59,10 +52,6 @@ config RT_USING_VIRTIO_MMIO_ALIGN
     bool "Open packed attribution, this may caused an error on virtio"
     default n
 
-config ARCH_USING_NEW_CTX_SWITCH
-    bool
-    default y
-
 config __STACKSIZE__
     int "stack size for interrupt"
     default 4096

+ 388 - 30
bsp/qemu-virt64-riscv/README.md

@@ -1,47 +1,405 @@
-# RT-Smart QEMU SYSTEM RISC-V RV64 BSP
+**QEMU/RISCV64 VIRT Board Support Package User Guide**
 
-English | [中文](./README_ch.md)
+English | [中文](./README_cn.md)
 
-## 1. Introduction
+<!-- TOC -->
 
-QEMU can emulate both 32-bit and 64-bit RISC-V CPUs. Use the qemu-system-riscv64 executable to simulate a 64-bit RISC-V machine, qemu-system-riscv32 executable to simulate a 32-bit RISC-V machine.
+- [1. Introduction](#1-introduction)
+- [2. Building](#2-building)
+	- [2.1. Installing the toolchain](#21-installing-the-toolchain)
+	- [2.2. Setting RT-Thread toolchain environment variables](#22-setting-rt-thread-toolchain-environment-variables)
+	- [2.3. Downloading the kernel](#23-downloading-the-kernel)
+	- [2.4. Configuring the kernel](#24-configuring-the-kernel)
+	- [2.5. Compiling the kernel](#25-compiling-the-kernel)
+- [3. Running](#3-running)
+	- [3.1. Installing QEMU](#31-installing-qemu)
+	- [3.2. Running QEMU](#32-running-qemu)
+		- [3.2.1. Running RT-Thread Standard Edition](#321-running-rt-thread-standard-edition)
+		- [3.2.2. Running RT-Thread Smart version](#322-running-rt-thread-smart-version)
+		- [3.2.3. Running RT-Thread Smart version + Root file-system](#323-running-rt-thread-smart-version--root-file-system)
+- [4. How to use rv64ilp32 toolchain](#4-how-to-use-rv64ilp32-toolchain)
+- [5. Contact information](#5-contact-information)
 
-QEMU has generally good support for RISC-V guests. It has support for several different machines. The reason we support so many is that RISC-V hardware is much more widely varying than x86 hardware. RISC-V CPUs are generally built into “system-on-chip” (SoC) designs created by many different companies with different devices, and these SoCs are then built into machines which can vary still further even if they use the same SoC.
+<!-- /TOC -->
 
-For most boards the CPU type is fixed (matching what the hardware has), so typically you don’t need to specify the CPU type by hand, except for special cases like the virt board.
+# 1. Introduction
 
-## 2. Building
+RISC-V is an open and free instruction set architecture (ISA). This project is a port on the RISCV64 VIRT version of QEMU.
 
-It's tedious to properly build a kernel since each RISC-V toolchain is specified to one RISC-V ISA. So you have to use different toolchain for different RISC-V ISAs.
-Here we focus on 2 types of ISA: `rv64imafdcv` and `rv64imac`.
+This project supports the world's first rv64ilp32 product-level open source toolchain jointly launched by the Xuantie team and the Institute of Software of the Chinese Academy of Sciences.
 
-If you are not sure what kinds of ISA you need, then `rv64imac` should satisfied your case most time. Given a riscv toolchain, you can check the ISA it supports like this:
+# 2. Building
 
-```bash
-root@a9025fd90fd4:/home/rtthread-smart# riscv64-unknown-linux-musl-gcc -v
-Using built-in specs.
-COLLECT_GCC=riscv64-unknown-linux-musl-gcc
-COLLECT_LTO_WRAPPER=/home/rtthread-smart/tools/gnu_gcc/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/../libexec/gcc/riscv64-unknown-linux-musl/10.1.0/lto-wrapper
-Target: riscv64-unknown-linux-musl
-Configured with: /builds/alliance/risc-v-toolchain/riscv-gcc/configure --target=riscv64-unknown-linux-musl --prefix=/builds/alliance/risc-v-toolchain/install-native/ --with-sysroot=/builds/alliance/risc-v-toolchain/install-native//riscv64-unknown-linux-musl --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++ --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=/builds/alliance/risc-v-toolchain/riscv-gcc --disable-multilib --with-abi=lp64 --with-arch=rv64imac --with-tune=rocket 'CFLAGS_FOR_TARGET=-O2   -mcmodel=medany -march=rv64imac -mabi=lp64 -D __riscv_soft_float' 'CXXFLAGS_FOR_TARGET=-O2   -mcmodel=medany -march=rv64imac -mabi=lp64 -D __riscv_soft_float'
-Thread model: posix
-Supported LTO compression algorithms: zlib
-gcc version 10.1.0 (GCC) 
+Working system: take Ubuntu 22.04 as an example:
+
+```shell
+$ lsb_release -a
+No LSB modules are available.
+Distributor ID: Ubuntu
+Description: Ubuntu 22.04.2 LTS
+Release: 22.04
+Codename: jammy
+```
+
+## 2.1. Installing the toolchain
+
+The specific toolchain used is consistent with the official RT-Thread. For the specific toolchain version, please refer to the file <https://github.com/RT-Thread/rt-thread/blob/master/.github/workflows/action_utest.yml> in the RT-Thread repository.
+
+```yaml
+    - name: Install RISC-V ToolChains
+      if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && matrix.legs.UTEST != 'rtsmart/riscv64' && success() }}
+      run: |
+        wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.4/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
+        sudo tar zxvf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz -C /opt
+        /opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc --version
+        echo "RTT_EXEC_PATH=/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_ENV
+
+    - name: Install RISC-V Musl ToolChains
+      if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && matrix.legs.UTEST == 'rtsmart/riscv64' && success() }}
+      shell: bash
+      run: |
+        wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.7/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2
+        sudo tar xjf riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2 -C /opt
+        /opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/riscv64-unknown-linux-musl-gcc --version
+        echo "RTT_EXEC_PATH=/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV
+        echo "RTT_CC_PREFIX=riscv64-unknown-linux-musl-" >> $GITHUB_ENV
+```
+
+Among them, `riscv64-unknown-elf-gcc` is used to build the RT-Thread Standard version, and `riscv64-unknown-linux-musl-gcc` is used to build the RT-Thread Smart version. Download them to your local computer according to the links shown above and decompress them.
+
+## 2.2. Setting RT-Thread toolchain environment variables
+
+There are three environment variables related to the RT-Thread toolchain
+
+- `RTT_CC` is the toolchain name, which is `"gcc"` here
+- `RTT_CC_PREFIX`: is the toolchain prefix, which is `"riscv64-unknown-elf-"` for the Standard version and `"riscv64-unknown-linux-musl-"` for the Smart version.
+- `RTT_EXEC_PATH`: the path where the bin folder of the toolchain is located, such as `"$HOME/tools/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin"`. This is set according to the actual path after personal download and decompression. Note that the toolchains of the RT-Thread standard version and the Smart version are two different versions, and the path name of `RTT_EXEC_PATH` must be set to `bin`.
+
+If you use them all the time, it is recommended to export these three environment variables in the `.bashrc` file.
+
+## 2.3. Downloading the kernel
+
+Assume that the working path is `$WORKSPACE`.
+
+```shell
+$ cd $WORKSPACE
+$ git clone git@github.com:RT-Thread/rt-thread.git
+```
+
+Enter the BSP directory where qemu-virt64-riscv is located. The following operations will not be introduced separately. By default, it is in this directory.
+
+```shell
+$ cd $WORKSPACE/rt-thread/bsp/qemu-virt64-riscv
+```
+
+## 2.4. Configuring the kernel
+
+Refresh the configuration file before compiling for the first time.
+
+```shell
+$ scons --menuconfig
 ```
 
-The `-march=***` is what you are looking for. And the `-mabi=***` is also an important message to configure compiling script.
+The default configuration is the RT-Thread standard version, so if you don't have any special requirements, don't change anything, just save and exit.
+
+If you want to use the RT-Thread Smart version, at least turn on the `RT_USING_SMART` option after entering the configuration menu (see the figure below), and the rest depends on your needs.
+
+```
+(Top) → RT-Thread Kernel
+RT-Thread Project Configuration
+(24) The maximal size of kernel object name
+[ ] Use the data types defined in ARCH_CPU
+[*] Enable RT-Thread Smart (microkernel on kernel/userland)
+[ ] Enable RT-Thread Nano
+...
+```
+
+Save and exit after modification.
+
+## 2.5. Compiling the kernel
+
+If you have compiled before, you can clean it up:
+
+```shell
+$ scons --clean
+```
+
+Or compile directly:
+
+```shell
+$ scons -j$(nproc)
+```
+
+The kernel binary file `rtthread.bin` will be generated in the `$WORKSPACE/rt-thread/bsp/qemu-virt64-riscv`.
+
+# 3. Running
+
+## 3.1. Installing QEMU
+
+```shell
+$ sudo apt update
+$ sudo apt install qemu-system-misc
+```
+
+After the installation is complete, you can check the version.
+
+```shell
+$ qemu-system-riscv64 --version
+QEMU emulator version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.24)
+Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers
+```
+
+## 3.2. Running QEMU
+
+The repository has provided a ready-made execution script, which can be executed directly:
+
+```shell
+$ ./run.sh
+```
+
+### 3.2.1. Running RT-Thread Standard Edition
+
+The following is an example:
+
+```shell
+$ ./run.sh 
+
+OpenSBI v0.9
+   ____                    _____ ____ _____
+  / __ \                  / ____|  _ \_   _|
+ | |  | |_ __   ___ _ __ | (___ | |_) || |
+ | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
+ | |__| | |_) |  __/ | | |____) | |_) || |_
+  \____/| .__/ \___|_| |_|_____/|____/_____|
+        | |
+        |_|
+
+Platform Name             : riscv-virtio,qemu
+Platform Features         : timer,mfdeleg
+Platform HART Count       : 1
+Firmware Base             : 0x80000000
+Firmware Size             : 100 KB
+Runtime SBI Version       : 0.2
+
+Domain0 Name              : root
+Domain0 Boot HART         : 0
+Domain0 HARTs             : 0*
+Domain0 Region00          : 0x0000000080000000-0x000000008001ffff ()
+Domain0 Region01          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
+Domain0 Next Address      : 0x0000000080200000
+Domain0 Next Arg1         : 0x000000008f000000
+Domain0 Next Mode         : S-mode
+Domain0 SysReset          : yes
+
+Boot HART ID              : 0
+Boot HART Domain          : root
+Boot HART ISA             : rv64imafdcsu
+Boot HART Features        : scounteren,mcounteren,time
+Boot HART PMP Count       : 16
+Boot HART PMP Granularity : 4
+Boot HART PMP Address Bits: 54
+Boot HART MHPM Count      : 0
+Boot HART MHPM Count      : 0
+Boot HART MIDELEG         : 0x0000000000000222
+Boot HART MEDELEG         : 0x000000000000b109
+heap: [0x8028d8a8 - 0x8428d8a8]
+
+ \ | /
+- RT -     Thread Operating System
+ / | \     5.2.0 build Nov 14 2024 15:41:57
+ 2006 - 2024 Copyright by RT-Thread team
+lwIP-2.0.3 initialized!
+[I/sal.skt] Socket Abstraction Layer initialize success.
+[I/utest] utest is initialize success.
+[I/utest] total utest testcase num: (0)
+file system initialization done!
+Hello RISC-V
+msh />
+```
+### 3.2.2. Running RT-Thread Smart version
+
+The following is an example:
+
+```shell
+$ ./run.sh 
+
+OpenSBI v0.9
+   ____                    _____ ____ _____
+  / __ \                  / ____|  _ \_   _|
+ | |  | |_ __   ___ _ __ | (___ | |_) || |
+ | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
+ | |__| | |_) |  __/ | | |____) | |_) || |_
+  \____/| .__/ \___|_| |_|_____/|____/_____|
+        | |
+        |_|
+
+Platform Name             : riscv-virtio,qemu
+Platform Features         : timer,mfdeleg
+Platform HART Count       : 1
+Firmware Base             : 0x80000000
+Firmware Size             : 100 KB
+Runtime SBI Version       : 0.2
+
+Domain0 Name              : root
+Domain0 Boot HART         : 0
+Domain0 HARTs             : 0*
+Domain0 Region00          : 0x0000000080000000-0x000000008001ffff ()
+Domain0 Region01          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
+Domain0 Next Address      : 0x0000000080200000
+Domain0 Next Arg1         : 0x000000008f000000
+Domain0 Next Mode         : S-mode
+Domain0 SysReset          : yes
+
+Boot HART ID              : 0
+Boot HART Domain          : root
+Boot HART ISA             : rv64imafdcsu
+Boot HART Features        : scounteren,mcounteren,time
+Boot HART PMP Count       : 16
+Boot HART PMP Granularity : 4
+Boot HART PMP Address Bits: 54
+Boot HART MHPM Count      : 0
+Boot HART MHPM Count      : 0
+Boot HART MIDELEG         : 0x0000000000000222
+Boot HART MEDELEG         : 0x000000000000b109
+heap: [0x002ef030 - 0x042ef030]
+
+ \ | /
+- RT -     Thread Smart Operating System
+ / | \     5.2.0 build Nov 14 2024 15:48:43
+ 2006 - 2024 Copyright by RT-Thread team
+lwIP-2.0.3 initialized!
+[I/sal.skt] Socket Abstraction Layer initialize success.
+[I/utest] utest is initialize success.
+[I/utest] total utest testcase num: (0)
+[I/drivers.serial] Using /dev/ttyS0 as default console
+file system initialization done!
+Hello RISC-V
+msh />
+```
+
+### 3.2.3. Running RT-Thread Smart version + Root file-system
+
+For the Smart version of the kernel, you can also specify the path of the root file-system image file when executing the `run.sh` script to mount the root file-system during the startup process.
+
+It should be noted that the kernel supports fat by default. If you want to mount the ext4 file-system, you need to install the lwext4 package additionally, i.e. to enable the `PKG_USING_LWEXT4` option (the specific menuconfig path is (Top) -> RT-Thread online packages -> system packages -> lwext4: an excellent choice of ext2/3/4 filesystem for microcontrollers.). If you can't find the item in the menu, you can exit menuconfig and execute `pkgs --upgrade` to update the package index and then try to enable the package.
+
+After checking this option, you also need to perform the following operations to update the software and install the source code to the packages directory of bsp (this operation only needs to be performed once):
+
+```shell
+$ source ~/.env/env.sh
+$ pkgs --update
+```
+
+Save and recompile the kernel.
+
+For how to make a root file-system, please refer to <https://github.com/RT-Thread/userapps/blob/main/README.md>, which will not be repeated here.
+
+The example is as follows:
+
+```shell
+$ ./run.sh /home/u/ws/duo/userapps/apps/build/ext4.img 
+
+OpenSBI v0.9
+   ____                    _____ ____ _____
+  / __ \                  / ____|  _ \_   _|
+ | |  | |_ __   ___ _ __ | (___ | |_) || |
+ | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
+ | |__| | |_) |  __/ | | |____) | |_) || |_
+  \____/| .__/ \___|_| |_|_____/|____/_____|
+        | |
+        |_|
+
+Platform Name             : riscv-virtio,qemu
+Platform Features         : timer,mfdeleg
+Platform HART Count       : 1
+Firmware Base             : 0x80000000
+Firmware Size             : 100 KB
+Runtime SBI Version       : 0.2
+
+Domain0 Name              : root
+Domain0 Boot HART         : 0
+Domain0 HARTs             : 0*
+Domain0 Region00          : 0x0000000080000000-0x000000008001ffff ()
+Domain0 Region01          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
+Domain0 Next Address      : 0x0000000080200000
+Domain0 Next Arg1         : 0x000000008f000000
+Domain0 Next Mode         : S-mode
+Domain0 SysReset          : yes
+
+Boot HART ID              : 0
+Boot HART Domain          : root
+Boot HART ISA             : rv64imafdcsu
+Boot HART Features        : scounteren,mcounteren,time
+Boot HART PMP Count       : 16
+Boot HART PMP Granularity : 4
+Boot HART PMP Address Bits: 54
+Boot HART MHPM Count      : 0
+Boot HART MHPM Count      : 0
+Boot HART MIDELEG         : 0x0000000000000222
+Boot HART MEDELEG         : 0x000000000000b109
+heap: [0x00326438 - 0x04326438]
+
+ \ | /
+- RT -     Thread Smart Operating System
+ / | \     5.2.0 build Dec 17 2024 11:49:39
+ 2006 - 2024 Copyright by RT-Thread team
+lwIP-2.0.3 initialized!
+[I/sal.skt] Socket Abstraction Layer initialize success.
+[I/utest] utest is initialize success.
+[I/utest] total utest testcase num: (0)
+[I/drivers.serial] Using /dev/ttyS0 as default console
+[W/DFS.fs] mount / failed with file system type: elm
+file system initialization done!
+Hello RISC-V
+msh />[E/sal.skt] not find network interface device by protocol family(1).
+[E/sal.skt] SAL socket protocol family input failed, return error -3.
+/ # ls
+bin         lib         proc        sbin        tmp
+dev         lost+found  root        services    usr
+etc         mnt         run         tc          var
+/ # 
+```
+
+# 4. How to use rv64ilp32 toolchain
+
+- Toolchain address: <https://github.com/ruyisdk/riscv-gnu-toolchain-rv64ilp32/tags>
+
+- Usage:
+
+  - Configure toolchain path
+
+  - Modify ABI parameter to: `-mabi=ilp32d`
+
+  - Then perform regular compilation
+
+  - Use [script](./qemu-rv64ilp32-nographic.sh) to start QEMU (INFO: QEMU binary is also in the toolchain directory)
+
+- Compare the firmware size of the same project compiled using the traditional 64-bit toolchain and the new 32-bit toolchain:
 
-Steps to build kernel:
+  Traditional 64-bit toolchain firmware size:
 
-1. in `$RTT_ROOT/bsp/qemu-virt64-riscv/rtconfig.py:40`, make sure `-march=***` and `-mabi=***` is identical to your toolchain
-1. if your -march contains characters v/d/f, then: configure kernel by typing `scons --menuconfig` and select `Using RISC-V Vector Extension` / `Enable FPU`
-1. `scons`
+  ```bash
+  Memory region         Used Size  Region Size  %age Used
+              SRAM:      225856 B        16 MB      1.35%
+  riscv64-unknown-elf-objcopy -O binary rtthread.elf rtthread.bin
+  riscv64-unknown-elf-size rtthread.elf
+     text    data     bss     dec     hex filename
+   150907    3664   71268  225839   3722f rtthread.elf
+  ```
+  
+  New 32-bit toolchain firmware size:
 
-## 3. Execution
+  ```bash
+  Memory region         Used Size  Region Size  %age Used
+              SRAM:      209376 B        16 MB      1.25%
+  riscv64-unknown-elf-objcopy -O binary rtthread.elf rtthread.bin
+  riscv64-unknown-elf-size rtthread.elf
+     text    data     bss     dec     hex filename
+   138739    1356   69276  209371   331db rtthread.elf
+  ```
 
-It's recommended to clone the latest QEMU release and build it locally.
-Make sure QEMU is ready by typing `qemu-system-riscv64 --version` in your shell.
+# 5. Contact information
 
-Using `qemu-nographic.sh` or `qemu-nographic.bat` to start simulation.
+Maintainer: [bernard][1]
 
-> if your -march contains characters v, using qemu-v-nographic.*
+[1]: https://github.com/BernardXiong

+ 0 - 140
bsp/qemu-virt64-riscv/README_ZH.md

@@ -1,140 +0,0 @@
-# QEMU/RISCV64 VIRT板级支持包说明
-
-中文页 | [English](README.md)
-
-## 1. 简介
-
-RISC-V是一种开放和免费的指令集体系结构(ISA)。本工程是在QEMU的RISCV64 VIRT版本上进行的一份移植。
-
-## 2. 编译说明
-
-首先可以下载交叉编译工具链,建议采用sifive的工具链进行编译。
-```
-https://www.sifive.com/software
-```
-选择对应的平台即可。
-
-这里推荐在Ubuntu上进行开发工作。
-
-解压工具链到指定的目录。
-
-```
-export RTT_EXEC_PATH=~/gcc/bin
-```
-
-进入到`rt-thread/bsp/qemu-virt64-riscv`目录进行输入
-```
-scons
-```
-可以看到正常生成`rtthread.elf`与`rtthread.bin`文件。
-
-或者通过 `scons --exec-path="GCC工具链路径"` 命令,在指定工具链位置的同时直接编译。
-
-## 3. 执行
-
-本工程提供了riscv64的两种可配置运行模式,默认运行在M-Mode下。
-
-*M-Mode*
-
-首先安装`qemu-system-riscv64`。
-
-```
-sudo apt install qemu-system-misc
-```
-直接输入
-```
-./qemu-nographic.sh
-```
-可以看到程序运行
-
-```
-heap: [0x80035804 - 0x86435804]
-
- \ | /
-- RT -     Thread Operating System
- / | \     4.0.4 build May 21 2021
- 2006 - 2021 Copyright by rt-thread team
-Hello RISC-V!
-msh />
-```
-
-*S-Mode*
-
-如果运行在S-Mode下,那么需要通过menuconfig选择配置
-
-```
-scons --menuconfig
-```
-选择如下:
-```
-RISCV qemu virt64 configs  ---> 
-    [*] RT-Thread run in riscv smode
-```
-保存后,重新`scons`编译即可。
-
-要让rt-thread运行在S-Mode,首先需要启动opensbi,然后通过opensbi启动rt-thread。
-
-自行编译的qemu或者下载的高版本的qemu内置opensbi,执行`./qemu-nographic-smode.sh`即可正常运行。
-
-通过`sudo apt install qemu-system-misc`安装的qemu版本较低,可自行编译opensbi。
-
-```
-git clone git@github.com:riscv/opensbi.git
-cd opensbi
-make PLATFORM=generic CROSS_COMPILE=~/gcc/bin/riscv64-unknown-elf-
-```
-最后生成的`/build/platform/generic/firmware/fw_jump.elf`则是需要的文件。
-
-输入以下的命令即可运行:
-
-```
-qemu-system-riscv64 -nographic -machine virt -m 256M -kernel rtthread.bin -bios ~/opensbi/build/platform/generic/firmware/fw_jump.elf
-```
-可以看到如下的结果
-```
-OpenSBI v0.9
-   ____                    _____ ____ _____
-  / __ \                  / ____|  _ \_   _|
- | |  | |_ __   ___ _ __ | (___ | |_) || |
- | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
- | |__| | |_) |  __/ | | |____) | |_) || |_
-  \____/| .__/ \___|_| |_|_____/|____/_____|
-        | |
-        |_|
-
-Platform Name             : riscv-virtio,qemu
-Platform Features         : timer,mfdeleg
-.
-.
-.
-Boot HART ISA             : rv64imafdcsu
-Boot HART Features        : scounteren,mcounteren
-Boot HART PMP Count       : 16
-Boot HART PMP Granularity : 4
-Boot HART PMP Address Bits: 54
-Boot HART MHPM Count      : 0
-Boot HART MHPM Count      : 0
-Boot HART MIDELEG         : 0x0000000000000222
-Boot HART MEDELEG         : 0x000000000000b109
-heap: [0x80235a58 - 0x86635a58]
-
- \ | /
-- RT -     Thread Operating System
- / | \     4.0.4 build May 21 2021
- 2006 - 2021 Copyright by rt-thread team
-Hello RISC-V!
-msh />
-```
-## 4. 支持情况
-
-| 驱动 | 支持情况  |  备注  |
-| ------ | ----  | :------:  |
-| UART | 支持 | UART0 |
-| PLIC | 支持 | - |
-| CLIC | 支持 | - |
-
-## 5. 联系人信息
-
-维护人:[bernard][1]
-
-[1]: https://github.com/BernardXiong

+ 0 - 28
bsp/qemu-virt64-riscv/README_ch.md

@@ -1,28 +0,0 @@
-# RT-Smart QEMU SYSTEM RISC-V RV64 BSP
-
-中文 | [English](./README.md)
-
-## 1. 简介
-
-本工程是在QEMU System RISC-V 64 模拟器运行,针对 virt 机器的BSP
-
-## 2. 构建
-
-1. 获取 [rt-smart SDK](http://117.143.63.254:9012/www/rt-smart/) risc-v 64版本.
-1. 设置 `RTT_EXEC_PATH` 工具链的 bin 文件夹路径, 如 `/home/user/xxx/yyy/bin`
-1. 设置 `RTT_CC_PREFIX` 为工具链前缀, 如 `riscv64-unknown-linux-musl-`
-1. 设置 `RTT_CC` 为工具链名称, 如 `gcc`
-1. 通过指令 `riscv64-unknown-linux-musl-gcc -v` 查看工具链的 -march 与 -mabi
-1. 根据相关信息调整本目录下的 `rtconfig.py:40` 如 `DEVICE  = ' -mcmodel=medany -march=rv64imac -mabi=lp64 '`
-1. `scons --menuconfig`
-    * 如果 `-march` 包含 `v`, 选择 `Using RISC-V Vector Extension`, 反之关闭
-    * 如果 `-march` 包含 `f/d`, 选择 `Enable FPU`, 反之关闭
-1. `scons`
-
-## 3. 运行
-
-推荐拉取最新的 qemu 发行版在本地构建。使用指令确保qemu可用  `qemu-system-riscv64 --version`。
-
-使用 `qemu-nographic.sh`/`qemu-nographic.bat` 启动虚拟机。
-
-> if your -march contains characters v, using qemu-v-nographic.*

+ 409 - 0
bsp/qemu-virt64-riscv/README_cn.md

@@ -0,0 +1,409 @@
+**QEMU/RISCV64 VIRT 板级支持包使用说明**
+
+中文页 | [English](./README.md)
+
+<!-- TOC -->
+
+- [1. 简介](#1-简介)
+- [2. 构建](#2-构建)
+	- [2.1. 安装工具链](#21-安装工具链)
+	- [2.2. 设置 RT-Thread 工具链环境变量](#22-设置-rt-thread-工具链环境变量)
+	- [2.3. 下载内核](#23-下载内核)
+	- [2.4. 配置内核](#24-配置内核)
+	- [2.5. 编译内核](#25-编译内核)
+- [3. 运行](#3-运行)
+	- [3.1. 安装 QEMU](#31-安装-qemu)
+	- [3.2. 运行 QEMU](#32-运行-qemu)
+		- [3.2.1. 运行 RT-Thread 标准版](#321-运行-rt-thread-标准版)
+		- [3.2.2. 运行 RT-Thread Smart 版](#322-运行-rt-thread-smart-版)
+		- [3.2.3. 运行 RT-Thread Smart 版 + 根文件系统](#323-运行-rt-thread-smart-版--根文件系统)
+- [4. 如何使用 rv64ilp32 工具链](#4-如何使用-rv64ilp32-工具链)
+- [5. 联系人信息](#5-联系人信息)
+
+<!-- /TOC -->
+
+# 1. 简介
+
+RISC-V 是一种开放和免费的指令集体系结构 (ISA)。本工程是在 QEMU 的 RISCV64 VIRT 版本上进行的一份移植。
+
+本工程支持玄铁团队联合中科院软件所共同推出的全球首款 rv64ilp32 产品级开源工具链。
+
+# 2. 构建
+
+工作系统:以 Ubuntu 22.04 为例:
+
+```shell
+$ lsb_release -a
+No LSB modules are available.
+Distributor ID: Ubuntu
+Description:    Ubuntu 22.04.2 LTS
+Release:        22.04
+Codename:       jammy
+```
+
+## 2.1. 安装工具链
+
+具体使用的工具链,和 RT-Thread 官方保持一致,具体的工具链版本可以参考 RT-Thread 仓库的 <https://github.com/RT-Thread/rt-thread/blob/master/.github/workflows/action_utest.yml> 这个文件。
+
+```yaml
+    - name: Install RISC-V ToolChains
+      if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && matrix.legs.UTEST != 'rtsmart/riscv64' && success() }}
+      run: |
+        wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.4/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
+        sudo tar zxvf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz -C /opt
+        /opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc --version
+        echo "RTT_EXEC_PATH=/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_ENV
+
+    - name: Install RISC-V Musl ToolChains
+      if: ${{ matrix.legs.QEMU_ARCH == 'riscv64' && matrix.legs.UTEST == 'rtsmart/riscv64' && success() }}
+      shell: bash
+      run: |
+        wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.7/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2
+        sudo tar xjf riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_latest.tar.bz2 -C /opt
+        /opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin/riscv64-unknown-linux-musl-gcc --version
+        echo "RTT_EXEC_PATH=/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV
+        echo "RTT_CC_PREFIX=riscv64-unknown-linux-musl-" >> $GITHUB_ENV
+```
+
+其中 `riscv64-unknown-elf-gcc` 用于构建 RT-Thread 标准版,`riscv64-unknown-linux-musl-gcc` 用于构建 RT-Thread Smart 版。根据上面所示链接分别下载到本地后解压缩。
+
+## 2.2. 设置 RT-Thread 工具链环境变量
+
+和 RT-Thread 工具链相关的环境变量有三个
+
+- `RTT_CC` 为工具链名称, 这里统一为 `"gcc"`
+- `RTT_CC_PREFIX`: 为工具链前缀, 这里对于标准版是 `"riscv64-unknown-elf-"`,对于 Smart 版是 `"riscv64-unknown-linux-musl-"`。
+- `RTT_EXEC_PATH`: 工具链的 bin 文件夹所在路径, 如 `"$HOME/tools/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin"`, 这个根据个人下载解压后的实际路径进行设置,注意 RT-Thread 标准版和 Smart 版本的工具链是两套不同的版本,而且设置 `RTT_EXEC_PATH` 的路径名时要一直到 `bin`。
+
+如果一直使用的话,建议将这三个环境变量在 `.bashrc` 文件中 export。
+
+## 2.3. 下载内核
+
+假设工作路径是 `$WORKSPACE`。
+
+```shell
+$ cd $WORKSPACE
+$ git clone git@github.com:RT-Thread/rt-thread.git
+```
+
+进入 qemu-virt64-riscv 所在 BSP 目录,后面的操作不做另外介绍,默认就在这个目录下。
+
+```shell
+$ cd $WORKSPACE/rt-thread/bsp/qemu-virt64-riscv
+```
+
+## 2.4. 配置内核
+
+第一次编译前先刷新一下配置文件。
+
+```shell
+$ scons --menuconfig
+```
+
+默认配置就是 RT-Thread 标准版,所以如果没有什么特别需求,什么都不要改动,直接保存退出即可。
+
+如果要使用 RT-Thread Smart 版,进入配置菜单后至少要打开 `RT_USING_SMART` 这个选项(见下图),其他的看自己的需求。
+
+```
+(Top) → RT-Thread Kernel
+                                                                RT-Thread Project Configuration
+(24) The maximal size of kernel object name
+[ ] Use the data types defined in ARCH_CPU
+[*] Enable RT-Thread Smart (microkernel on kernel/userland)
+[ ] Enable RT-Thread Nano
+...
+```
+
+修改后保存退出。
+
+## 2.5. 编译内核
+
+如果以前编译后,可以清理一下:
+
+```shell
+$ scons --clean
+```
+
+或者直接编译:
+
+```shell
+$ scons -j$(nproc)
+```
+
+在 `$WORKSPACE/rt-thread/bsp/qemu-virt64-riscv` 路径下会生成内核的二进制文件 `rtthread.bin`。
+
+# 3. 运行
+
+## 3.1. 安装 QEMU
+
+```shell
+$ sudo apt update
+$ sudo apt install qemu-system-misc
+```
+
+安装完毕后可以看一下版本。
+
+```shell
+$ qemu-system-riscv64 --version
+QEMU emulator version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.24)
+Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers
+```
+
+## 3.2. 运行 QEMU
+
+仓库里已经提供了现成的执行脚本,可以直接执行:
+
+```shell
+$ ./run.sh
+```
+
+### 3.2.1. 运行 RT-Thread 标准版
+
+示例如下:
+
+```shell
+$ ./run.sh
+
+OpenSBI v0.9
+   ____                    _____ ____ _____
+  / __ \                  / ____|  _ \_   _|
+ | |  | |_ __   ___ _ __ | (___ | |_) || |
+ | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
+ | |__| | |_) |  __/ | | |____) | |_) || |_
+  \____/| .__/ \___|_| |_|_____/|____/_____|
+        | |
+        |_|
+
+Platform Name             : riscv-virtio,qemu
+Platform Features         : timer,mfdeleg
+Platform HART Count       : 1
+Firmware Base             : 0x80000000
+Firmware Size             : 100 KB
+Runtime SBI Version       : 0.2
+
+Domain0 Name              : root
+Domain0 Boot HART         : 0
+Domain0 HARTs             : 0*
+Domain0 Region00          : 0x0000000080000000-0x000000008001ffff ()
+Domain0 Region01          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
+Domain0 Next Address      : 0x0000000080200000
+Domain0 Next Arg1         : 0x000000008f000000
+Domain0 Next Mode         : S-mode
+Domain0 SysReset          : yes
+
+Boot HART ID              : 0
+Boot HART Domain          : root
+Boot HART ISA             : rv64imafdcsu
+Boot HART Features        : scounteren,mcounteren,time
+Boot HART PMP Count       : 16
+Boot HART PMP Granularity : 4
+Boot HART PMP Address Bits: 54
+Boot HART MHPM Count      : 0
+Boot HART MHPM Count      : 0
+Boot HART MIDELEG         : 0x0000000000000222
+Boot HART MEDELEG         : 0x000000000000b109
+heap: [0x8028d8a8 - 0x8428d8a8]
+
+ \ | /
+- RT -     Thread Operating System
+ / | \     5.2.0 build Nov 14 2024 15:41:57
+ 2006 - 2024 Copyright by RT-Thread team
+lwIP-2.0.3 initialized!
+[I/sal.skt] Socket Abstraction Layer initialize success.
+[I/utest] utest is initialize success.
+[I/utest] total utest testcase num: (0)
+file system initialization done!
+Hello RISC-V
+msh />
+```
+
+### 3.2.2. 运行 RT-Thread Smart 版
+
+示例如下:
+
+```shell
+$ ./run.sh
+
+OpenSBI v0.9
+   ____                    _____ ____ _____
+  / __ \                  / ____|  _ \_   _|
+ | |  | |_ __   ___ _ __ | (___ | |_) || |
+ | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
+ | |__| | |_) |  __/ | | |____) | |_) || |_
+  \____/| .__/ \___|_| |_|_____/|____/_____|
+        | |
+        |_|
+
+Platform Name             : riscv-virtio,qemu
+Platform Features         : timer,mfdeleg
+Platform HART Count       : 1
+Firmware Base             : 0x80000000
+Firmware Size             : 100 KB
+Runtime SBI Version       : 0.2
+
+Domain0 Name              : root
+Domain0 Boot HART         : 0
+Domain0 HARTs             : 0*
+Domain0 Region00          : 0x0000000080000000-0x000000008001ffff ()
+Domain0 Region01          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
+Domain0 Next Address      : 0x0000000080200000
+Domain0 Next Arg1         : 0x000000008f000000
+Domain0 Next Mode         : S-mode
+Domain0 SysReset          : yes
+
+Boot HART ID              : 0
+Boot HART Domain          : root
+Boot HART ISA             : rv64imafdcsu
+Boot HART Features        : scounteren,mcounteren,time
+Boot HART PMP Count       : 16
+Boot HART PMP Granularity : 4
+Boot HART PMP Address Bits: 54
+Boot HART MHPM Count      : 0
+Boot HART MHPM Count      : 0
+Boot HART MIDELEG         : 0x0000000000000222
+Boot HART MEDELEG         : 0x000000000000b109
+heap: [0x002ef030 - 0x042ef030]
+
+ \ | /
+- RT -     Thread Smart Operating System
+ / | \     5.2.0 build Nov 14 2024 15:48:43
+ 2006 - 2024 Copyright by RT-Thread team
+lwIP-2.0.3 initialized!
+[I/sal.skt] Socket Abstraction Layer initialize success.
+[I/utest] utest is initialize success.
+[I/utest] total utest testcase num: (0)
+[I/drivers.serial] Using /dev/ttyS0 as default console
+file system initialization done!
+Hello RISC-V
+msh />
+```
+
+### 3.2.3. 运行 RT-Thread Smart 版 + 根文件系统
+
+对于 Smart 版本的内核,也可以在执行 `run.sh` 脚本时指定根文件系统镜像文件的路径在启动过程中挂载根文件系统。
+
+需要注意的是,内核默认支持 fat, 如果要挂载 ext4 的文件系统,则还需要额外安装 lwext4 软件包,即使能 `PKG_USING_LWEXT4`(具体 menuconfig 路径是 (Top) -> RT-Thread online packages -> system packages ->  lwext4: an excellent choice of ext2/3/4 filesystem for microcontrollers.)。如果在菜单中找不到该软件包,可以退出 menuconfig 并执行 `pkgs --upgrade` 更新软件包索引后再尝试使能软件包。
+
+勾选该选项后还需要执行如下操作更新软件并安装源码到 bsp 的 packages 目录下(该操作只要执行一次即可):
+
+```shell
+$ source ~/.env/env.sh
+$ pkgs --update
+```
+
+保存后重新编译内核。
+
+有关如何制作根文件系统,请参考 <https://github.com/RT-Thread/userapps/blob/main/README.md>,这里不再赘述。
+
+示例如下:
+
+```shell
+$ ./run.sh /home/u/ws/duo/userapps/apps/build/ext4.img 
+
+OpenSBI v0.9
+   ____                    _____ ____ _____
+  / __ \                  / ____|  _ \_   _|
+ | |  | |_ __   ___ _ __ | (___ | |_) || |
+ | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
+ | |__| | |_) |  __/ | | |____) | |_) || |_
+  \____/| .__/ \___|_| |_|_____/|____/_____|
+        | |
+        |_|
+
+Platform Name             : riscv-virtio,qemu
+Platform Features         : timer,mfdeleg
+Platform HART Count       : 1
+Firmware Base             : 0x80000000
+Firmware Size             : 100 KB
+Runtime SBI Version       : 0.2
+
+Domain0 Name              : root
+Domain0 Boot HART         : 0
+Domain0 HARTs             : 0*
+Domain0 Region00          : 0x0000000080000000-0x000000008001ffff ()
+Domain0 Region01          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
+Domain0 Next Address      : 0x0000000080200000
+Domain0 Next Arg1         : 0x000000008f000000
+Domain0 Next Mode         : S-mode
+Domain0 SysReset          : yes
+
+Boot HART ID              : 0
+Boot HART Domain          : root
+Boot HART ISA             : rv64imafdcsu
+Boot HART Features        : scounteren,mcounteren,time
+Boot HART PMP Count       : 16
+Boot HART PMP Granularity : 4
+Boot HART PMP Address Bits: 54
+Boot HART MHPM Count      : 0
+Boot HART MHPM Count      : 0
+Boot HART MIDELEG         : 0x0000000000000222
+Boot HART MEDELEG         : 0x000000000000b109
+heap: [0x00326438 - 0x04326438]
+
+ \ | /
+- RT -     Thread Smart Operating System
+ / | \     5.2.0 build Dec 17 2024 11:49:39
+ 2006 - 2024 Copyright by RT-Thread team
+lwIP-2.0.3 initialized!
+[I/sal.skt] Socket Abstraction Layer initialize success.
+[I/utest] utest is initialize success.
+[I/utest] total utest testcase num: (0)
+[I/drivers.serial] Using /dev/ttyS0 as default console
+[W/DFS.fs] mount / failed with file system type: elm
+file system initialization done!
+Hello RISC-V
+msh />[E/sal.skt] not find network interface device by protocol family(1).
+[E/sal.skt] SAL socket protocol family input failed, return error -3.
+/ # ls
+bin         lib         proc        sbin        tmp
+dev         lost+found  root        services    usr
+etc         mnt         run         tc          var
+/ # 
+```
+
+# 4. 如何使用 rv64ilp32 工具链
+
+- 工具链地址:https://github.com/ruyisdk/riscv-gnu-toolchain-rv64ilp32/tags
+
+- 使用方法:
+
+  - 配置工具链路径
+
+  - 修改ABI参数为:`-mabi=ilp32d`
+
+  - 然后执行常规编译
+
+  - 使用 [脚本](./qemu-rv64ilp32-nographic.sh) 启动 QEMU (INFO: QEMU 二进制同样在工具链目录)
+
+- 使用传统 64 位工具链与使用新 32 位工具链编译相同工程的固件大小对比:
+
+  传统 64 位工具链固件大小:
+
+  ```bash
+  Memory region         Used Size  Region Size  %age Used
+              SRAM:      225856 B        16 MB      1.35%
+  riscv64-unknown-elf-objcopy -O binary rtthread.elf rtthread.bin
+  riscv64-unknown-elf-size rtthread.elf
+     text    data     bss     dec     hex filename
+   150907    3664   71268  225839   3722f rtthread.elf
+  ```
+
+  新 32 位工具链固件大小:
+
+  ```bash
+  Memory region         Used Size  Region Size  %age Used
+              SRAM:      209376 B        16 MB      1.25%
+  riscv64-unknown-elf-objcopy -O binary rtthread.elf rtthread.bin
+  riscv64-unknown-elf-size rtthread.elf
+     text    data     bss     dec     hex filename
+   138739    1356   69276  209371   331db rtthread.elf
+  ```
+
+# 5. 联系人信息
+
+维护人:[bernard][1]
+
+[1]: https://github.com/BernardXiong
+
+
+

+ 4 - 0
bsp/qemu-virt64-riscv/SConstruct

@@ -29,6 +29,10 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu = False)
 
 stack_size = 4096
 
+if GetDepend('RT_USING_SMART'):
+    # use smart link.lds
+    env['LINKFLAGS'] = env['LINKFLAGS'].replace('link.lds', 'link_smart.lds')
+
 stack_lds = open('link_stacksize.lds', 'w')
 if GetDepend('__STACKSIZE__'): stack_size = GetDepend('__STACKSIZE__')
 stack_lds.write('__STACKSIZE__ = %d;\n' % stack_size)

+ 1 - 2
bsp/qemu-virt64-riscv/applications/main.c

@@ -9,12 +9,11 @@
 
 #include <rtthread.h>
 #include <rthw.h>
-#include <stdio.h>
 #include <string.h>
 
 int main(void)
 {
-    printf("Hello RISC-V\n");
+    rt_kprintf("Hello RISC-V\n");
 
     return 0;
 }

+ 16 - 21
bsp/qemu-virt64-riscv/driver/Kconfig

@@ -1,48 +1,43 @@
 menu "RISC-V QEMU virt64 configs"
 
-config RISCV_S_MODE
-    bool "RT-Thread run in RISC-V S-Mode(supervisor mode)"
-    default y
-
-config RT_USING_VIRTIO
+config BSP_USING_VIRTIO
     bool "Using VirtIO"
     default y
     depends on RT_USING_DEVICE_OPS
 
 config BSP_USING_VIRTIO_BLK
     bool "Using VirtIO BLK"
+    select RT_USING_VIRTIO
+    select RT_USING_VIRTIO_BLK
     default y
-    depends on RT_USING_VIRTIO
+    depends on BSP_USING_VIRTIO
 
 config BSP_USING_VIRTIO_NET
     bool "Using VirtIO NET"
+    select RT_USING_VIRTIO
+    select RT_USING_VIRTIO_NET
     default y
-    depends on RT_USING_VIRTIO
+    depends on BSP_USING_VIRTIO
 
 config BSP_USING_VIRTIO_CONSOLE
     bool "Using VirtIO Console"
+    select RT_USING_VIRTIO
+    select RT_USING_VIRTIO_CONSOLE
     default y
-    depends on RT_USING_VIRTIO
+    depends on BSP_USING_VIRTIO
 
 config BSP_USING_VIRTIO_GPU
     bool "Using VirtIO GPU"
+    select RT_USING_VIRTIO
+    select RT_USING_VIRTIO_GPU
     default y
-    depends on RT_USING_VIRTIO
+    depends on BSP_USING_VIRTIO
 
 config BSP_USING_VIRTIO_INPUT
     bool "Using VirtIO Input"
+    select RT_USING_VIRTIO
+    select RT_USING_VIRTIO_INPUT
     default y
-    depends on RT_USING_VIRTIO
+    depends on BSP_USING_VIRTIO
 
-menuconfig BSP_USING_UART1
-    bool "Enable UART1"
-    default n
-    if BSP_USING_UART1
-        config BSP_UART1_TXD_PIN
-            int "uart1 TXD pin number"
-            default 20
-        config BSP_UART1_RXD_PIN
-            int "uart1 RXD pin number"
-            default 21
-    endif
 endmenu

+ 2 - 2
bsp/qemu-virt64-riscv/driver/board.c

@@ -52,11 +52,11 @@ void primary_cpu_entry(void)
 
 #define IOREMAP_SIZE (1ul << 30)
 
-#ifndef ARCH_KERNEL_IN_HIGH_VA
+#ifndef ARCH_REMAP_KERNEL
 #define IOREMAP_VEND USER_VADDR_START
 #else
 #define IOREMAP_VEND 0ul
-#endif
+#endif /* ARCH_REMAP_KERNEL */
 
 void rt_hw_board_init(void)
 {

+ 3 - 1
bsp/qemu-virt64-riscv/driver/board.h

@@ -20,10 +20,12 @@ extern unsigned int __bss_end;
 #define KERNEL_VADDR_START 0x0
 #endif
 
+#define VIRT64_SBI_MEMSZ (0x200000)
+
 #define RT_HW_HEAP_BEGIN ((void *)&__bss_end)
 #define RT_HW_HEAP_END   ((void *)(RT_HW_HEAP_BEGIN + 64 * 1024 * 1024))
 #define RT_HW_PAGE_START RT_HW_HEAP_END
-#define RT_HW_PAGE_END   ((void *)(KERNEL_VADDR_START + 256 * 1024 * 1024))
+#define RT_HW_PAGE_END   ((void *)(KERNEL_VADDR_START + (256 * 1024 * 1024 - VIRT64_SBI_MEMSZ)))
 
 void rt_hw_board_init(void);
 void rt_init_user_mem(struct rt_thread *thread, const char *name,

+ 0 - 1
bsp/qemu-virt64-riscv/driver/drv_uart.c

@@ -52,7 +52,6 @@ void uart_init(void)
 
 static rt_err_t _uart_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
 {
-    uart_init();
     return (RT_EOK);
 }
 

+ 2 - 2
bsp/qemu-virt64-riscv/driver/drv_virtio.c

@@ -11,7 +11,7 @@
 #include <rtthread.h>
 #include <virt.h>
 
-#ifdef RT_USING_VIRTIO
+#ifdef BSP_USING_VIRTIO
 
 #include <virtio.h>
 #ifdef BSP_USING_VIRTIO_BLK
@@ -97,4 +97,4 @@ int rt_virtio_devices_init(void)
     return 0;
 }
 INIT_DEVICE_EXPORT(rt_virtio_devices_init);
-#endif  /* RT_USING_VIRTIO */
+#endif  /* BSP_USING_VIRTIO */

+ 186 - 0
bsp/qemu-virt64-riscv/link_smart.lds

@@ -0,0 +1,186 @@
+/*
+ * Copyright (c) 2006-2023, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2020/12/12     bernard      The first version
+ */
+
+INCLUDE "link_stacksize.lds"
+
+OUTPUT_ARCH( "riscv" )
+
+/*
+ * Memory layout:
+ * 0x80000000 - 0x80200000: SBI
+ * 0x80200000 - 0x81200000: Kernel
+ */
+
+MEMORY
+{
+   SRAM : ORIGIN = 0xFFFFFFC000200000, LENGTH = 0x1000000 - 0x200000
+}
+
+ENTRY(_start)
+SECTIONS
+{
+    /* . = 0x80200000 ; */
+    . = 0xFFFFFFC000200000;
+
+    /* __STACKSIZE__ = 4096; */
+    __text_start = .;
+    .start :
+    {
+        *(.start);
+    } > SRAM
+
+    . = ALIGN(8);
+
+    .text :
+    {
+        *(.text)                        /* remaining code */
+        *(.text.*)                      /* remaining code */
+        *(.rodata)                      /* read-only data (constants) */
+        *(.rodata*)
+        *(.glue_7)
+        *(.glue_7t)
+        *(.gnu.linkonce.t*)
+
+        /* section information for finsh shell */
+        . = ALIGN(8);
+        __fsymtab_start = .;
+        KEEP(*(FSymTab))
+        __fsymtab_end = .;
+        . = ALIGN(8);
+        __vsymtab_start = .;
+        KEEP(*(VSymTab))
+        __vsymtab_end = .;
+        . = ALIGN(8);
+
+        /* section information for initial. */
+        . = ALIGN(8);
+        __rt_init_start = .;
+        KEEP(*(SORT(.rti_fn*)))
+        __rt_init_end = .;
+        . = ALIGN(8);
+
+        __rt_utest_tc_tab_start = .;
+        KEEP(*(UtestTcTab))
+        __rt_utest_tc_tab_end = .;
+
+        . = ALIGN(8);
+        _etext = .;
+    } > SRAM
+
+    .eh_frame_hdr :
+    {
+         *(.eh_frame_hdr)
+         *(.eh_frame_entry)
+    } > SRAM
+    .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } > SRAM
+
+    . = ALIGN(8);
+    __text_end = .;
+    __text_size = __text_end - __text_start;
+
+    .data :
+    {
+        *(.data)
+        *(.data.*)
+
+        *(.data1)
+        *(.data1.*)
+
+        . = ALIGN(8);
+        PROVIDE( __global_pointer$ = . + 0x800 );
+
+        *(.sdata)
+        *(.sdata.*)
+    } > SRAM
+
+    . = ALIGN(8);
+    .ctors :
+    {
+        PROVIDE(__ctors_start__ = .);
+        KEEP(*(SORT(.init_array.*)))
+        KEEP(*(.init_array))
+        PROVIDE(__ctors_end__ = .);
+    } > SRAM
+
+    .dtors :
+    {
+        PROVIDE(__dtors_start__ = .);
+        KEEP(*(SORT(.fini_array.*)))
+        KEEP(*(.fini_array))
+        PROVIDE(__dtors_end__ = .);
+    } > SRAM
+
+    /* stack for dual core */
+    .stack :
+    {
+        . = ALIGN(64);
+        __stack_start__ = .;
+
+        . += __STACKSIZE__;
+        __stack_cpu0 = .;
+
+        . += __STACKSIZE__;
+        __stack_cpu1 = .;
+    } > SRAM
+
+    .sbss :
+    {
+    __bss_start = .;
+        *(.sbss)
+        *(.sbss.*)
+        *(.dynsbss)
+        *(.scommon)
+    } > SRAM
+
+    .bss :
+    {
+        *(.bss)
+        *(.bss.*)
+        *(.dynbss)
+        *(COMMON)
+    __bss_end = .;
+    } > SRAM
+
+    _end = .;
+
+    /* Stabs debugging sections.  */
+    .stab          0 : { *(.stab) }
+    .stabstr       0 : { *(.stabstr) }
+    .stab.excl     0 : { *(.stab.excl) }
+    .stab.exclstr  0 : { *(.stab.exclstr) }
+    .stab.index    0 : { *(.stab.index) }
+    .stab.indexstr 0 : { *(.stab.indexstr) }
+    .comment       0 : { *(.comment) }
+    /* DWARF debug sections.
+     * Symbols in the DWARF debugging sections are relative to the beginning
+     * of the section so we begin them at 0.  */
+    /* DWARF 1 */
+    .debug          0 : { *(.debug) }
+    .line           0 : { *(.line) }
+    /* GNU DWARF 1 extensions */
+    .debug_srcinfo  0 : { *(.debug_srcinfo) }
+    .debug_sfnames  0 : { *(.debug_sfnames) }
+    /* DWARF 1.1 and DWARF 2 */
+    .debug_aranges  0 : { *(.debug_aranges) }
+    .debug_pubnames 0 : { *(.debug_pubnames) }
+    /* DWARF 2 */
+    .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
+    .debug_abbrev   0 : { *(.debug_abbrev) }
+    .debug_line     0 : { *(.debug_line) }
+    .debug_frame    0 : { *(.debug_frame) }
+    .debug_str      0 : { *(.debug_str) }
+    .debug_loc      0 : { *(.debug_loc) }
+    .debug_macinfo  0 : { *(.debug_macinfo) }
+    /* SGI/MIPS DWARF 2 extensions */
+    .debug_weaknames 0 : { *(.debug_weaknames) }
+    .debug_funcnames 0 : { *(.debug_funcnames) }
+    .debug_typenames 0 : { *(.debug_typenames) }
+    .debug_varnames  0 : { *(.debug_varnames) }
+}

+ 0 - 1
bsp/qemu-virt64-riscv/qemu-nographic-smode.sh

@@ -1 +0,0 @@
-qemu-system-riscv64 -nographic -machine virt -m 256M -kernel rtthread.bin

+ 0 - 9
bsp/qemu-virt64-riscv/qemu-nographic.sh

@@ -1,9 +0,0 @@
-if [ ! -f "sd.bin" ]; then
-dd if=/dev/zero of=sd.bin bs=1024 count=65536
-mkfs.fat sd.bin
-fi
-
-qemu-system-riscv64 -nographic -machine virt -m 256M -kernel rtthread.bin \
--drive if=none,file=sd.bin,format=raw,id=blk0 -device virtio-blk-device,drive=blk0,bus=virtio-mmio-bus.0 \
--netdev user,id=tap0 -device virtio-net-device,netdev=tap0,bus=virtio-mmio-bus.1 \
--device virtio-serial-device -chardev socket,host=127.0.0.1,port=4321,server=on,wait=off,telnet=on,id=console0 -device virtserialport,chardev=console0

+ 1 - 0
bsp/qemu-virt64-riscv/qemu-rv64ilp32-nographic.sh

@@ -0,0 +1 @@
+qemu-system-riscv64ilp32  -cpu rv64 -M virt -m 256M -nographic -kernel rtthread.elf

+ 160 - 18
bsp/qemu-virt64-riscv/rtconfig.h

@@ -1,11 +1,77 @@
 #ifndef RT_CONFIG_H__
 #define RT_CONFIG_H__
 
-/* Automatically generated file; DO NOT EDIT. */
-/* RT-Thread Project Configuration */
-
 /* RT-Thread Kernel */
 
+/* klibc options */
+
+/* rt_vsnprintf options */
+
+#define RT_KLIBC_USING_VSNPRINTF_LONGLONG
+#define RT_KLIBC_USING_VSNPRINTF_STANDARD
+#define RT_KLIBC_USING_VSNPRINTF_DECIMAL_SPECIFIERS
+#define RT_KLIBC_USING_VSNPRINTF_EXPONENTIAL_SPECIFIERS
+#define RT_KLIBC_USING_VSNPRINTF_WRITEBACK_SPECIFIER
+#define RT_KLIBC_USING_VSNPRINTF_CHECK_NUL_IN_FORMAT_SPECIFIER
+#define RT_KLIBC_USING_VSNPRINTF_INTEGER_BUFFER_SIZE 32
+#define RT_KLIBC_USING_VSNPRINTF_DECIMAL_BUFFER_SIZE 32
+#define RT_KLIBC_USING_VSNPRINTF_FLOAT_PRECISION 6
+#define RT_KLIBC_USING_VSNPRINTF_MAX_INTEGRAL_DIGITS_FOR_DECIMAL 9
+#define RT_KLIBC_USING_VSNPRINTF_LOG10_TAYLOR_TERMS 4
+/* end of rt_vsnprintf options */
+
+/* rt_vsscanf options */
+
+/* end of rt_vsscanf options */
+
+/* rt_memset options */
+
+/* end of rt_memset options */
+
+/* rt_memcpy options */
+
+/* end of rt_memcpy options */
+
+/* rt_memmove options */
+
+/* end of rt_memmove options */
+
+/* rt_memcmp options */
+
+/* end of rt_memcmp options */
+
+/* rt_strstr options */
+
+/* end of rt_strstr options */
+
+/* rt_strcasecmp options */
+
+/* end of rt_strcasecmp options */
+
+/* rt_strncpy options */
+
+/* end of rt_strncpy options */
+
+/* rt_strcpy options */
+
+/* end of rt_strcpy options */
+
+/* rt_strncmp options */
+
+/* end of rt_strncmp options */
+
+/* rt_strcmp options */
+
+/* end of rt_strcmp options */
+
+/* rt_strlen options */
+
+/* end of rt_strlen options */
+
+/* rt_strnlen options */
+
+/* end of rt_strnlen options */
+/* end of klibc options */
 #define RT_NAME_MAX 24
 #define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 8
@@ -21,12 +87,13 @@
 #define RT_USING_TIMER_SOFT
 #define RT_TIMER_THREAD_PRIO 4
 #define RT_TIMER_THREAD_STACK_SIZE 16384
+#define RT_USING_CPU_USAGE_TRACER
 
-/* kservice optimization */
+/* kservice options */
 
-#define RT_KSERVICE_USING_STDLIB
-#define RT_KPRINTF_USING_LONGLONG
+/* end of kservice options */
 #define RT_USING_DEBUG
+#define RT_DEBUGING_ASSERT
 #define RT_DEBUGING_COLOR
 #define RT_DEBUGING_CONTEXT
 
@@ -38,28 +105,35 @@
 #define RT_USING_MAILBOX
 #define RT_USING_MESSAGEQUEUE
 #define RT_USING_SIGNALS
+/* end of Inter-Thread communication */
 
 /* Memory Management */
 
 #define RT_PAGE_MAX_ORDER 11
 #define RT_USING_MEMPOOL
-#define RT_USING_SMALL_MEM
-#define RT_USING_SMALL_MEM_AS_HEAP
+#define RT_USING_SLAB
+#define RT_USING_SLAB_AS_HEAP
 #define RT_USING_MEMTRACE
 #define RT_USING_HEAP
+/* end of Memory Management */
 #define RT_USING_DEVICE
 #define RT_USING_DEVICE_OPS
 #define RT_USING_CONSOLE
 #define RT_CONSOLEBUF_SIZE 256
 #define RT_CONSOLE_DEVICE_NAME "uart0"
-#define RT_VER_NUM 0x50100
+#define RT_VER_NUM 0x50200
+#define RT_USING_STDC_ATOMIC
 #define RT_BACKTRACE_LEVEL_MAX_NR 32
+/* end of RT-Thread Kernel */
 #define ARCH_CPU_64BIT
 #define RT_USING_CACHE
-#define RT_USING_HW_ATOMIC
 #define ARCH_MM_MMU
 #define ARCH_RISCV
+#define ARCH_RISCV_FPU
 #define ARCH_RISCV64
+#define ARCH_USING_NEW_CTX_SWITCH
+#define ARCH_USING_RISCV_COMMON64
+#define ARCH_REMAP_KERNEL
 
 /* RT-Thread Components */
 
@@ -88,9 +162,7 @@
 #define DFS_USING_POSIX
 #define DFS_USING_WORKDIR
 #define DFS_FD_MAX 32
-#define RT_USING_DFS_V1
-#define DFS_FILESYSTEMS_MAX 4
-#define DFS_FILESYSTEM_TYPES_MAX 4
+#define RT_USING_DFS_V2
 #define RT_USING_DFS_ELMFAT
 
 /* elm-chan's FatFs, Generic FAT Filesystem Module */
@@ -106,8 +178,10 @@
 #define RT_DFS_ELM_MAX_SECTOR_SIZE 512
 #define RT_DFS_ELM_REENTRANT
 #define RT_DFS_ELM_MUTEX_TIMEOUT 3000
+/* end of elm-chan's FatFs, Generic FAT Filesystem Module */
 #define RT_USING_DFS_DEVFS
 #define RT_USING_DFS_ROMFS
+/* end of DFS: device virtual file system */
 
 /* Device Drivers */
 
@@ -134,11 +208,11 @@
 #define RT_USING_VIRTIO_NET
 #define RT_USING_VIRTIO_CONSOLE
 #define RT_USING_VIRTIO_CONSOLE_PORT_MAX_NR 4
+#define RT_USING_VIRTIO_GPU
+#define RT_USING_VIRTIO_INPUT
 #define RT_USING_PIN
 #define RT_USING_KTIME
-
-/* Using USB */
-
+/* end of Device Drivers */
 
 /* C/C++ and POSIX layer */
 
@@ -150,6 +224,8 @@
 #define RT_LIBC_TZ_DEFAULT_HOUR 8
 #define RT_LIBC_TZ_DEFAULT_MIN 0
 #define RT_LIBC_TZ_DEFAULT_SEC 0
+/* end of Timezone and Daylight Saving Time */
+/* end of ISO-ANSI C layer */
 
 /* POSIX (Portable Operating System Interface) layer */
 
@@ -171,6 +247,9 @@
 
 /* Socket is in the 'Network' category */
 
+/* end of Interprocess Communication (IPC) */
+/* end of POSIX (Portable Operating System Interface) layer */
+/* end of C/C++ and POSIX layer */
 
 /* Network */
 
@@ -180,6 +259,7 @@
 /* Docking with protocol stacks */
 
 #define SAL_USING_LWIP
+/* end of Docking with protocol stacks */
 #define SAL_USING_POSIX
 #define RT_USING_NETDEV
 #define NETDEV_USING_IFCONFIG
@@ -204,6 +284,7 @@
 #define RT_LWIP_IPADDR "192.168.1.30"
 #define RT_LWIP_GWADDR "192.168.1.1"
 #define RT_LWIP_MSKADDR "255.255.255.0"
+/* end of Static IPv4 Address */
 #define RT_LWIP_UDP
 #define RT_LWIP_TCP
 #define RT_LWIP_RAW
@@ -231,9 +312,11 @@
 #define LWIP_SO_LINGER 0
 #define LWIP_NETIF_LOOPBACK 0
 #define RT_LWIP_USING_PING
+/* end of Network */
 
 /* Memory protection */
 
+/* end of Memory protection */
 
 /* Utilities */
 
@@ -246,9 +329,16 @@
 #define RT_USING_ADT_BITMAP
 #define RT_USING_ADT_HASHMAP
 #define RT_USING_ADT_REF
+/* end of Utilities */
+
+/* Using USB legacy version */
+
+/* end of Using USB legacy version */
+/* end of RT-Thread Components */
 
 /* RT-Thread Utestcases */
 
+/* end of RT-Thread Utestcases */
 
 /* RT-Thread online packages */
 
@@ -259,57 +349,78 @@
 
 /* Marvell WiFi */
 
+/* end of Marvell WiFi */
 
 /* Wiced WiFi */
 
+/* end of Wiced WiFi */
 
 /* CYW43012 WiFi */
 
+/* end of CYW43012 WiFi */
 
 /* BL808 WiFi */
 
+/* end of BL808 WiFi */
 
 /* CYW43439 WiFi */
 
+/* end of CYW43439 WiFi */
+/* end of Wi-Fi */
 
 /* IoT Cloud */
 
+/* end of IoT Cloud */
+/* end of IoT - internet of things */
 
 /* security packages */
 
+/* end of security packages */
 
 /* language packages */
 
 /* JSON: JavaScript Object Notation, a lightweight data-interchange format */
 
+/* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */
 
 /* XML: Extensible Markup Language */
 
+/* end of XML: Extensible Markup Language */
+/* end of language packages */
 
 /* multimedia packages */
 
 /* LVGL: powerful and easy-to-use embedded GUI library */
 
+/* end of LVGL: powerful and easy-to-use embedded GUI library */
 
 /* u8g2: a monochrome graphic library */
 
+/* end of u8g2: a monochrome graphic library */
+/* end of multimedia packages */
 
 /* tools packages */
 
+/* end of tools packages */
 
 /* system packages */
 
 /* enhanced kernel services */
 
+/* end of enhanced kernel services */
 
 /* acceleration: Assembly language or algorithmic acceleration packages */
 
+/* end of acceleration: Assembly language or algorithmic acceleration packages */
 
 /* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
 
+/* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
+/* end of Micrium: Micrium software products porting for RT-Thread */
+/* end of system packages */
 
 /* peripheral libraries and drivers */
 
@@ -317,75 +428,106 @@
 
 /* STM32 HAL & SDK Drivers */
 
+/* end of STM32 HAL & SDK Drivers */
+
+/* Infineon HAL Packages */
+
+/* end of Infineon HAL Packages */
 
 /* Kendryte SDK */
 
+/* end of Kendryte SDK */
+/* end of HAL & SDK Drivers */
 
 /* sensors drivers */
 
+/* end of sensors drivers */
 
 /* touch drivers */
 
+/* end of touch drivers */
+/* end of peripheral libraries and drivers */
 
 /* AI packages */
 
+/* end of AI packages */
 
 /* Signal Processing and Control Algorithm Packages */
 
+/* end of Signal Processing and Control Algorithm Packages */
 
 /* miscellaneous packages */
 
 /* project laboratory */
 
+/* end of project laboratory */
+
 /* samples: kernel and components samples */
 
+/* end of samples: kernel and components samples */
 
 /* entertainment: terminal games and other interesting software packages */
 
+/* end of entertainment: terminal games and other interesting software packages */
+/* end of miscellaneous packages */
 
 /* Arduino libraries */
 
 
 /* Projects and Demos */
 
+/* end of Projects and Demos */
 
 /* Sensors */
 
+/* end of Sensors */
 
 /* Display */
 
+/* end of Display */
 
 /* Timing */
 
+/* end of Timing */
 
 /* Data Processing */
 
+/* end of Data Processing */
 
 /* Data Storage */
 
 /* Communication */
 
+/* end of Communication */
 
 /* Device Control */
 
+/* end of Device Control */
 
 /* Other */
 
+/* end of Other */
 
 /* Signal IO */
 
+/* end of Signal IO */
 
 /* Uncategorized */
 
+/* end of Arduino libraries */
+/* end of RT-Thread online packages */
+
 /* RISC-V QEMU virt64 configs */
 
-#define RISCV_S_MODE
+#define BSP_USING_VIRTIO
 #define BSP_USING_VIRTIO_BLK
 #define BSP_USING_VIRTIO_NET
 #define BSP_USING_VIRTIO_CONSOLE
+#define BSP_USING_VIRTIO_GPU
+#define BSP_USING_VIRTIO_INPUT
+/* end of RISC-V QEMU virt64 configs */
 #define BOARD_QEMU_VIRT_RV64
 #define ENABLE_FPU
-#define ARCH_USING_NEW_CTX_SWITCH
 #define __STACKSIZE__ 16384
 
 #endif

+ 1 - 4
bsp/qemu-virt64-riscv/rtconfig.py

@@ -12,14 +12,11 @@ if os.getenv('RTT_CC'):
 
 if  CROSS_TOOL == 'gcc':
     PLATFORM    = 'gcc'
-    EXEC_PATH   = r'/opt/rtt_riscv64_musl/bin'
+    EXEC_PATH   = os.getenv('RTT_EXEC_PATH') or '/usr/bin'
 else:
     print('Please make sure your toolchains is GNU GCC!')
     exit(0)
 
-if os.getenv('RTT_EXEC_PATH'):
-    EXEC_PATH = os.getenv('RTT_EXEC_PATH')
-
 BUILD = 'debug'
 
 if PLATFORM == 'gcc':

+ 30 - 0
bsp/qemu-virt64-riscv/run.sh

@@ -0,0 +1,30 @@
+#!/bin/bash
+
+usage ()
+{
+	echo "Usage:"
+	echo "./run.sh [<path_to_image>]"
+	echo "Note: if <path_to_image> is not provided, will create a 'sd.bin'"
+	echo "in the current directory and load it by default."
+}
+
+path_image=${1}
+
+if [ -z $path_image ]; then
+	path_image="./sd.bin"
+	if [ ! -f $path_image ]; then
+		dd if=/dev/zero of=$path_image bs=1024 count=65536
+		mkfs.fat $path_image
+	fi
+fi
+
+if [ ! -f $path_image ]; then
+	echo "ERROR: $path_image does not exist!"
+	usage
+	exit
+fi
+
+qemu-system-riscv64 -nographic -machine virt -m 256M -kernel rtthread.bin \
+-drive if=none,file=$path_image,format=raw,id=blk0 -device virtio-blk-device,drive=blk0,bus=virtio-mmio-bus.0 \
+-netdev user,id=tap0 -device virtio-net-device,netdev=tap0,bus=virtio-mmio-bus.1 \
+-device virtio-serial-device -chardev socket,host=127.0.0.1,port=4321,server=on,wait=off,telnet=on,id=console0 -device virtserialport,chardev=console0

+ 2 - 0
bsp/renesas/README.md

@@ -19,7 +19,9 @@ RA 系列 BSP 目前支持情况如下表所示:
 | [ra8m1-ek](ra8m1-ek)                     | Renesas 官方 EK-RA8M1 开发板                     |
 | [ra8d1-ek](ra8d1-ek)                     | Renesas 官方 EK-RA8D1 开发板                     |
 | [ra8d1-vision-board](ra8d1-vision-board) | Renesas 联合 RT-Thread RA8D1-Vision-Board 开发板 |
+| **RZ 系列**                             |                                                  |
 | [rzt2m_rsk](rzt2m_rsk)                   | Renesas 官方 RSK-RZT2M 开发板                    |
+| [rzn2l_rsk](rzn2l_rsk)                   | Renesas 官方 RSK-RZN2L 开发板                    |
 
 可以通过阅读相应 BSP 下的 README 来快速上手,如果想要使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档,如下表所示:
 

+ 26 - 58
bsp/renesas/ebf_qi_min_6m5/.config

@@ -278,16 +278,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CYW43012 WiFi
 #
 # CONFIG_PKG_USING_WLAN_CYW43012 is not set
-
-#
-# BL808 WiFi
-#
-# CONFIG_PKG_USING_WLAN_BL808 is not set
-
-#
-# CYW43439 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43439 is not set
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -309,6 +299,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # 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
+# CONFIG_PKG_USING_EZ_IOT_OS is not set
 # CONFIG_PKG_USING_IOTSHARP_SDK is not set
 # CONFIG_PKG_USING_NIMBLE is not set
 # CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
@@ -330,7 +321,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_PDULIB is not set
 # CONFIG_PKG_USING_BTSTACK is not set
 # CONFIG_PKG_USING_BT_CYW43012 is not set
-# CONFIG_PKG_USING_CYW43XX is not set
 # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
 # CONFIG_PKG_USING_WAYZ_IOTKIT is not set
 # CONFIG_PKG_USING_MAVLINK is not set
@@ -351,7 +341,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_WOL is not set
 # CONFIG_PKG_USING_ZEPHYR_POLLING is not set
 # CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
-# CONFIG_PKG_USING_LHC_MODBUS is not set
 
 #
 # security packages
@@ -496,9 +485,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
 #
 # CONFIG_PKG_USING_CMSIS_5 is not set
-# CONFIG_PKG_USING_CMSIS_CORE is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
-# CONFIG_PKG_USING_CMSIS_NN is not set
 # CONFIG_PKG_USING_CMSIS_RTOS1 is not set
 # CONFIG_PKG_USING_CMSIS_RTOS2 is not set
 
@@ -518,8 +504,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_PIXMAN is not set
 # CONFIG_PKG_USING_PARTITION is not set
 # CONFIG_PKG_USING_PERF_COUNTER is not set
-# CONFIG_PKG_USING_FILEX is not set
-# CONFIG_PKG_USING_LEVELX is not set
 # CONFIG_PKG_USING_FLASHDB is not set
 # CONFIG_PKG_USING_SQLITE is not set
 # CONFIG_PKG_USING_RTI is not set
@@ -557,35 +541,11 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_SFDB is not set
 # CONFIG_PKG_USING_RTP is not set
 # CONFIG_PKG_USING_REB is not set
-# CONFIG_PKG_USING_R_RHEALSTONE is not set
 
 #
 # peripheral libraries and drivers
 #
 
-#
-# HAL & SDK Drivers
-#
-
-#
-# STM32 HAL & SDK Drivers
-#
-# CONFIG_PKG_USING_STM32L4XX_HAL_DRIVER is not set
-# CONFIG_PKG_USING_STM32WB55_SDK is not set
-# CONFIG_PKG_USING_STM32_SDIO is not set
-# CONFIG_PKG_USING_BLUETRUM_SDK is not set
-# CONFIG_PKG_USING_EMBARC_BSP is not set
-# CONFIG_PKG_USING_ESP_IDF is not set
-
-#
-# Kendryte SDK
-#
-# CONFIG_PKG_USING_K210_SDK is not set
-# CONFIG_PKG_USING_KENDRYTE_SDK is not set
-# CONFIG_PKG_USING_NRF5X_SDK is not set
-# CONFIG_PKG_USING_NRFX is not set
-# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
-
 #
 # sensors drivers
 #
@@ -667,8 +627,9 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_FT6236 is not set
 # CONFIG_PKG_USING_XPT2046_TOUCH is not set
 # CONFIG_PKG_USING_CST816X is not set
-# CONFIG_PKG_USING_CST812T is not set
 # CONFIG_PKG_USING_REALTEK_AMEBA is not set
+# CONFIG_PKG_USING_STM32_SDIO is not set
+# CONFIG_PKG_USING_ESP_IDF is not set
 # CONFIG_PKG_USING_BUTTON is not set
 # CONFIG_PKG_USING_PCF8574 is not set
 # CONFIG_PKG_USING_SX12XX is not set
@@ -676,6 +637,14 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # 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
+
+#
+# Kendryte SDK
+#
+# CONFIG_PKG_USING_K210_SDK is not set
+# CONFIG_PKG_USING_KENDRYTE_SDK is not set
 # CONFIG_PKG_USING_INFRARED is not set
 # CONFIG_PKG_USING_MULTI_INFRARED is not set
 # CONFIG_PKG_USING_AGILE_BUTTON is not set
@@ -690,6 +659,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_AS608 is not set
 # CONFIG_PKG_USING_RC522 is not set
 # CONFIG_PKG_USING_WS2812B 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
@@ -712,6 +682,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
 # CONFIG_PKG_USING_VDEVICE is not set
 # CONFIG_PKG_USING_SGM706 is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
 # CONFIG_PKG_USING_RDA58XX is not set
 # CONFIG_PKG_USING_LIBNFC is not set
 # CONFIG_PKG_USING_MFOC is not set
@@ -721,6 +692,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ROSSERIAL is not set
 # CONFIG_PKG_USING_MICRO_ROS is not set
 # CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
 # CONFIG_PKG_USING_MISAKA_AT24CXX is not set
 # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
 # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
@@ -728,6 +700,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_MB85RS16 is not set
 # CONFIG_PKG_USING_RFM300 is not set
 # CONFIG_PKG_USING_IO_INPUT_FILTER is not set
+# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
 # CONFIG_PKG_USING_LRF_NV7LIDAR is not set
 # CONFIG_PKG_USING_AIP650 is not set
 # CONFIG_PKG_USING_FINGERPRINT is not set
@@ -736,9 +709,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ST7789 is not set
 # CONFIG_PKG_USING_VS1003 is not set
 # CONFIG_PKG_USING_X9555 is not set
-# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
-# CONFIG_PKG_USING_BT_MX01 is not set
-# CONFIG_PKG_USING_RGPOWER is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -753,7 +723,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ULAPACK is not set
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
-# CONFIG_PKG_USING_R_TINYMAIX is not set
 
 #
 # Signal Processing and Control Algorithm Packages
@@ -763,6 +732,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
+# CONFIG_PKG_USING_CMSIS_DSP is not set
 
 #
 # miscellaneous packages
@@ -838,9 +808,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # Projects and Demos
 #
 # CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set
-# CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set
 # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set
-# CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set
 # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set
 # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set
 
@@ -848,13 +816,13 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # Sensors
 #
 # CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set
+# CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31855 is not set
+# CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set
@@ -899,7 +867,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3MDL is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90640 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMA8451 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MSA301 is not set
+# CONFIG_PKG_USING_ADAFRUIT_MSA301 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL115A2 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X_RVC is not set
@@ -938,6 +906,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU21DF is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS7341 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU31D is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA260 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP007_LIBRARY is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_L3GD20 is not set
@@ -960,7 +929,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_SEEED_TSL2561 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_PAJ7620 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_VL53L0X is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_ITG3200 is not set
+# CONFIG_PKG_USING_SEEED_ITG3200 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_SHT31 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_HP20X is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_DRV2605L is not set
@@ -968,7 +937,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_SEEED_HMC5883L is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_LSM303DLH is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_TCS3414CS is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_MP503 is not set
+# CONFIG_PKG_USING_SEEED_MP503 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_BMP085 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_HIGHTEMP is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_VEML6070 is not set
@@ -981,7 +950,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set
 # CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set
-# CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set
 
 #
 # Display
@@ -1007,7 +975,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 #
 # CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set
 # CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set
-# CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set
 
 #
 # Data Storage
@@ -1024,11 +991,11 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set
 
 #
 # Other
@@ -1051,7 +1018,8 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 #
 # Uncategorized
 #
-CONFIG_SOC_FAMILY_RENESAS=y
+# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
+CONFIG_SOC_FAMILY_RENESAS_RA=y
 # CONFIG_SOC_SERIES_R7FA6M3 is not set
 # CONFIG_SOC_SERIES_R7FA6M4 is not set
 # CONFIG_SOC_SERIES_R7FA2L1 is not set

+ 8 - 20
bsp/renesas/ebf_qi_min_6m5/Kconfig

@@ -1,29 +1,17 @@
 mainmenu "RT-Thread Configuration"
 
-config BSP_DIR
-    string
-    option env="BSP_ROOT"
-    default "."
+BSP_DIR := .
 
-config RTT_DIR
-    string
-    option env="RTT_ROOT"
-    default "../../.."
+RTT_DIR := ../../..
 
 # you can change the RTT_ROOT default "../.." to your rtthread_root,
 # example : default "F:/git_repositories/rt-thread"
 
-config PKGS_DIR
-    string
-    option env="PKGS_ROOT"
-    default "packages"
+PKGS_DIR := packages
 
-config ENV_DIR
-    string
-    option env="ENV_ROOT"
-    default "/"
+ENV_DIR := /
 
-source "$RTT_DIR/Kconfig"
-source "$PKGS_DIR/Kconfig"
-source "../libraries/Kconfig"
-source "$BSP_DIR/board/Kconfig"
+source "$(RTT_DIR)/Kconfig"
+osource "$PKGS_DIR/Kconfig"
+rsource "../libraries/Kconfig"
+source "$(BSP_DIR)/board/Kconfig"

+ 4 - 0
bsp/renesas/ebf_qi_min_6m5/README.md

@@ -34,6 +34,10 @@
 | GPIO     | 支持       |                 |
 | I2C      | 支持       |                 |
 | SPI      | 支持       |                 |
+| DAC      | 支持       |                 |
+| ADC      | 支持       |                 |
+| PWM      | 支持       |                 |
+| SPI      | 支持       |                 |
 | 持续更新中... |          |                 |
 | **外接外设** | **支持情况** | **备注**          |
 | 持续更新中... |          |                 |

+ 120 - 2
bsp/renesas/ebf_qi_min_6m5/board/Kconfig

@@ -13,7 +13,7 @@ menu "Hardware Drivers Config"
 
     menu "On-chip Peripheral Drivers"
 
-        source "../libraries/HAL_Drivers/Kconfig"
+        rsource "../../libraries/HAL_Drivers/Kconfig"
 
         menuconfig BSP_USING_UART
             bool "Enable UART"
@@ -21,11 +21,38 @@ menu "Hardware Drivers Config"
             select RT_USING_SERIAL
             select RT_USING_SERIAL_V2
             if BSP_USING_UART
+                menuconfig BSP_USING_UART2
+                    bool "Enable UART2"
+                    default n
+                    if BSP_USING_UART2
+                        config BSP_UART2_RX_USING_DMA
+                            bool "Enable UART2 RX DMA"
+                            depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+                            default n
+
+                        config BSP_UART2_TX_USING_DMA
+                            bool "Enable UART2 TX DMA"
+                            depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
+                            default n
+
+                        config BSP_UART2_RX_BUFSIZE
+                            int "Set UART2 RX buffer size"
+                            range 64 65535
+                            depends on RT_USING_SERIAL_V2
+                            default 256
+
+                        config BSP_UART2_TX_BUFSIZE
+                            int "Set UART2 TX buffer size"
+                            range 0 65535
+                            depends on RT_USING_SERIAL_V2
+                            default 0
+                    endif
+
                 menuconfig BSP_USING_UART4
                     bool "Enable UART4"
                     default n
                     if BSP_USING_UART4
-                        config BSP_UART0_RX_USING_DMA
+                        config BSP_UART4_RX_USING_DMA
                             bool "Enable UART4 RX DMA"
                             depends on BSP_USING_UART4 && RT_SERIAL_USING_DMA
                             default n
@@ -51,11 +78,15 @@ menu "Hardware Drivers Config"
 
         menuconfig BSP_USING_HW_I2C
             bool "Enable hardware I2C BUS"
+            select RT_USING_I2C
             default n
             if BSP_USING_HW_I2C
                 config BSP_USING_HW_I2C1
                     bool "Enable Hardware I2C1 BUS"
                     default n
+                config BSP_USING_HW_I2C2
+                    bool "Enable Hardware I2C2 BUS"
+                    default n
             endif
 
         menuconfig BSP_USING_SOFT_I2C
@@ -430,6 +461,93 @@ menu "Hardware Drivers Config"
                     endif
             endif
 
+        menuconfig BSP_USING_ADC
+            bool "Enable ADC"
+            default n
+            select RT_USING_ADC
+            if BSP_USING_ADC
+                config BSP_USING_ADC0
+                    bool "Enable ADC0"
+                    default n
+
+                config BSP_USING_ADC1
+                    bool "Enable ADC1"
+                    default n
+            endif
+
+        menuconfig BSP_USING_DAC
+            bool "Enable DAC"
+            default n
+            select RT_USING_DAC
+            if BSP_USING_DAC
+                config BSP_USING_DAC0
+                    bool "Enable DAC0"
+                    default n
+
+                config BSP_USING_DAC1
+                    bool "Enable DAC1"
+                    default n
+            endif
+
+        menuconfig BSP_USING_PWM
+            bool "Enable PWM"
+            default n
+            select RT_USING_PWM
+            if BSP_USING_PWM
+                config BSP_USING_PWM0
+                    bool "Enable GPT0 (32-Bits) output PWM"
+                    default n
+
+                config BSP_USING_PWM1
+                    bool "Enable GPT1 (32-Bits) output PWM"
+                    default n
+
+                config BSP_USING_PWM2
+                    bool "Enable GPT2 (32-Bits) output PWM"
+                    default n
+
+                config BSP_USING_PWM3
+                    bool "Enable GPT3 (32-Bits) output PWM"
+                    default n
+
+                config BSP_USING_PWM4
+                    bool "Enable GPT4 (16-Bits) output PWM"
+                    default n
+
+                config BSP_USING_PWM5
+                    bool "Enable GPT5 (16-Bits) output PWM"
+                    default n
+
+                config BSP_USING_PWM6
+                    bool "Enable GPT6 (16-Bits) output PWM"
+                    default n
+
+                config BSP_USING_PWM7
+                    bool "Enable GPT7 (16-Bits) output PWM"
+                    default n
+
+                config BSP_USING_PWM8
+                    bool "Enable GPT8 (16-Bits) output PWM"
+                    default n
+
+                config BSP_USING_PWM9
+                    bool "Enable GPT9 (16-Bits) output PWM"
+                    default n
+            endif
+
+        menuconfig BSP_USING_SPI
+            bool "Enable SPI BUS"
+            default n
+            select RT_USING_SPI
+            if BSP_USING_SPI 
+                config BSP_USING_SPI0
+                    bool "Enable SPI0 BUS"
+                    default n
+                config BSP_USING_SPI1
+                    bool "Enable SPI1 BUS"
+                    default n
+            endif
+
     endmenu
 
     menu "Board extended module Drivers"

+ 83 - 26
bsp/renesas/ebf_qi_min_6m5/project.uvprojx

@@ -332,10 +332,10 @@
             <v6WtE>0</v6WtE>
             <v6Rtti>0</v6Rtti>
             <VariousControls>
-              <MiscControls>-Wno-license-management -Wunused -Wuninitialized -Wall -Wextra -Wmissing-declarations -Wconversion -Wpointer-arith -Wshadow -Waggregate-return -Wfloat-equal</MiscControls>
-              <Define>RT_USING_LIBC, RT_USING_ARMLIBC, __STDC_LIMIT_MACROS, __RTTHREAD__, __CLK_TCK=RT_TICK_PER_SECOND</Define>
+              <MiscControls>-Wno-license-management -Wunused -Wuninitialized -Wall -Wmissing-declarations -Wpointer-arith -Waggregate-return -Wfloat-equal</MiscControls>
+              <Define>__RTTHREAD__, RT_USING_LIBC, __CLK_TCK=RT_TICK_PER_SECOND, __STDC_LIMIT_MACROS, RT_USING_ARMLIBC</Define>
               <Undefine />
-              <IncludePath>..\..\..\components\finsh;..\..\..\components\libc\compilers\common\include;..\libraries\HAL_Drivers\config;..\..\..\libcpu\arm\cortex-m4;..\..\..\libcpu\arm\common;..\..\..\components\libc\compilers\common\extension;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\include;.;..\..\..\components\libc\posix\io\eventfd;..\..\..\components\libc\posix\io\epoll;..\..\..\components\drivers\include;..\..\..\components\libc\posix\ipc;..\..\..\components\libc\posix\io\poll;board\ports;board;..\libraries\HAL_Drivers;..\..\..\components\drivers\include;..\..\..\components\libc\compilers\common\extension\fcntl\octal</IncludePath>
+              <IncludePath>..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\eventfd;..\..\..\libcpu\arm\common;..\..\..\components\finsh;..\..\..\components\drivers\include;..\..\..\components\libc\posix\io\epoll;board;..\..\..\components\libc\posix\ipc;..\..\..\components\drivers\smp_call;..\..\..\libcpu\arm\cortex-m4;..\..\..\include;..\..\..\components\libc\compilers\common\include;board\ports;..\libraries\HAL_Drivers;.;..\..\..\components\libc\compilers\common\extension\fcntl\octal;..\..\..\components\drivers\include;..\..\..\components\drivers\phy;..\..\..\components\drivers\include;..\..\..\components\libc\compilers\common\extension;..\libraries\HAL_Drivers\config;..\..\..\components\drivers\include;..\..\..\components\drivers\include</IncludePath>
             </VariousControls>
           </Cads>
           <Aads>
@@ -458,9 +458,28 @@
           </Files>
           <Files>
             <File>
-              <FileName>completion.c</FileName>
+              <FileName>completion_comm.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
+              <FilePath>..\..\..\components\drivers\ipc\completion_comm.c</FilePath>
+              <FileOption>
+                <FileArmAds>
+                  <Cads>
+                    <VariousControls>
+                      <MiscControls> </MiscControls>
+                      <Define>__RT_IPC_SOURCE__</Define>
+                      <Undefine> </Undefine>
+                      <IncludePath> </IncludePath>
+                    </VariousControls>
+                  </Cads>
+                </FileArmAds>
+              </FileOption>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>completion_up.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\components\drivers\ipc\completion_up.c</FilePath>
               <FileOption>
                 <FileArmAds>
                   <Cads>
@@ -610,9 +629,9 @@
           </Files>
           <Files>
             <File>
-              <FileName>pin.c</FileName>
+              <FileName>dev_pin.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\pin\pin.c</FilePath>
+              <FilePath>..\..\..\components\drivers\pin\dev_pin.c</FilePath>
               <FileOption>
                 <FileArmAds>
                   <Cads>
@@ -629,9 +648,9 @@
           </Files>
           <Files>
             <File>
-              <FileName>serial_v2.c</FileName>
+              <FileName>dev_serial_v2.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\serial\serial_v2.c</FilePath>
+              <FilePath>..\..\..\components\drivers\serial\dev_serial_v2.c</FilePath>
               <FileOption>
                 <FileArmAds>
                   <Cads>
@@ -709,13 +728,6 @@
         </Group>
         <Group>
           <GroupName>Finsh</GroupName>
-          <Files>
-            <File>
-              <FileName>shell.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\..\components\finsh\shell.c</FilePath>
-            </File>
-          </Files>
           <Files>
             <File>
               <FileName>msh.c</FileName>
@@ -737,6 +749,13 @@
               <FilePath>..\..\..\components\finsh\cmd.c</FilePath>
             </File>
           </Files>
+          <Files>
+            <File>
+              <FileName>shell.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\components\finsh\shell.c</FilePath>
+            </File>
+          </Files>
         </Group>
         <Group>
           <GroupName>Kernel</GroupName>
@@ -780,9 +799,9 @@
           </Files>
           <Files>
             <File>
-              <FileName>idle.c</FileName>
+              <FileName>cpu_up.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\idle.c</FilePath>
+              <FilePath>..\..\..\src\cpu_up.c</FilePath>
               <FileOption>
                 <FileArmAds>
                   <Cads>
@@ -799,9 +818,9 @@
           </Files>
           <Files>
             <File>
-              <FileName>ipc.c</FileName>
+              <FileName>defunct.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\ipc.c</FilePath>
+              <FilePath>..\..\..\src\defunct.c</FilePath>
               <FileOption>
                 <FileArmAds>
                   <Cads>
@@ -818,9 +837,9 @@
           </Files>
           <Files>
             <File>
-              <FileName>irq.c</FileName>
+              <FileName>idle.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\irq.c</FilePath>
+              <FilePath>..\..\..\src\idle.c</FilePath>
               <FileOption>
                 <FileArmAds>
                   <Cads>
@@ -837,9 +856,9 @@
           </Files>
           <Files>
             <File>
-              <FileName>kstdio.c</FileName>
+              <FileName>ipc.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\klibc\kstdio.c</FilePath>
+              <FilePath>..\..\..\src\ipc.c</FilePath>
               <FileOption>
                 <FileArmAds>
                   <Cads>
@@ -856,9 +875,9 @@
           </Files>
           <Files>
             <File>
-              <FileName>kstring.c</FileName>
+              <FileName>irq.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\klibc\kstring.c</FilePath>
+              <FilePath>..\..\..\src\irq.c</FilePath>
               <FileOption>
                 <FileArmAds>
                   <Cads>
@@ -1007,6 +1026,44 @@
             </File>
           </Files>
         </Group>
+        <Group>
+          <GroupName>klibc</GroupName>
+          <Files>
+            <File>
+              <FileName>rt_vsscanf.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\src\klibc\rt_vsscanf.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>kerrno.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\src\klibc\kerrno.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>kstring.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\src\klibc\kstring.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>rt_vsnprintf_tiny.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\src\klibc\rt_vsnprintf_tiny.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>kstdio.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\src\klibc\kstdio.c</FilePath>
+            </File>
+          </Files>
+        </Group>
         <Group>
           <GroupName>libcpu</GroupName>
           <Files>

+ 3 - 14
bsp/renesas/ebf_qi_min_6m5/rtconfig.h

@@ -137,12 +137,6 @@
 /* CYW43012 WiFi */
 
 
-/* BL808 WiFi */
-
-
-/* CYW43439 WiFi */
-
-
 /* IoT Cloud */
 
 
@@ -184,20 +178,15 @@
 
 /* peripheral libraries and drivers */
 
-/* HAL & SDK Drivers */
-
-/* STM32 HAL & SDK Drivers */
-
-
-/* Kendryte SDK */
-
-
 /* sensors drivers */
 
 
 /* touch drivers */
 
 
+/* Kendryte SDK */
+
+
 /* AI packages */
 
 

+ 1 - 1
bsp/renesas/ebf_qi_min_6m5/template.uvprojx

@@ -335,7 +335,7 @@
             <v6WtE>0</v6WtE>
             <v6Rtti>0</v6Rtti>
             <VariousControls>
-              <MiscControls>-Wno-license-management -Wunused -Wuninitialized -Wall -Wextra -Wmissing-declarations -Wconversion -Wpointer-arith -Wshadow -Waggregate-return -Wfloat-equal</MiscControls>
+              <MiscControls>-Wno-license-management -Wunused -Wuninitialized -Wall -Wmissing-declarations -Wpointer-arith -Waggregate-return -Wfloat-equal</MiscControls>
               <Define></Define>
               <Undefine></Undefine>
               <IncludePath></IncludePath>

+ 1 - 5
bsp/renesas/libraries/HAL_Drivers/SConscript

@@ -25,10 +25,6 @@ if GetDepend(['BSP_USING_WDT']):
 if GetDepend(['BSP_USING_ONCHIP_RTC']):
     src += ['drv_rtc.c']
 
-if GetDepend(['BSP_USING_SOFT_I2C']):
-    if GetDepend('BSP_USING_I2C0') or GetDepend('BSP_USING_I2C1') or GetDepend('BSP_USING_I2C2'):
-        src += ['drv_soft_i2c.c']
-
 if GetDepend(['BSP_USING_HW_I2C']):
         src += ['drv_i2c.c']
 
@@ -59,7 +55,7 @@ if GetDepend(['BSP_USING_TIM']):
 if GetDepend(['BSP_USING_ETH']):
     src += ['drv_eth.c']
 
-if GetDepend(['BSP_USING_CAN']):
+if GetDepend(['BSP_USING_CAN']) or GetDepend('BSP_USING_CANFD'):
     src += ['drv_can.c']
 
 if GetDepend(['BSP_USING_SDHI']):

+ 37 - 9
bsp/renesas/libraries/HAL_Drivers/config/drv_config.h

@@ -1,13 +1,13 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author            Notes
- * 2021-07-29     KyleChan          first version
- * 2022-12-7      Vandoul           ADD ra4m2
- */
+* Copyright (c) 2006-2025, RT-Thread Development Team
+*
+* SPDX-License-Identifier: Apache-2.0
+*
+* Change Logs:
+* Date           Author            Notes
+* 2021-07-29     KyleChan          first version
+* 2022-12-7      Vandoul           ADD ra4m2
+*/
 
 #ifndef __DRV_CONFIG_H__
 #define __DRV_CONFIG_H__
@@ -145,6 +145,10 @@ extern "C"
 #include "rzt/uart_config.h"
 #include "rzt/timer_config.h"
 
+#ifdef BSP_USING_CANFD
+#include "rzt/canfd_config.h"
+#endif
+
 #ifdef BSP_USING_PWM
 #include "rzt/pwm_config.h"
 #endif
@@ -155,6 +159,30 @@ extern "C"
 
 #endif /* SOC_SERIES_R9A07G0 */
 
+#if defined(SOC_SERIES_R7FA6E2)
+#include "ra6e2/uart_config.h"
+
+#ifdef BSP_USING_ADC
+#include "ra6e2/adc_config.h"
+#endif
+
+#ifdef BSP_USING_DAC
+#include "ra6e2/dac_config.h"
+#endif
+
+#ifdef BSP_USING_PWM
+#include "ra6e2/pwm_config.h"
+#endif
+
+#ifdef BSP_USING_TIM
+#include "ra6e2/timer_config.h"
+#endif
+
+#ifdef BSP_USING_CAN
+#include "ra6e2/can_config.h"
+#endif
+#endif /* SOC_SERIES_R7FA6E2 */
+
 #ifdef __cplusplus
 }
 #endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra2l1/adc_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra2l1/can_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra2l1/dac_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra2l1/pwm_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra2l1/uart_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra4m2/adc_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra4m2/can_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra4m2/dac_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra4m2/pwm_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra4m2/uart_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 42 - 0
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/adc_config.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2006-2025, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2021-08-19     Mr.Tiger     first version
+ */
+
+#ifndef __ADC_CONFIG_H__
+#define __ADC_CONFIG_H__
+
+#include <rtthread.h>
+#include <rtdevice.h>
+#include "hal_data.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(BSP_USING_ADC0) || defined(BSP_USING_ADC1)
+
+struct rt_adc_dev
+{
+    struct rt_adc_ops ops;
+    struct rt_adc_device adc_device;
+};
+
+struct ra_adc_map
+{
+    const char *device_name;
+    const adc_cfg_t *g_cfg;
+    const adc_ctrl_t *g_ctrl;
+    const adc_channel_cfg_t   *g_channel_cfg;
+};
+#endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+

+ 48 - 0
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/can_config.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2006-2025, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author            Notes
+ * 2021-10-29     mazhiyuan         first version
+ */
+
+#ifndef __CAN_CONFIG_H__
+#define __CAN_CONFIG_H__
+
+#include <rtthread.h>
+#include "hal_data.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(BSP_USING_CAN0)
+#ifndef CAN0_CONFIG
+#define CAN0_CONFIG                                                 \
+    {                                                               \
+        .name = "can0",                                            \
+        .num_of_mailboxs = CAN_NO_OF_MAILBOXES_g_can0,             \
+        .p_api_ctrl = &g_can0_ctrl,                                \
+        .p_cfg = &g_can0_cfg,                                      \
+    }
+#endif /* CAN0_CONFIG */
+#endif /* BSP_USING_CAN0 */
+
+#if defined(BSP_USING_CAN1)
+#ifndef CAN1_CONFIG
+#define CAN1_CONFIG                                                 \
+    {                                                               \
+        .name = "can1",                                            \
+        .num_of_mailboxs = CAN_NO_OF_MAILBOXES_g_can1,             \
+        .p_api_ctrl = &g_can1_ctrl,                                \
+        .p_cfg = &g_can1_cfg,                                      \
+    }
+#endif /* CAN1_CONFIG */
+#endif /* BSP_USING_CAN1 */
+
+#ifdef __cplusplus
+}
+#endif
+#endif

+ 41 - 0
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/dac_config.h

@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2006-2025, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2021-08-19     Mr.Tiger     first version
+ */
+
+#ifndef __DAC_CONFIG_H__
+#define __DAC_CONFIG_H__
+
+#include <rtthread.h>
+#include <rtdevice.h>
+#include "hal_data.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef BSP_USING_DAC
+struct ra_dac_map
+{
+    char name;
+    const struct st_dac_cfg *g_cfg;
+    const struct st_dac_instance_ctrl *g_ctrl;
+};
+
+struct ra_dac_dev
+{
+    rt_dac_device_t       ra_dac_device_t;
+    struct ra_dac_map    *ra_dac_map_dev;
+};
+#endif
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+

+ 31 - 0
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/lcd_config.h

@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2006-2025, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2024-03-01     Rbb666       the first version
+ */
+#ifndef __LCD_CONFIG_H_
+#define __LCD_CONFIG_H_
+
+typedef enum
+{
+    ROTATION_ZERO = 0,
+    ROTATION_090 = 90,
+    ROTATION_180 = 180,
+    ROTATION_270 = 270,
+} bsp_rotation;
+
+#define LCD_WIDTH               DISPLAY_HSIZE_INPUT0
+#define LCD_HEIGHT              DISPLAY_VSIZE_INPUT0
+#define LCD_BITS_PER_PIXEL      DISPLAY_BITS_PER_PIXEL_INPUT1
+#define LCD_PIXEL_FORMAT        RTGRAPHIC_PIXEL_FORMAT_RGB565
+#define LCD_BUF_SIZE            (LCD_WIDTH * LCD_HEIGHT * LCD_BITS_PER_PIXEL / 8)
+
+#define ENABLE_DOUBLE_BUFFER    (0)
+
+#define LCD_BL_PIN              BSP_IO_PORT_01_PIN_00
+
+#endif

+ 68 - 0
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/pwm_config.h

@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2006-2025, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author            Notes
+ * 2021-10-26     KevinXu           first version
+ */
+#ifndef __PWM_CONFIG_H__
+#define __PWM_CONFIG_H__
+
+#include <rtthread.h>
+#include <drv_config.h>
+#include "hal_data.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum
+{
+#ifdef BSP_USING_PWM0
+    BSP_PWM0_INDEX,
+#endif
+#ifdef BSP_USING_PWM1
+    BSP_PWM1_INDEX,
+#endif
+#ifdef BSP_USING_PWM2
+    BSP_PWM2_INDEX,
+#endif
+#ifdef BSP_USING_PWM3
+    BSP_PWM3_INDEX,
+#endif
+#ifdef BSP_USING_PWM4
+    BSP_PWM4_INDEX,
+#endif
+#ifdef BSP_USING_PWM5
+    BSP_PWM5_INDEX,
+#endif
+#ifdef BSP_USING_PWM6
+    BSP_PWM6_INDEX,
+#endif
+#ifdef BSP_USING_PWM7
+    BSP_PWM7_INDEX,
+#endif
+#ifdef BSP_USING_PWM8
+    BSP_PWM8_INDEX,
+#endif
+#ifdef BSP_USING_PWM9
+    BSP_PWM9_INDEX,
+#endif
+    BSP_PWMS_NUM
+};
+
+#define PWM_DRV_INITIALIZER(num)        \
+    {                                   \
+        .name = "pwm"#num ,             \
+        .g_cfg = &g_timer##num##_cfg,   \
+        .g_ctrl = &g_timer##num##_ctrl, \
+        .g_timer = &g_timer##num,       \
+    }
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __PWM_CONFIG_H__ */

+ 67 - 0
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/timer_config.h

@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2006-2025, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2023-09-04     Rbb666       first version
+ */
+
+#ifndef __TIMER_CONFIG_H__
+#define __TIMER_CONFIG_H__
+
+#include <rtthread.h>
+#include <drv_config.h>
+#include "hal_data.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define PLCKD_PRESCALER_MAX_SELECT     7
+
+/* RA6M3: Frequency ratio: PCLKA:PCLKD = 1:N (N = 1/2/4/8/16/32/64) */
+#define PLCKD_PRESCALER_120M           (BSP_FEATURE_GPT_ODC_FREQ_MAX)
+#define PLCKD_PRESCALER_60M            (BSP_FEATURE_GPT_ODC_FREQ_MAX / 2)
+#define PLCKD_PRESCALER_30M            (BSP_FEATURE_GPT_ODC_FREQ_MAX / 4)
+#define PLCKD_PRESCALER_15M            (BSP_FEATURE_GPT_ODC_FREQ_MAX / 8)
+#define PLCKD_PRESCALER_7_5M           (BSP_FEATURE_GPT_ODC_FREQ_MAX / 16)
+#define PLCKD_PRESCALER_3_75M          (BSP_FEATURE_GPT_ODC_FREQ_MAX / 32)
+#define PLCKD_PRESCALER_1_875M         (BSP_FEATURE_GPT_ODC_FREQ_MAX / 64)
+
+#ifndef TMR_DEV_INFO_CONFIG
+#define TMR_DEV_INFO_CONFIG                     \
+    {                                           \
+        .maxfreq = 120000000,                   \
+        .minfreq = 1875000,                     \
+        .maxcnt  = 0XFFFFFFFF,                  \
+        .cntmode = HWTIMER_CNTMODE_UP,          \
+    }
+#endif /* TIM_DEV_INFO_CONFIG */
+
+enum
+{
+#ifdef BSP_USING_TIM0
+    BSP_TIMER0_INDEX,
+#endif
+#ifdef BSP_USING_TIM1
+    BSP_TIMER1_INDEX,
+#endif
+    BSP_TIMERS_NUM
+};
+
+#define TIMER_DRV_INITIALIZER(num)      \
+    {                                   \
+        .name = "timer" #num,           \
+        .g_cfg = &g_timer##num##_cfg,   \
+        .g_ctrl = &g_timer##num##_ctrl, \
+        .g_timer = &g_timer##num,       \
+    }
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __TIMER_CONFIG_H__ */

+ 136 - 0
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/uart_config.h

@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2006-2025, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author            Notes
+ * 2021-07-29     KyleChan          first version
+ */
+
+#ifndef __UART_CONFIG_H__
+#define __UART_CONFIG_H__
+
+#include <rtthread.h>
+#include "hal_data.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(BSP_USING_UART0)
+#ifndef UART0_CONFIG
+#define UART0_CONFIG                                                \
+    {                                                               \
+        .name = "uart0",                                            \
+        .p_api_ctrl = &g_uart0_ctrl,                                \
+        .p_cfg = &g_uart0_cfg,                                      \
+    }
+#endif /* UART0_CONFIG */
+#endif /* BSP_USING_UART0 */
+
+#if defined(BSP_USING_UART1)
+#ifndef UART1_CONFIG
+#define UART1_CONFIG                                                \
+    {                                                               \
+        .name = "uart1",                                            \
+        .p_api_ctrl = &g_uart1_ctrl,                                \
+        .p_cfg = &g_uart1_cfg,                                      \
+    }
+#endif /* UART1_CONFIG */
+#endif /* BSP_USING_UART1 */
+
+#if defined(BSP_USING_UART2)
+#ifndef UART2_CONFIG
+#define UART2_CONFIG                                                \
+    {                                                               \
+        .name = "uart2",                                            \
+        .p_api_ctrl = &g_uart2_ctrl,                                \
+        .p_cfg = &g_uart2_cfg,                                      \
+    }
+#endif /* UART2_CONFIG */
+#endif /* BSP_USING_UART2 */
+
+#if defined(BSP_USING_UART3)
+#ifndef UART3_CONFIG
+#define UART3_CONFIG                                                \
+    {                                                               \
+        .name = "uart3",                                            \
+        .p_api_ctrl = &g_uart3_ctrl,                                \
+        .p_cfg = &g_uart3_cfg,                                      \
+    }
+#endif /* UART3_CONFIG */
+#endif /* BSP_USING_UART3 */
+
+#if defined(BSP_USING_UART4)
+#ifndef UART4_CONFIG
+#define UART4_CONFIG                                                \
+    {                                                               \
+        .name = "uart4",                                            \
+        .p_api_ctrl = &g_uart4_ctrl,                                \
+        .p_cfg = &g_uart4_cfg,                                      \
+    }
+#endif /* UART4_CONFIG */
+#endif /* BSP_USING_UART4 */
+
+#if defined(BSP_USING_UART5)
+#ifndef UART5_CONFIG
+#define UART5_CONFIG                                                \
+    {                                                               \
+        .name = "uart5",                                            \
+        .p_api_ctrl = &g_uart5_ctrl,                                \
+        .p_cfg = &g_uart5_cfg,                                      \
+    }
+#endif /* UART5_CONFIG */
+#endif /* BSP_USING_UART5 */
+
+
+#if defined(BSP_USING_UART6)
+#ifndef UART6_CONFIG
+#define UART6_CONFIG                                                \
+    {                                                               \
+        .name = "uart6",                                            \
+        .p_api_ctrl = &g_uart6_ctrl,                                \
+        .p_cfg = &g_uart6_cfg,                                      \
+    }
+#endif /* UART6_CONFIG */
+#endif /* BSP_USING_UART6 */
+
+#if defined(BSP_USING_UART7)
+#ifndef UART7_CONFIG
+#define UART7_CONFIG                                                \
+    {                                                               \
+        .name = "uart7",                                            \
+        .p_api_ctrl = &g_uart7_ctrl,                                \
+        .p_cfg = &g_uart7_cfg,                                      \
+    }
+#endif /* UART7_CONFIG */
+#endif /* BSP_USING_UART7 */
+
+#if defined(BSP_USING_UART8)
+#ifndef UART8_CONFIG
+#define UART8_CONFIG                                                \
+    {                                                               \
+        .name = "uart8",                                            \
+        .p_api_ctrl = &g_uart8_ctrl,                                \
+        .p_cfg = &g_uart8_cfg,                                      \
+    }
+#endif /* UART8_CONFIG */
+#endif /* BSP_USING_UART8 */
+
+#if defined(BSP_USING_UART9)
+#ifndef UART9_CONFIG
+#define UART9_CONFIG                                                \
+    {                                                               \
+        .name = "uart9",                                            \
+        .p_api_ctrl = &g_uart9_ctrl,                                \
+        .p_cfg = &g_uart9_cfg,                                      \
+    }
+#endif /* UART9_CONFIG */
+#endif /* BSP_USING_UART9 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/adc_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/can_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/dac_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/lcd_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/pwm_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/timer_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/uart_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m4/adc_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m4/can_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m4/dac_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m4/pwm_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m4/uart_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m5/adc_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m5/can_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m5/dac_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m5/pwm_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m5/uart_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra8/adc_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra8/dac_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 2 - 2
bsp/renesas/libraries/HAL_Drivers/config/ra8/lcd_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *
@@ -28,6 +28,6 @@ typedef enum
 #define ENABLE_DOUBLE_BUFFER    (1)
 
 #define LCD_BL_PIN              BSP_IO_PORT_10_PIN_11
-#define LCD_RST_PIN         	BSP_IO_PORT_11_PIN_04
+#define LCD_RST_PIN             BSP_IO_PORT_11_PIN_04
 
 #endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra8/pwm_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra8/uart_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/rzt/adc_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 85 - 0
bsp/renesas/libraries/HAL_Drivers/config/rzt/can_config.h

@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2006-2025, RT-Thread Development Team
+*
+* SPDX-License-Identifier: Apache-2.0
+*
+* Change Logs:
+* Date           Author            Notes
+* 2025-02-11     kurisaW           first version
+*/
+
+#ifndef __CAN_CONFIG_H__
+#define __CAN_CONFIG_H__
+
+#include <rtthread.h>
+#include "hal_data.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#if defined(BSP_USING_CAN0)
+#ifndef CANFD0_CONFIG
+#define CANFD0_CONFIG                 \
+    {                                 \
+        .name = "canfd0",             \
+        .num_of_mailboxs = 48,        \
+        .p_api_ctrl = &g_canfd0_ctrl, \
+        .p_cfg = &g_canfd0_cfg,       \
+    }
+#endif /* CAN0_CONFIG */
+#endif /* BSP_USING_CAN0 */
+
+#if defined(BSP_USING_CAN1)
+#ifndef CANFD1_CONFIG
+#define CANFD1_CONFIG                 \
+    {                                 \
+        .name = "canfd1",             \
+        .num_of_mailboxs = 48,        \
+        .p_api_ctrl = &g_canfd1_ctrl, \
+        .p_cfg = &g_canfd1_cfg,       \
+    }
+#endif /* CAN1_CONFIG */
+#endif /* BSP_USING_CAN1 */
+
+const canfd_afl_entry_t p_canfd0_afl[CANFD_CFG_AFL_CH0_RULE_NUM] =
+{
+    {
+        .id =
+        {
+            .id         = 0x00,
+            .frame_type = CAN_FRAME_TYPE_DATA,
+            .id_mode    = CAN_ID_MODE_STANDARD
+        },
+        .destination =
+        {
+            .minimum_dlc       = CANFD_MINIMUM_DLC_0,
+            .rx_buffer         = CANFD_RX_MB_NONE,
+            .fifo_select_flags = CANFD_RX_FIFO_0
+        }
+    },
+};
+
+const canfd_afl_entry_t p_canfd1_afl[CANFD_CFG_AFL_CH1_RULE_NUM] =
+{
+    {
+        .id =
+        {
+            .id         = 0x01,
+            .frame_type = CAN_FRAME_TYPE_DATA,
+            .id_mode    = CAN_ID_MODE_STANDARD
+        },
+        .destination =
+        {
+            .minimum_dlc       = CANFD_MINIMUM_DLC_1,
+            .rx_buffer         = CANFD_RX_MB_NONE,
+            .fifo_select_flags = CANFD_RX_FIFO_1
+        }
+    },
+};
+
+#ifdef __cplusplus
+}
+#endif
+#endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/rzt/pwm_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/rzt/timer_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/rzt/uart_config.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_adc.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *

+ 28 - 5
bsp/renesas/libraries/HAL_Drivers/drv_can.c

@@ -1,11 +1,12 @@
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  * SPDX-License-Identifier: Apache-2.0
  *
  * Change Logs:
  * Date           Author            Notes
  * 2021-10-29     mazhiyuan         first version
+ * 2025-02-11     kurisaW           support can and canfd drivers for RZ family
  */
 
 #include "drv_can.h"
@@ -47,6 +48,18 @@ static const struct ra_baud_rate_tab can_baud_rate_tab[] =
     {CAN10kBaud, 4, 14, 5, 1 + 249}
 };
 
+#if defined(BSP_USING_CANFD)
+
+#define can_instance_ctrl_t         canfd_instance_ctrl_t
+
+#define R_CAN_Open                  R_CANFD_Open
+#define R_BSP_IrqStatusClear        R_BSP_IrqClearPending
+#define R_CAN_ModeTransition        R_CANFD_ModeTransition
+#define R_CAN_InfoGet               R_CANFD_InfoGet
+#define R_CAN_Write                 R_CANFD_Write
+
+#endif
+
 static rt_uint32_t get_can_baud_index(rt_uint32_t baud)
 {
     rt_uint32_t len, index;
@@ -66,13 +79,13 @@ static void ra_can_get_config(void)
     struct can_configure config = CANDEFAULTCONFIG;
 #ifdef BSP_USING_CAN0
     can_obj[CAN0_INDEX].can_dev.config = config;
-    can_obj[CAN0_INDEX].can_dev.config.msgboxsz = CAN_NO_OF_MAILBOXES_g_can0;
+    can_obj[CAN0_INDEX].can_dev.config.msgboxsz = 32;
     can_obj[CAN0_INDEX].can_dev.config.sndboxnumber = 1;
     can_obj[CAN0_INDEX].can_dev.config.ticks = 50;
 #endif
 #ifdef BSP_USING_CAN1
     can_obj[CAN1_INDEX].can_dev.config = config;
-    can_obj[CAN1_INDEX].can_dev.config.msgboxsz = CAN_NO_OF_MAILBOXES_g_can1;
+    can_obj[CAN1_INDEX].can_dev.config.msgboxsz = 32;
     can_obj[CAN1_INDEX].can_dev.config.sndboxnumber = 1;
     can_obj[CAN1_INDEX].can_dev.config.ticks = 50;
 #endif
@@ -168,7 +181,7 @@ rt_err_t ra_can_control(struct rt_can_device *can_dev, int cmd, void *arg)
     }
     return RT_EOK;
 }
-int ra_can_sendmsg(struct rt_can_device *can_dev, const void *buf, rt_uint32_t boxno)
+rt_ssize_t ra_can_sendmsg(struct rt_can_device *can_dev, const void *buf, rt_uint32_t boxno)
 {
     struct ra_can *can;
     can_frame_t g_can_tx_frame;
@@ -180,7 +193,13 @@ int ra_can_sendmsg(struct rt_can_device *can_dev, const void *buf, rt_uint32_t b
     g_can_tx_frame.id_mode = msg_rt->ide;
     g_can_tx_frame.type = msg_rt->rtr;
     g_can_tx_frame.data_length_code = msg_rt->len;
+#if defined(BSP_USING_CANFD) && defined(BSP_USING_CAN_RZ)
+    g_can_tx_frame.options = 0;
+#elif defined(BSP_USING_CANFD)
+    g_can_tx_frame.options = CANFD_FRAME_OPTION_FD | CANFD_FRAME_OPTION_BRS;
+#else
     g_can_tx_frame.options = 0;
+#endif
     memcpy(g_can_tx_frame.data, msg_rt->data, 8);
     can = rt_container_of(can_dev, struct ra_can, can_dev);
     RT_ASSERT(boxno < can->config->num_of_mailboxs);
@@ -193,7 +212,7 @@ int ra_can_sendmsg(struct rt_can_device *can_dev, const void *buf, rt_uint32_t b
     return RT_EOK;
 }
 
-int ra_can_recvmsg(struct rt_can_device *can_dev, void *buf, rt_uint32_t boxno)
+rt_ssize_t ra_can_recvmsg(struct rt_can_device *can_dev, void *buf, rt_uint32_t boxno)
 {
     struct rt_can_msg *msg_rt = (struct rt_can_msg *)buf;
     can_frame_t *msg_ra;
@@ -205,7 +224,11 @@ int ra_can_recvmsg(struct rt_can_device *can_dev, void *buf, rt_uint32_t boxno)
     RT_ASSERT(boxno < can->config->num_of_mailboxs);
     if (can->callback_args->mailbox != boxno)
         return 0;
+#if defined(BSP_USING_CANFD)
+    msg_ra = &can->callback_args->frame;
+#else
     msg_ra = can->callback_args->p_frame;
+#endif
 
     msg_rt->id = msg_ra->id;
     msg_rt->ide = msg_ra->id_mode;

Some files were not shown because too many files changed in this diff