4
0
mirror of https://github.com/RT-Thread/rt-thread.git synced 2025-01-19 10:23:31 +08:00

16826 Commits

Author SHA1 Message Date
imcu
6cbb2c3ee5 [bsp][cvitek] add cache opration functions for cache coherence
By default, the small core enables D-Cache without ensuring cache
coherence. Therefore, when using shared memory, inconsistencies can
occur in the data read by the small core and the big core.

Solution: Migrate cache-related functions from the official
duo-buildroot-sdk library to implement cache-related operations in
rthw.h. This allows you to either disable D-Cache or call the
flush_dcache_range function before reading and after writing for
synchronization.

It is recommended to use the flush_dcache_range function, as disabling
D-Cache can have a significant performance impact.

Signed-off-by: zdtyuiop4444 <ign7798540@gmail.com>
2025-01-16 09:05:52 +08:00
kenneth.liu
95064ed449 bsp: cvitek: fix bug in setting PLIC_PRIORITY[n]
description: In the bsp/cvitek/c906_little/board/interrupt.c, There is an issue with
setting the PLIC_PRIORITY[n].

analysis: PLIC_PRIORITY[n] each register corresponds to the priority of
a hardware interrupt number.

Solution: Each register is 4 bytes.
Multiply the total number of IRQs by 4 instead of dividing by 4.

