hujun260 opened a new pull request, #21738:
URL: https://github.com/apache/nuttx/pull/21738
# NuttX PR Description
## Title
arm: add arm_a_r directory
## Description
This PR introduces the shared `arm_a_r` architecture source directory as a
preparation step for merging common functionality across the ARM, ARMv7-A,
ARMv7-R, and ARMv8-R profiles.
## Changes
- Add `arch/arm/src/arm_a_r/CMakeLists.txt` and `Make.defs`.
- Move the shared signal scheduling and signal delivery implementations into
`arch/arm/src/arm_a_r`:
- `arm_schedulesigaction.c`
- `arm_sigdeliver.c`
- Update ARM source Makefile and CMake integration.
- Remove duplicated signal implementation files from the old ARM profile
directories.
- Update ARM, ARMv7-A, ARMv7-R, and ARMv8-R build definitions to use the
shared directory.
- Update the ARM toolchain CMake configuration for the new source
organization.
## Motivation
Reduce duplicated ARM signal-handling implementations and prepare the source
layout for the subsequent merge of common functions shared by ARM, ARMv7-A,
ARMv7-R, and ARMv8-R. Runtime signal behavior is intended to remain unchanged.
## Runtime Testing
The reorganized ARM source tree was built and executed using the ARMv7-A
QEMU configuration `qemu-armv8a:nsh`.
### ARMv7-A build
```text
-- Board: qemu-armv7a
-- Config: nsh
-- The C compiler identification is GNU 13.2.1
+[1328/1328] Linking CXX executable final_nuttx
Memory region Used Size Region Size %age Used
ROM: 373960 B 1 MB 35.66%
RAM: 28 KB 16 MB 0.17%
```
The build completed successfully and produced `build/nuttx`. The linker
emitted only the existing RWX LOAD segment warning.
### ARMv7-A QEMU startup
```text
nsh> ostest
```
### ARMv7-A `ostest`
```text
user_main: vfork() test
vfork_test: Started
vfork_test: Child 7 ran and exited before the parent resumed
user_main: FPU test
fpu_test: Started task FPU#1 at PID=8
fpu_test: Started task FPU#2 at PID=9
FPU#1: Succeeded
FPU#2: Succeeded
user_main: wqueue test
wqueue_test: backend = flat
wqueue_test: HPWORK done
wqueue_test: custom queue, threads = 1 done
wqueue_test: custom queue, threads = 2 done
wqueue_test: multiple custom queues done
wqueue_test: teardown done
user_main: mutex test
mutex_test: PASSED
user_main: signal handler test
sighand_test: SUCCESS
user_main: nested signal handler test
signest_test: done
user_main: priority inheritance test
priority_inheritance: PASSED Priority were correctly restored.
priority_inheritance: Finished
user_main: scheduler lock test
sched_lock: PASSED No pre-emption occurred while scheduler was locked.
sched_lock: Finished
Final memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena ff3ffc ff3ffc
ordblks 2 7
mxordblk fec130 fd5460
uordblks 7d94 7ed4
fordblks fec268 fec128
user_main: Exiting
ostest_main: Exiting with status 0
```
## Testing Status
- [x] Built with the ARMv7-A QEMU `nsh` configuration.
- [x] Executed ARMv7-A `ostest` under QEMU.
- [x] `ostest_main: Exiting with status 0`.
- [ ] Compile-tested all affected ARMv7-R and ARMv8-R variants.
- [ ] Tested signal delivery on each affected ARM profile.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]