Add missing Doxygen file headers to msdos.h and msdos_init.c to
comply with documentation standards. Correct a typo ('apropriately'
to 'appropriately') in msdos_init.c.
The STM32F4 USART data register supports up to 9-bit data
when CR1.M is set. The current DR macros mask only bits [7:0],
which truncates the MSB in 9-bit mode.
Extend the field width to [8:0] to match the hardware
definition while remaining compatible with 8-bit mode.
- added CRC check for rtems_fdisk_recover_block_mappings function
- Computes CRC of page data and compares with page descriptor
- Marks pages as bad if CRC mismatch occurs
Fix two issues in the BRR calculation logic.
First the fractional part was computed using an incorrect formula, which
can produce invalid values and does not match the USARTDIV equation. This
also risks a division-by-zero in some cases. The calculation is updated to
follow the correct relation between pclk, baud, and USARTDIV.
Second the computation of the higher approximation of USARTDIV was not
consistent with the intended logic. The update ensures the next valid
step is computed properly when refining the divisor.
These changes make the baud rate calculation more accurate and reliable.
Fix incorrect definition of STM32F4_FLASH_CR_SNB which was missing
its macro parameter.
Also correct the register prefix of OPTSTRT and OPTLOCK which belong
to the FLASH_OPTCR register instead of FLASH_CR.
Previously, the AFIO register bits were not cleared correctly before
setting the remap value, which could overwrite unrelated bits and
cause GPIO remapping to behave incorrectly.
This change ensures that only the intended bits are cleared and updated,
so GPIO remapping works as expected on STM32F10xxx devices.
Fix two issues in the STM32F4 I2C driver related to mutex handling.
The mutex protecting the I2C bus was created with an initial count of
0. For a binary semaphore used as a mutex this causes the first
rtems_semaphore_obtain() call to block indefinitely since the semaphore
starts in the locked state. Initialize the semaphore with a count of 1
so it starts unlocked.
Additionally, stm32f4_i2c_process_message() could return early if the
STOP bit was set in CR1 without releasing the mutex. This would leave
the mutex locked and cause subsequent calls to deadlock. Release the
mutex before returning in this case.
Also cast dummy SR2 reads to (void) to make the intent explicit and
avoid potential compiler warnings about statements with no effect.
arm/stm32f4: Fix I2C mutex initialization and potential mutex leak
fix the indentation on these lines.
The SYSCFG register block misses two reserved registers between
EXTICR4 and CMPCR. This causes CMPCR to be mapped at the wrong
offset (0x18 instead of 0x20).
Add the missing reserved fields to preserve the correct hardware
register layout according to the STM32F4 reference manual.
STM32F4_PWR_CR_PLS now correctly takes a 'val' argument
to avoid compilation errors when selecting PVD level.
Verified other CR/CSR bit definitions and comments; no spelling issues.
Query the GCC build key and check it against the required value.
There are dependencies between the RTEMS sources and external interfaces
provided by Newlib and GCC. For example, POSIX API interfaces may
change due to POSIX standard updates. The GCC build key is used to
provide an indication that the present tools meet the requirements of
the RTEMS sources.
Add the GCC_BUILD_KEY_POLICY build option to define the checking policy.
The GCC build key policy defines how the build key of the present
compiler is checked against the required build key. While the policy is
"ERROR", if the GCC build key has not the expected value, then the build
configuration process produces a fatal error. While the policy is
"WARNING", if the GCC build key has not the expected value, then the
build configuration process produces a warning message. While the
policy is "IGNORE", the GCC build key is not checked at all. The
default policy is "WARNING".
Close#5521.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
The timer's node is shared with the RB tree and before placing it on the
timer server's chain the node needs to set to off chain or
RTEMS_DEBUG may assert.
The PL111 registers at 0x10020000 were not included in the
initial MMU device section. This caused a fatal source
exception during the framebuffer initialization.
Update the mapping to include the PL111 region
The variable is already defined in smp-imps.c and declared in the
header. The additional extern declaration in the source file is
unnecessary and can be removed.
Move -ffunction-sections and -fdata-sections into new SECTION_FLAGS
option to prevent breakage when users override OPTIMIZATION_FLAGS.
Also added documentation for user's to override the flags.
Fixes stack checker undefined reference when OPTIMIZATION_FLAGS=-g.
Also added a copyright field for valid license.
Fixes#5497
Enable the imported SBI in the build for riscv/riscv.
Other riscv BSPs would need to add the entry for optincludes
in addition to adding objsbi to their grp.
Updates #3337