16624 Commits

Author SHA1 Message Date
GuEe-GUI
3b22dbd049 [DM/FEATURE] DM Device IDA management
Drivers can manage their own IDs without having to concern
themselves with the register/unregister in system

Link: https://github.com/RT-Thread/rt-thread/issues/9534

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-11-18 14:23:25 +08:00
zhuzhuzhu
45aba1bcd7 add head 2024-11-18 13:53:25 +08:00
zhujiale
48fca91817 add ofw api to of net,driver writer can use this api get phy modes or get mac address 2024-11-18 13:53:25 +08:00
zhujiale
6e78474998 pci 2024-11-18 13:53:25 +08:00
Supper Thomas
a7ee7b6617 Revert "[tools] use project's dir basename as default project name"
This reverts commit ea75800d5b3be3e63c6304afed8b06a3fdeae289.
2024-11-17 22:01:42 -05:00
zhujiale
44515624e2 [libcpu] fix No memory higher than 1 GB is mapped 2024-11-17 21:13:07 -05:00
zhujiale
96da7abd3e [libcpu] fix No memory higher than 1 GB is mapped 2024-11-17 21:13:07 -05:00
Meco Man
09f47c55a9 [utest] format code and remove duplicate header file 2024-11-18 09:58:55 +08:00
Meco Man
a406c8fce8 [utest][Kconfig] adjust RT_CONSOLEBUF_SIZE when utest is enabled 2024-11-18 09:58:55 +08:00
Meco Man
491f13e289 [utest][stm32f412][gcc] add __rt_utest_tc_tab_start to support utest 2024-11-18 09:57:46 +08:00
rcitachi
d9c16efe8f Modify the position of libc_rent definition 2024-11-17 11:59:37 -05:00
ligr
5e8602c6e0 [components/libc/posix][pthreads]add comments for thread APIs of pthread. 2024-11-16 11:52:57 -05:00
ligr
ac1df96ec9 [net][sal]add comments for BSD socket APIs. 2024-11-15 21:04:27 -05:00
zhujiale
c1db34983d [rpi4b] add new bsp for qemu-rpi4b 2024-11-15 15:35:46 +08:00
heyuanjie87
2b21b095f9 [libcpu]riscv使用call指令解决长跳转问题 2024-11-15 14:34:32 +08:00
flyingcys
0d9185bd5a
[bsp][cvitek]fix milkv-duos-sd cann't startup big-core kernel (#9633)
fix milkv-duos-sd cann't startup big-core kernel
milkv-duos-sd use cv1813h folder store ld file
Signed-off-by: flyingcys <flyingcys@163.com>
2024-11-15 12:52:57 +08:00
Chen Wang
83a250f05f
bsp: qemu-virt64-riscv: Improve README (#9651)
Improved README document
- Unified the usage process of Standard Edition and Smart Edition.
- Deleted the description of running RTT in Machine Mode. Currently,
  both Standard Edition and Smart Edition RTT run in S-mode by default.

At the same time, some unnecessary scripts were cleaned up.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
2024-11-14 22:09:23 +08:00
wumingzi
908dc684b7
[bsp][ESP32] add spi custom configuration function and enhance muti object initliz… (#9643)
* add spi custom configuration function and enhance muti object initlization and setting

* update changelog

* submit ci files

* fix ci file

* update

* formatting

* delete yaml files

* fix ble ci file

* fix undefined reference to app_main error

* update
2024-11-14 20:11:37 +08:00
WwWangGuan
ebe2926cd6 [bsp][gd32][fix rtc clock selection] 2024-11-13 22:56:32 -05:00
wdfk-prog
4c18fa7e21 fix:[CAN][STM32]open时立刻启动can_start,还未完成其他配置,可能导致异常 2024-11-13 22:56:17 -05:00
Shell
e763e51e49 feat: devfs: handling unit size in POSIX RW request
POSIX.1 says:
>  read() attempts to read up to count bytes from file descriptor fd
>  into the buffer starting at buf.

On the other hand, for rt_device_read, the `@size` is defined as the
number of unit (block size for blk device, otherwise one byte).

Changes:
- Transferred unit size from POSIX R/W(in bytes) to rt_device_R/W during
  request of file R/W operations.

Signed-off-by: Shell <smokewood@qq.com>
2024-11-13 22:56:07 -05:00
下里巴人
be0161ec62
[bsp][nxp][mcxa153] add more UART channels (#9635)
* [bsp][nxp][mcxa153] add more UART channels
2024-11-13 08:01:21 +08:00
ligr
f0934630c4 [libc] add comments for libdl APIs. 2024-11-13 07:58:34 +08:00
Shell
20263be180
fixup: smart: uninitialized buffer on mount(2) (#9636)
The `struct stat` object used inside mount(2) is uninitialized, which
can lead to undefined behavior during running

Changes:
- Set zero to buffer before calling to stat()

Signed-off-by: Shell <smokewood@qq.com>
2024-11-12 21:11:50 +08:00
Supper Thomas
ddf42bad82 [action] remove rockchip/rk3568 because of the complie time 2024-11-11 19:14:14 +08:00
Bernard Xiong
f8ea6c6527
[tools] add project.json generation in vsc.py. (#9632)
* [tools] fix the SDK path issue in env script.

* [tools] add project.json generation in vsc.py.

* [tools] provide correct and clear comments in vsc.py
2024-11-11 09:14:53 +08:00
liuchao
56c9bbe405 [bsp/hc32] fix uart dma if gcc optimization level is not none 2024-11-09 19:01:11 -05:00
Alex Imcu
d141d148cf
[bsp][cvitek] fix pinmux array order error (#9593) 2024-11-08 15:36:37 +08:00
hydevcode
8f77525b5d
[action] attachconfig adapts yml syntax features (#9629) 2024-11-07 22:32:31 +08:00
andeyqi
38caf02bb4 [BSP][FRDM-MCXN947]Add IAR9.60 project template. 2024-11-06 20:55:09 -05:00
hydevcode
65e239d3f1
[action] yml file adds the depends parameter (#9627) 2024-11-07 09:47:59 +08:00
liuchao
ea75800d5b [tools] use project's dir basename as default project name 2024-11-06 17:46:16 -05:00
kurisaw
04686869c7 [bsp][ifx] Infineon RTC driver adds alarm function 2024-11-06 18:19:13 +08:00
kurisaw
2241f4676b [libcpu][component] fixed the r52 kernel gcc context switch assembly 2024-11-06 16:09:52 +08:00
zhujiale
1572a44055 [dm2.0] add new bsp for rk platform 2024-11-05 22:36:59 -05:00
yangpeng
f98f772a84 [components/net/at]修复大数据量传输socket断开后可能丢数据的问题 2024-11-05 22:36:33 -05:00
hydevcode
fc765e2f32 [action] Recursive folder lookup attachconfig.yml 2024-11-05 19:31:20 +08:00
liuchao
bdf5a1fb09 [components][finsh]在RT_USING_POSIX_STDIO时,使用get_console获取当前console描述符 2024-11-04 22:02:59 -05:00
Supper Thomas
96165a5e99
[action] add the yml file support 2024-11-04 22:01:30 -05:00
kurisaw
ee052245d3 Specification submission 2024-11-05 09:43:57 +08:00
kurisaw
13a6c5201d [net][lwip] lwip hook functions are provided to provide greater flexibility for unknown Ethernet protocols 2024-11-05 09:43:57 +08:00
yangpeng
a939e8e4ea [components/net/at]修复at socket信号量释放异常 2024-11-04 17:52:59 -05:00
zhangjianwu
4fe86c9439 [GD32]更新GD32E503V文档 2024-11-04 17:51:57 -05:00
GuEe-GUI
d8db49c17a [COMPILER/FEATURE] Support rt_packed
__ARMCC_VERSION:         https://smtp.keil.com/support/man/docs/armcc/armcc_chr1359124980173.htm
__IAR_SYSTEMS_ICC__:     <Not Found>
__GNUC__:                https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html#index-packed-type-attribute
__ADSPBLACKFIN__:        <Not Found>
_MSC_VER:                https://learn.microsoft.com/en-us/cpp/preprocessor/pack?view=msvc-170
__TI_COMPILER_VERSION__: https://software-dl.ti.com/codegen/docs/tiarmclang/rel1_3_0_LTS/migration_guide/migrating_c_and_cpp_source/pragmas_and_attributes.html
__TASKING__:             https://resources.tasking.com/sites/default/files/2021-02/TASKING_Alignment%20Requirements%20Restrictions_WEB.pdf

Usage:
```c
rt_packed(struct object1
{
    int dword;
    char byte;
});
typedef struct object1 object1;

rt_packed(struct object2
{
    int dword;
    char byte;
});
```

Signed-off-by: GuEe-GUI <2991707448@qq.com>
2024-11-04 10:10:15 +08:00
Shell
a573ea06b7 🚚 renaming: move smp to smp_call 2024-11-03 10:08:45 +08:00
Shell
81a35861fd utest: smp_call: add smoke test cases
Signed-off-by: Shell <smokewood@qq.com>
2024-11-03 10:08:45 +08:00
Shell
2f6d98bfcb feat: smp_call: added signaling call_req
This patch introduces `rt_smp_call_request` API to handle queued
requests across cores with user provided data buffer, which provides a
way to request IPI through a non-blocking pattern.

It also resolved several issues in the old implementation:
- Multiple requests from different cores can not be queued in the work
  object of the target core.
- Data racing on `rt_smp_work` of same core. If multiple requests came
  in turns, or if the call is used by the target cpu, while a new
  request is coming, the value will be overwrite.
- Memory vulnerability. The rt_smp_event is allocated on stack, though
  the caller may not wait until the call is done.
- API naming problem. Actually we don't provide a way to issue an IPI to
  ANY core in mask. What the API do is aligned to MANY pattern.
- FUNC_IPI registering to PIC.

Changes:
- Declared and configured the new `RT_SMP_CALL_IPI` to support
  functional IPIs for task requests across cores.
- Replaced the single `rt_smp_work` array with `call_req_cores` to
  manage per-core call requests safely.
- Added `_call_req_take` and `_call_req_release` functions for atomic
  handling of request lifetimes, preventing data race conditions.
- Replaced single event handling with a queue-based approach
  (`call_queue`) for efficient multi-request processing per core.
- Introduced `rt_smp_call_ipi_handler` to process queued requests,
  reducing IPI contention by only sending new requests when needed.
- Implemented `_smp_call_remote_request` to handle remote requests
  with specific flags, enabling more flexible core-to-core task
  signaling.
- Refined `rt_smp_call_req_init` to initialize and track requests
  with atomic usage flags, mitigating potential memory vulnerabilities.

Signed-off-by: Shell <smokewood@qq.com>
2024-11-03 10:08:45 +08:00
Shell
285fee9d4c feat: rtatomic: lockless single linked list
Signed-off-by: Shell <smokewood@qq.com>
2024-11-03 10:08:45 +08:00
Shell
40cd8cce99 feat: Added rt_interrupt_context* family for nested interrupt handling
These changes introduce the rt_interrupt_context family, providing a
mechanism for managing nested interrupts. The context management
ensures proper storage and retrieval of interrupt states, improving
reliability in nested interrupt scenarios by enabling context tracking
across different interrupt levels. This enhancement is essential for
platforms where nested interrupt handling is crucial, such as in real-
time or multi-threaded applications.

Changes:
- Defined rt_interrupt_context structure with context and node fields
  in `rtdef.h` to support nested interrupts.
- Added rt_slist_pop function in `rtservice.h` for simplified node
  removal in singly linked lists.
- Declared rt_interrupt_context_push, rt_interrupt_context_pop, and
  rt_interrupt_context_get functions in `rtthread.h` to manage the
  interrupt/exception stack.
- Modified AArch64 CPU support in `cpuport.h` to include
  rt_hw_show_register for debugging registers.
- Refactored `_rt_hw_trap_irq` in `trap.c` for context-aware IRQ
  handling, with stack push/pop logic to handle nested contexts.
- Implemented interrupt context push, pop, and retrieval logic in
  `irq.c` to manage context at the CPU level.

Signed-off-by: Shell <smokewood@qq.com>
2024-11-03 10:08:45 +08:00
zhangjianwu
3a696ebc67 [BSP][GD32]add gd32e503v-eval 2024-11-02 18:38:27 -04:00