| Age | Commit message (Collapse) | Author |
|
Clarify the behavior of edge cases in documentation:
- Added more examples to the function documentation
- Fixed misleading comment about dot handling
- Clarified the defensive check purpose
Co-authored-by: BernardXiong <[email protected]>
|
|
Address code review feedback:
1. Extract path stripping logic into shared dlmodule_extract_name() function
to avoid code duplication between dlopen() and _dlmodule_set_name().
2. Fix edge case handling for filenames starting with dot (e.g., .hidden).
3. Add proper documentation for the new function.
This ensures consistent module name extraction across all code paths.
Co-authored-by: BernardXiong <[email protected]>
|
|
Fix name mismatch between dlmodule_find() and _dlmodule_set_name() that
caused dlopen() to always reload modules instead of reusing them:
1. In dlopen(): Extract module name from full path before calling
dlmodule_find(), matching the stripped name stored by _dlmodule_set_name().
This allows dlopen() to properly find and reuse already-loaded modules.
2. In _dlmodule_set_name(): Fix bug where extension detection searched
the entire path instead of just the filename portion. For paths like
"/mnt/v1.2/app.so", it would incorrectly find "." in "v1.2" directory
name instead of the ".so" extension.
Fixes: Module reloading on every dlopen() call, memory leaks from
duplicate module instances, and dlclose() cleanup issues.
Co-authored-by: BernardXiong <[email protected]>
|
|
|
|
Link: https://github.com/RT-Thread/rt-thread/issues/11260
Signed-off-by: GuEe-GUI <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Split the merged #define macros on line 13 into separate lines to comply with coding standards and avoid potential preprocessor issues.
|
|
* [bsp][gd32]:gd32vw553h-eval add wdt support
* [bsp][gd32]:gd32vw553h-eval refine wdt and modify ai review
* [bsp][gd32]:gd32vw553h-eval update code format
---------
Co-authored-by: Rbb666 <[email protected]>
|
|
dlmodule_load_shared_object
[Problem Description]
In the dlmodule_load_shared_object function,
if a module loading fails once due to an unresolved symbol,
all subsequent attempts to load any module will fail.
The system becomes unable to load modules correctly until a reboot.
[Problem Analysis]
The root cause is that the variable unsolved is defined as static.
Static variables retain their value between function calls.
If a relocation error occurs, unsolved is set to RT_TRUE.
However, when the function returns with an error, the value of unsolved is not reset.
Consequently, on the next function call, unsolved remains RT_TRUE from the previous execution.
This causes the check if (unsolved) to trigger immediately (or after the loop),
forcing the function to return an error regardless of whether the current module is valid or not.
[Solution]
Reset the unsolved variable to RT_FALSE before returning the error code -RT_ERROR.
This ensures the variable is in a clean state for the next function call, preventing state leakage between invocations.
Signed-off-by: Liu Gui <[email protected]>
|
|
* Add VW553H spi support
* Fix Some Issues
|
|
* add frdm-mcxa366 support
* add frdm-mcxa366 bsp driver support
* add ALL_BSP_COMPILE.json
* fix co-pliot issue
---------
Co-authored-by: nxp-alexyang <[email protected]>
|
|
|
|
* bsp: [gd32] add GD32VW553 hw timer support.
* bsp: [gd32] add GD32VW553 hw timer config.
|
|
|
|
* feat(bsp/gd32): 增加GDF405RG芯片BSP
* chore(bsp/gd32): 取消git对RTE目录的跟踪,并更新README中的BSP条目
* style(bsp/gd32): 修改格式
|
|
|
|
|
|
Signed-off-by: GuEe-GUI <[email protected]>
|
|
rename the project name to "project".
|
|
- Accumulate short reads, mark finishing on EOF
- Track begin/end callback states and cleanup on error paths
- Add ACK handling with retry/error counting in send flow
|
|
|
|
|
|
|
|
- Implement _noncache() and _cache() function features;
- Correct rt_hw_mmu_setup function for NORMAL_NOCACHE_MEM type property configuration;
- Update C908/C906 PTE macro definition configuration;
|
|
|
|
if src == '/', result in something lik 'dest//file'
|
|
|
|
|
|
|
|
|
|
|
|
The POSIX mq_send() function currently passes timeout=0 to
rt_mq_send_wait_prio(), causing it to return immediately when the
queue is full instead of blocking as required by POSIX.1-2017.
This patch:
1. Changes mq_send() to use RT_WAITING_FOREVER for blocking behavior
2. Implements mq_timedsend() properly with timeout support
3. Fixes errno mapping for different error conditions
Reference: POSIX.1-2017 mq_send(3p):
"If the specified message queue is full, mq_send() shall block until
space becomes available to enqueue the message, or until mq_send()
is interrupted by a signal."
Fixes: https://github.com/RT-Thread/rt-thread/issues/11196
Signed-off-by: hzt <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- rt_console_output_enabled()/rt_console_output_is_enabled() gate rt_kprintf/rt_kputs output with the switch
|
|
|
|
|
|
|
|
|