EVK BSP Changelog (Legacy)
v0.8.1 - 2023-12-08
AddedsAdded
RTOS_ENABLEDpreprocessor directive toevk_it.cto exclude SVC, PendSV & SysTick handlers definition.
v0.8.0 - 2023-05-31
AddedAdded UART4 peripheral to read/write data in interrupt mode.
Added configuration structure as a parameter to initializing function.
DAC1 can be initialized (
init_exp_dac1_ch1()) for conversion on CH1 through theevk_exp_dac1_ch1_convert()function.
Changed- Changed the Startup file and linker script:
Added a linker script section (.ccmram) for specific user-defined functions relocation.
Added a startup file routine to relocate .ccmram section content from flash to CCMRAM.
Added a linker script memory section (ISRCCMRAM) for vector table relocation.
Added the
ccmram_sections.ldfile in which functions must be specified for relocation in CCMRAM.Added CCMRAM vector table relocation support in
SystemInit().
Added
PRIO_TIMER_NO_IRQconfiguration andevk_timer_get_countfunction.Adjusted flash wait state configuration depending on core clock & core voltage according to latest ST RM0440 reference manual (Feb. 4th 2022).
Increased stack size from 2kb to 4kb to account for the fragmentation application example requirements.
Moved initialization functions from the main BSP file to their BSP feature file.
Reduced LPUART baud rate from 1152000 to 115200.
Renamed “stlink” and “midi” in UART function names to “SWD” and “EXP” respectively.
Split USB RX callback and RX function call to have flow control.
Updated timer handling and configurations.
PendSV priority now configurable through board initialization.
The full-duplex SPI transfer function no longer controls the chip select.
RemovedRemoved
systick_timer.Removed
app_timer.Removed
basic_ms_timer.Removed
free_running_us_timer.
v0.7.0 - 2022-11-30
AddedAdd ST-Link UART enter/exit critical functions.
Add ST-Link UART receive DMA stop function.
Add basic milliseconds timer (TIM4) with its interrupt handler, init, start & stop functions.
Add
PRIO_APP_TIMER_IRQ_HIGHconstant with priority value 1Add
PRIO_BASIC_MS_TIMER_IRQconstant with priority value 15Add new USB initialization function (
init_usb_peripheral()) inevk_init().
ChangedChange
PRIO_APP_TIMER_IRQfrom 1 to 14Change
UART IRQs priorityfrom 14 to 11Change USB detection IRQ priority from 14 to 12
Change PendSV priority from 15 to 13
Use in-house driver functions for ST-Link UART receive DMA function (
uart_receive_dma()anduart_dma_receive_complete()) instead of ST HAL.Update USB peripheral init functions.
Change
evk_timer_app_timer_init()to select IRQ priority as an input parameter.
RemovedUnused constants in
evk_usb.h
FixedCoding style issues.
v0.6.1 - 2022-06-16
AddedNew evk_audio_i2c_init() function.
ChangedSAI frame synchronization polarity is now active-low.
evk_audio_sai_configuration() does not initialize I2C anymore.
FixedFixed typos and coding style.
v0.6.0 - 2022-05-27
AddedSupport for 20 and 24-bit audio samples.
Support for payload size up to 65535 bytes.
Added a function to set the USB_LP IRQ callback.
ChangedI2S is now Right justified (LSB justified), Left channel on FS High.
DMA alignment is now on WORDS when using 20 and 24-bit audio.
STM32 USB stack functions have been moved from evk_usb.c to the evk_usb_device.c files in the usb_device folder.
evk_usb.c only contain functions required to read the usb detect pin and enable or disable the USB_LP IRQ.
The USB descriptor definitions are now in the evk_usb.h file.
The USB_LP IRQ priority and IRQn definitions are now part of the evk_def.h file.
NVIC_USB_IRQ has been renamed to NVIC_USB_DET_IRQ to avoid confusion with USB_LP_IRQ.
FixedFix the double inversion logic for the DMA direction in the sai_dma_start_it function.
SAI TX FIFO threshold is now set to FULL.
v0.5.0 - 2022-03-03
ChangedChange every public function prefix from
bsp_toevk_.
FixedFixed free running timer issue while using low power functionalities.
Fixed disabling and enabling DMA IRQ functions which wasn’t working as intended.
v0.4.0 - 2022-02-04
Added- The following functions were added in the clock module:
bsp_clock_set_pll_170Mhz_as_sysclk()
bsp_clock_set_hsi_as_sysclk()
bsp_clock_set_hsi_as_sysclk_protected()
bsp_clock_init_rtc_for_wakeup()
bsp_clock_start_rtc_for_wakeup()
- The following function was added in the power module:
bsp_power_shutdown_and_wake_up()
- The following functions were added in the audio module:
bsp_audio_i2c_write_byte_blocking()
bsp_audio_i2c_read_byte_blocking()
bsp_audio_sai_configuration()
bsp_audio_sai_write_non_blocking()
bsp_audio_sai_read_non_blocking()
bsp_audio_sai_stop_write_non_blocking()
bsp_audio_sai_stop_read_non_blocking()
bsp_expansion_sai_start_write_non_blocking()
bsp_expansion_sai_start_read_non_blocking()
bsp_expansion_set_sai_tx_dma_cplt_callback()
bsp_expansion_set_sai_rx_dma_cplt_callback()
bsp_radio_enable_non_blocking_transfer_irq_it()
bsp_radio_disable_non_blocking_transfer_irq_it()
Changed#defines for interrupt priorities in bsp_def.h were renamed to match our internal naming convention.
#defines for DMA_Channelx_IRQn were abstracted with peripherals #defines in bsp_def.h.
NVIC_SetPriority and NVIC_EnableIRQ now uses the defines in bsp_def.h, thus making future changes easier and centralized.
#defines in bsp_def.h were reordered.
Some typedefs were moved from bsp_def.h to bsp_audio.h.
DMA1 and DMA2 initialization is now centralized in bsp.c.
GPIO clock enabling has been centralized in bsp.c.
The return type of some USB functions was changed from uwb_err to uint8_t.
bsp_radio_spi_transfer_full_duplex_blocking() does not use the DMA anymore.
bsp_audio.h is now included by bsp.h, the public BSP API.
Removed- The following functions were removed from the audio module:
bsp_audio_init()
bsp_audio_deinit()
bsp_audio_playback_start()
bsp_audio_record_start()
bsp_audio_playback_stop()
bsp_audio_record_stop()
bsp_audio_i2c_write()
bsp_audio_i2c_read()
bsp_audio_sai_write()
bsp_audio_sai_read()
bsp_audio_set_playback_channel()
bsp_audio_set_record_channel()
bsp_audio_set_sampling_rate()
bsp_audio_set_rx_callback()
bsp_audio_set_tx_callback()
bsp_audio_set_error_callback()
bsp_audio_config1()
bsp_audio_config2()
bsp_audio_config3()
Some unused includes were removed from bsp_def.h.
FixedFree running timer that wasn’t providing a 4 kHz tick if system clock was not set to 163.84 MHz.
v0.3.0 - 2021-12-13
ChangedRaise STM32 HAL tick interrupt priority one level (from 0x0f to 0x0e) to make it higher priority than the PendSV interrupt which is at 0x0f. This enables calling HAL delay functions inside the PendSV ISR.
Functions bsp_audio_sai_read() and bsp_audio_sai_write() size argument is now in bytes instead of in samples.
Function bsp_audio_playback_start() now calls audio_tx_callback() instead of sending dummy bytes on the I2S bus.
v0.2.0 - 2021-11-09
ChangedSTM32 I2S controller role from master to slave.
STM32 system clock frequency from 164 MHz to 170 MHz.
FixedC++ inclusion directives.
Wrong call to STM32 HAL RCC when initializing TIM3 timer.
v0.1.0 - 2021-09-30
Initial release.