All but ~50 warnings have been fixed if you account for unmerged
MRs. These settings should give a warning free build given the
current state.
Warnings by Type
=================================
2 -Wshift-negative-value
3 -Wenum-conversion
7 -Wcast-function-type
7 -Wmissing-field-initializers
8 -Wclobbered
32 -Wtype-limits
This adds the Xilinx compatibility layer for use with various Xilinx
libraries. The first consumer of this will be lwIP support for the
Zynq7000 platform.
Added pthread_cond_clockwait(), pthread_mutex_clocklock()
pthread_rwlock_clockrdlock() and pthread_rwlock_clockwrlock()
that are new in POSIX Issue 8. Also added tests.
The implementation used the timed versions of these functions
as a reference.
Updates
rtems/programs/gsoc#69
Newer C versions require that the storage-class specifier like
static or _Thread_Local be the first thing in a declaration. Adding
this warning to the default set to let us eliminate violations.
Now that RTEMS should be entirely warning free thanks largely to the
efforts of Joel, adding this flag should keep the codebase in a good
state for future compiler updates.
Closes#5317
Provide missing GCC atomics helpers as part of BSPs where GCC
does not know how to provide it since the CPU's ISA has no
atomic instructions. The implementation provided in
bsps/shared/atomics/__atomic_test_and_set.c should work
on any single core CPU.
The CLOCK_DRIVER_USE_FAST_IDLE configure option is implemented
in the shared clock driver implementation. Unfortunately, the spec
files scattered the yaml to enable it for a specific BSP. This
change adds the shared file spec/build/bsps/optclkfastidle.yml which
is now the only place the CLOCK_DRIVER_USE_FAST_IDLE is specified.
That file includes a master list of BSPs which are known to be able to
run on simulators that are slow enough to benefit from this option.
As a point of information, the entire riscv BSP family can run on
both spike and qemu. None had the option do use fast idle. With this
option enabled, the time taken for a full test run on spike for
rv32i and rv64imadfc dropped by ~45%.
This resolves a missing prototype by making a file used in the arm/imx
BSP family shared so that it can be used by the arm/imxrt BSP family to
provide the missing prototypes.
This addition is needed to account for utf8proc and uuid moving
from cpukit/include to contrib. Both include directories need
to stay globally available.
This also moves the header from <utf8proc/utf8proc.h> to <utf8proc.h> This
follows what the upstream project uses and keeps us from having to modify
upstream source to put it in a subdirectory.
Also add new build locations and include directories.
This renames 4 files to their original names that had no changes:
stm32u5xx_hal_msp.c ->
stm32u5xx_hal_msp_template.c
stm32u5xx_hal_timebase_rtc_wakeup.c ->
stm32u5xx_hal_timebase_rtc_wakeup_template.c
stm32u5xx_hal_timebase_tim.c ->
stm32u5xx_hal_timebase_tim_template.c
stm32u5xx_hal_timebase_rtc_alarm.c ->
stm32u5xx_hal_timebase_rtc_alarm_template.c
There is one file left behind that will be sorted out in the future:
stm32u5/hal/system_stm32u5xx.c
It comes from
07b6fedf4b/Projects/NUCLEO-U575ZI-Q/Applications/ThreadX/Tx_LowPower/Src/system_stm32u5xx.c
As per Christian on Discord.
These have now moved to:
contrib/bsps/arm/stm32h7/cmsis-device-h7
contrib/bsps/arm/stm32h7/stm32h7xx_hal_driver
Also add include directories to the build.
removed all set_vector() function prototypes from
all the respective bsp.h header files and removed
bsps/shared/start/setvec.c from respective .yml files.
* Fixes#5256.
* Specify an initial baud rate to use during startup.
After the PL011 code refactor in
0f42153959, an initial baud rate
is required. arm_pl011_first_open is called from boot_card and
will fail without a baud rate specified. This can cause certain
future uses of /dev/console, such as opening a shell, to fail.
The opto* include must come before the bspopts include or else the flags
from the opto* include get dropped which causes librtemscpu to build
without the function and data sections flag which causes link-time
errors because unused sections cannot be dropped. The mechanism here
should be better understood, but this fixes the build errors.
This refactors the AArch64 exception handling to remove the mutable code
sections that are generally flagged as a bad idea by code analysis
tools. This also removes any casting between data pointers and function
pointers to avoid the need to use pragmas to disable warnings about such
casting.
This adds support for a the Image header protocol similar to the zImage
protocol that Linux kernels use to describe their expectations of the
system configuration.
Removed all uses and implementations of set_vector() function across ERC32,
LEON2, and LEON3 BSPs. Replaced with rtems_interrupt_handler_install() and
rtems_interrupt_entry_install().
- Added ERC32_Clear_and_unmask_interrupt() and LEON_Clear_and_unmask_interrupt()
for unmasking logic previously in set_vector().
- Deleted set_vector() definitions and implementations in each BSP.
- Updated related obj.yml files.
- Replaced set_vector() with rtems_interrupt_catch() in shared/gnatcommon.c.
The list formerly included the erc32 and pc386 varants which do not
support multi-core. Added the pc386 variants which include the
support necessary for multi-core.
This BSP supports a custom STM32U5 based board. It uses a similar
structure like the existing STM32H7 BSP and therefore should be well
adaptable to other boards.
Co-authored-by: Christian Mauderer <christian.mauderer@embedded-brains.de>
- Modified the psximfs01 test to validate the functionality
- Modified the IMFS_fs_info_t keeping the jnode counter
- Added imfs_statvfs.c which sets the statvfs struct fields for imfs