Signed-off-by: Liu Gui <kenneth.liu@sophgo.com>
2025-01-16 09:03:26 +08:00
DingDing
37908818a0
fix GPIO and SCI drivers for RZ series (#9908)
fix gpio and sci drivers for RZ series
2025-01-15 21:38:09 +08:00
Meco Man
da6c62c293 [utest] fix twice operation of uassert 2025-01-15 10:26:40 +08:00
zhuzhuzhu
4e370473c5
fix cppcheck in lwp.c will fail if no define RT_USING_DFS (#9912) 2025-01-14 14:21:04 +08:00
zms123456
4343d32df4
[components][fs]sync procfs (#9206)
* add procfs

* fix ref count check error
2025-01-14 14:18:39 +08:00
zms123456
0ae537e531
[components][dfs]separate dfs fs data structure ops (#9205)
separate dfs fs data structure ops
2025-01-14 14:17:00 +08:00
QTbin
3436aa64cb
[ht32][drv]新增了CAN、USB和SDIO的驱动文件 2025-01-12 21:32:15 -05:00
Bernard Xiong
c5a79de38e
[tools] Add sdk_cfg.json setting for env CC detection 2025-01-11 21:20:25 -05:00
Chen Wang
123ed1be1b bsp: qemu-virt64-riscv: remove config RISCV_S_MODE
RISCV_S_MODE configuration only affects the code in
libcpu/risc-v/virt64, and the only bsp using this
libcpu is qemu-virt64-riscv.

Considering s-mode is the default mode RT-Thread
running on virt64 machine, it seems unnecessary to
make RISCV_S_MODE a Kconfig option.

Solution: Remove RISCV_S_MODE from Kconfig and define
it as a macro in the code in libcpu/risc-v/virt64.

Plus, due to this macro is only related to virt64, rename
RISCV_S_MODE to RISCV_VIRT64_S_MODE.

Update the .config/rtconfig.h in this patch.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-01-10 17:14:13 +08:00
Meco Man
bdd9447d70 [utest] 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
2025-01-09 17:45:15 -05:00
wycwyhwyq
53bd56ccf9 [components][dfs_v2]: Fix dfs_devfs_open memory leak 2025-01-09 19:07:56 +08:00
kurisaw
1b76eccb37 [drivers] merge the software i2c driver 2025-01-08 22:07:03 -05:00
Meco Man
97b9cc5000 fix: add \n for addr2line hint 2025-01-08 17:54:46 -05:00
heyuanjie87
9ceb17f176
[bsp][qemu-virt64-riscv]修正内存大小超限制的问题 2025-01-08 17:54:34 -05:00
Chen Wang
2322f0154e bsp: cvitek: remove support for spinor/spinand
Confirmed with milkv, only the sd card version is sold
by default for duo in the market. The spi pins are
provided through stamp holes, so that users can solder
the corresponding components on their baseboard during
secondary development.

In order to simplify maintenance work, the mainline
will only support the sd-card version and no longer
support spinor/spinand.

Updated config files the same in this patch.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-01-08 17:54:14 -05:00
Fan YANG
9e36a5b97d [bsp][hpmicro] fix the alignement check logic and the cache-maintenance logic
- corrected the alignement check logic
- optimized the cache maintenance logic

Signed-off-by: Fan YANG <fan.yang@hpmicro.com>
2025-01-08 14:55:04 +08:00
Meco Man
88920fd814 [utest] 修复UTEST_UNIT_RUN嵌套宏时将宏直接输出的问题 2025-01-07 20:44:29 -05:00
Meco Man
0a25fcffab [utest] add float operators
uassert_float_equal and uassert_float_not_equal
2025-01-07 20:44:29 -05:00
Supper Thomas
c9c103f30e [action] set runner to ubuntu22.04 2025-01-06 19:45:33 +08:00
Shell
6c6c5f5d35 feat: Kconfig: collecting some config to sub-menu
To improve the readability of the menuconfig.

Signed-off-by: Shell <smokewood@qq.com>
2025-01-06 19:34:16 +08:00
Shell
8507c38222 fixup: umount: set errno according to POSIX
According to the POSIX.1, we should give a EBUSY on umount(2) of busy
filesystem.

Signed-off-by: Shell <smokewood@qq.com>
2025-01-06 19:34:16 +08:00
Shell
b63b388d1f feat: add support for dfs remount functionality
This patch introduces a remount feature for the DFS, allowing for the
modification of mount parameters without unmounting the filesystem,
the remount functionality helps modify certain mount flags (like `MS_RDONLY`) without
requiring an unmount, providing more control over mounted filesystems in the system.

The updates is essential for user space init proc to cleanup the runtime
resource, ensuring clean handling of cached data and enhancing system
robustness during power down processing.

Changes:
- Defined new constants for remount flags in `dfs_fs.h`.
- Added the `dfs_remount()` function in `dfs_fs.c` to handle remount operations.
- Introduced a check for unsupported flags and handle error conditions such as invalid paths
  or non-directory targets.
- Updated the `dfs_mnt` structure in `dfs_mnt.h` to include a read-only flag (`MNT_RDONLY`).
- The `dfs_remount()` function allows changing the read-only status of a mounted filesystem.
- Added `MNT_LAZY_UMNT` and `MNT_RDONLY` flags to `dfs_mnt` structure.
- Introduced `dfs_mnt_setflags` function for dynamic flag management.
- Updated `dfs_remount` to utilize `dfs_mnt_setflags` for flag setting.
- Enhanced unmount operations with `dfs_mnt_umount_iter` and lazy unmounting.
- Added `dfs_pcache_clean` to handle cache cleanup for read-only mounts.
- Improved error reporting in `dfs_umount` for better user feedback.
- Refactored `sys_mount` to streamline parameter handling and support remounts.
- Introduced `_cp_from_usr_string` helper for user-space string operations.
- Updated internal APIs to ensure consistency in reference count management.

Signed-off-by: Shell <smokewood@qq.com>
2025-01-06 19:34:16 +08:00
Shell
944f3d05b5 feat: add system reboot and process teardown support
The patch introduces support for system reboot functionality and process teardown,
allowing for a clean shutdown and unmounting of the root filesystem. This is
necessary for ensuring a proper system shutdown process, especially when dealing
with resource cleanup and ensuring that all processes have exited before system
shutdown.

Changes:
- Added `lwp_teardown()` function to handle process cleanup and system teardown.
- Introduced `lwp_pid_wait_for_empty()` to wait for process ID table emptiness
  before proceeding with shutdown.
- Updated `dfs_mnt_unref()` to trigger callbacks when unmounting a filesystem.
- Added new reboot types (`RB_AUTOBOOT`, `RB_POWER_OFF`) and implemented their
  corresponding actions, including cleanup of processes and unmounting root
  filesystem.
- Extended `sys_reboot()` to handle reboot and power off types with appropriate
  callbacks for process and filesystem teardown.
- Introduced callback mechanism for root filesystem unmount notifications.

Signed-off-by: Shell <smokewood@qq.com>
2025-01-06 19:34:16 +08:00
Shell
972931c991 feat: add universal process runtime service
This change introduces the `lwp_runtime.c` component, which provides the
necessary runtime environment for the init process, including boot scripts,
shutdown, and poweroff functionalities. The initialization logic has been
moved from `lwp.c` to this new file, enhancing modularity and flexibility
in handling LWP runtime tasks.

Changes:
- Moved the `lwp_startup` function from `lwp.c` to `lwp_runtime.c` to handle
  system initialization and runtime environment setup.
- Added `lwp_teardown` placeholder for system shutdown and cleanup tasks in
  the future (though not yet implemented).
- Introduced the `LWP_USING_RUNTIME` configuration option in `Kconfig` to
  conditionally enable the runtime environment.
- Updated the `SConscript` to conditionally include `lwp_runtime.c` based on
  the `LWP_USING_RUNTIME` configuration.
- Removed the old `lwp_startup` code from `lwp.c`, simplifying the file.

Signed-off-by: Shell <smokewood@qq.com>
2025-01-06 19:34:16 +08:00
Shell
dc3270f14e feat: add signal kill all functionality
This change introduces the `lwp_signal_kill_all` function, which allows a
signal to be sent to all processes in the system. The function iterates
over all PIDs and sends the specified signal to each process, except those
that are protected from signals. This enhancement provides a convenient way
to broadcast signals across all processes in the system.

Changes:
- Added `lwp_signal_kill_all` function in `lwp_signal.c` to broadcast a
  signal to all processes by iterating over all PIDs using the existing
  `lwp_pid_for_each` function.
- Introduced a new `kill_all_param` structure to encapsulate the signal
  information needed for killing processes.
- Added internal `_kill_each` helper function for sending the signal to each
  PID.
- Updated `lwp_signal.h` with the new function prototype for `lwp_signal_kill_all`.
- Modified `sys_kill` in `lwp_syscall.c` to call `lwp_signal_kill_all` when
  a process is not specified.

Signed-off-by: Shell <smokewood@qq.com>
2025-01-06 19:34:16 +08:00
Shell
c0b0838892 feat: support PID iteration
This change introduces the `lwp_pid_for_each` function, which provides a
convenient and thread-safe method for iterating over PIDs with a user-
defined callback. This addition is necessary to support cases where
operations must be performed on each PID in the balanced tree, enhancing
flexibility and modularity for PID management.

Changes:
- Added `lwp_pid_for_each` function in `lwp_pid.c` to allow iteration
  over PIDs using a callback function and optional data parameter.
- Defined a new internal `pid_foreach_param` structure to encapsulate
  the callback and data for the iteration.
- Added `_before_cb` helper function for executing the callback on each
  PID node during AVL traversal.
- Ensured thread safety by acquiring and releasing the PID lock around
  the AVL traversal within `lwp_pid_for_each`.
- Updated `lwp_pid.h` with the `lwp_pid_for_each` function prototype and
  included `rtthread.h` for necessary types.

Signed-off-by: Shell <smokewood@qq.com>
2025-01-06 19:34:16 +08:00
bernard
2946e4a316 [tools] add logging as Env['log']
Add logging as Env['log']:
- the default level is INFO;
- when using `scons --verbose`, the level will be
change to debug level.
- Add more debug information for cc detection.
2025-01-05 09:06:53 -05:00
Rbb666
2ab5827704 [wq][fix]工作队列默认使用C99标准实现遍历 2025-01-05 08:03:05 -05:00
Evlers
c8b0a9dbd9 [wlan] add ap_get_info api for more ap information 2025-01-05 19:29:18 +08:00
Meco Man
6cad23bc31 [kservice] optimize console_device 2025-01-04 22:50:04 -05:00
Gibby
ebe05a91df
Fix: [CAN][STM32] GCC compile errors
error: a label can only be part of a statement and a declaration is not a statement 459 | rt_uint32_t errtype;
2025-01-04 11:17:36 -05:00
Meco Man
b3b99082f9 [rt_vsscanf] upgrade version and add test case
from: https://github.com/phoenix-rtos/libphoenix/blob/master/stdio/scanf.c
BSD-3-Clause license
2025-01-04 18:07:05 +08:00
Meco Man
d583615afe [utest] add rt_memset test case 2025-01-03 13:42:21 +08:00
yuqingli
a343e1d7a0 [romfs/dfs_romfs.c] _rom_fops add ioctl 2025-01-03 00:39:54 -05:00
Rbb666
1284d40ea5
[doc]Update doxygen rtthread_logo.png (#9861) 2025-01-03 13:33:46 +08:00
b81a44bf74
[AT] AT_Device 适配 SERIAL_V2 (#9860)
AT_Device 适配 SERIAL_V2
2025-01-03 13:00:33 +08:00
Supper Thomas
f76b97e0c1
[doc] doxygen attach github pages (#9859)
* [doc] doxygen attach github pages

* Update doxygen.yml

* Update doxygen.yml

* Update doxygen.yml

* Update doxygen.yml
2025-01-03 12:09:40 +08:00
aka-adi
9291946c74
[tools]: fix the issue of missing commands in compile_commands.json (#9856)
* [tools]: fix the issue of missing commands in compile_commands.json

* [tools]: fix the path of compile_commands.json
2025-01-03 00:17:56 +08:00
yuqingli
73ea6dab02 删除 RT_EBUSY 返回值注释 2025-01-02 14:54:53 +08:00
yuqingli
2a4e9e902d [ipc/workqueue.c] 删除无用的判断 2025-01-02 14:54:53 +08:00
yuqingli
8a1e6b2df5 [ipc/workqueue.c] delete timer, using list. 2025-01-02 14:54:53 +08:00
Supper Thomas
d1056f40b2 [bsp][stm32l496zg] add onchip config 2025-01-01 23:04:06 -05:00
yuqingli05
d57b7cb40a
修复编译过程中的 DFS_V2报错、FAL警告 2025-01-01 19:02:50 -05:00
Chen Wang
99577849e6 bsp: cvitek: remove RT_USING_VIRTIO for arm64
duo is a real hardware, no need for virtio.

Disable RT_USING_VIRTIO and update configuration to latest.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2025-01-01 19:01:19 -05:00
sakumisu
243854a353 update(cherryusb): update to v1.4.2
Signed-off-by: sakumisu <1203593632@qq.com>
2025-01-01 18:29:38 -05:00
Rbb666
22612ae48c
[utest][wq]add workqueue_tc (#9850)
* [utest][wq]add workqueue_tc.

* [action][ci]ci添加wq测试用例
2025-01-01 21:53:43 +08:00
Chen Wang
8cf5389f5d bsp: cvitek: update README for cv18xx_aarch64
Re-write README.md for aarch64.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-12-30 11:32:10 +08:00
Chen Wang
7836e6ee4d bsp: cvitek: update combine.sh for arm64
Move the combine.sh to under cv18xx_aarch64, so we can
run this script the same as scons and no need to change
cwd.

Rename the folder boot to prebuild just becuase all the
files under boot are prebuild binaries.
Move the prebuilt fip.bin to under prebuild/milkv-duo256m
because it's only for 256.

Update combine.sh accordingly and output fip.bin to the output
folder where we create fip.bin/boot.sd as other bsp.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-12-30 11:32:10 +08:00
Chen Wang
b774c9b938 bsp: cvitek: use ioremap for arm64 core
For ARM, RT-smart and RT-standard both enable mmc (see
rt_hw_board_init() in bsp/cvitek/cv18xx_aarch64/board/board.c,
rt_hw_mmu_setup is called both for smart or standard).

So ioremap is must to do for ARM.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-12-30 11:32:10 +08:00