Changelog
v2.1.0 - 2025-04-28
Applications
Release Notes:
AddedImproved the pairing process.
Modified the pairing process to start at boot for all applications.
Standardize the pairing process across all SDK applications.
Update the SDK apps documentation to include details about the automatic pairing process.
Added a profiler tool designed to measure and log the processing time of the SWC.
Added support for short and long presses on EVK1.4.
Added short press support in audio applications to control volume level.
Added PendSV_IRQn priorities for all apps to match EVK1.4.
Added support for dual radio on all SDK example node devices.
Added facade_read_button_state to audio applications facade.
Added new facade user_button prototypes to star_network application.
Added facade_node_read_user_button_state to star_network application facade.
Added facade_coord_read_user_button_1_state to star_network application facade.
Added facade_coord_read_user_button_2_state to star_network application facade.
Added new facade user data payload status prototypes to star_network application.
Added facade_node1_payload_coord_received_status to star_network application facade.
Added facade_node1_empty_payload_coord_received_status to star_network application facade.
Added facade_node2_payload_coord_received_status to star_network application facade.
Added facade_node2_empty_payload_coord_received_status to star_network application facade.
Added facade_coord_payload_node_received_status to star_network application facade.
Added facade_coord_empty_payload_node_received_status to star_network application facade.
Enable button state transfer from the Coordinator to the Node in the Star Network application, leveraging normal presses now that the long-press pairing mechanism is in place.
Added LED connection status to connection_priority application.
Added sequence number statistics to datalink application.
Added statistics to star_network application.
Added facade_audio_process_main_channel_timer_trigger to trigger the main channel audio process execution.
Added facade_audio_process_back_channel_timer_trigger to trigger the back channel audio process execution.
Added facade_audio_process_timer_trigger to trigger the audio process execution.
Added if statement in audio_process_main_channel_callback of audio_bidirectional_coord.c to only run sac_pipeline_process and sac_pipeline_consume when they are required.
Added if statement in audio_process_back_channel_callback of audio_bidirectional_node.c to only run sac_pipeline_process and sac_pipeline_consume when they are required.
Added if statement in audio_process_callback of audio_unidirectional_coord.c to only run sac_pipeline_process and sac_pipeline_consume when they are required.
ChangedPendSV priority is set to 12 for all applications and is no longer a front-facing configuration.
Changes button state transmission to be real-time instead of toggling on press in audio examples.
Standardizes button state transmission across audio and Star Network examples.
Changed the pairing/unpairing feature to be triggered by a long press on the EVK1.4, allowing normal presses to be repurposed.
Refactored facade_button_handling to group button variables in a structure and reduce code repetition.
Updated datalink application statistics print to be based on time and not packet rate.
Updated fragmentation application statistics print to be based on time and not packet rate.
Changed connection_priority connection priority node transmission split to be 80/20 instead of 79/21.
Initialized all previously uninitialized local variables to improve code safety and predictability by eliminating potential undefined behavior caused by accessing uninitialized variables.
Updated SR1100 datalink application config to match 2.0Mbps profile of EVK Demo.
Updated Connection Priority power settings:
SR1120
Increased band count from 4 to 5 to improve frequency coverage by all devices.
Reduced band spacing from 10 to 8 to be able to fit 5 bands.
Increased pulse gain from 0 to 1 to counter the increase in average power.
SR1020
Increased band count from 4 to 5 to improve frequency coverage by all devices.
Updated Hello-World power settings:
SR1120
Increased band count from 4 to 5 to improve frequency coverage by all devices.
Reduced band spacing from 10 to 8 to be able to fit 5 bands.
Increased pulse gain from 0 to 1 to counter the increase in average power.
SR1020
Increased band count from 4 to 5 to improve frequency coverage by all devices.
Updated Hello-World RTOS power settings:
SR1120
Increased band count from 4 to 5 to improve frequency coverage by all devices.
Reduced band spacing from 10 to 8 to be able to fit 5 bands.
Increased pulse gain from 0 to 2 to counter the increase in average power.
SR1020
Increased band count from 4 to 5 to improve frequency coverage by all devices.
Updated Star Network power settings:
SR1120
Increased band count from 4 to 5 to improve frequency coverage by all devices.
Reduced band spacing from 10 to 8 to be able to fit 5 bands.
SR1020
Increased band count from 4 to 5 to improve frequency coverage by all devices.
Optimized Audio Bidirectional application CCA settings for 2 concurrent links in uncompressed state and 4 concurrent links in compressed state.
Optimized Audio Unidirectional application CCA settings for 2 concurrent links.
Optimized Datalink application CCA settings for 3 concurrent links.
Use swc_connection_get_payload_buffer instead of swc_connection_allocate_payload_buffer in all SDK example applications.
Refactored the way stats are printed and reset in both Hello-World apps.
Changed EVK1.4 statistics reset button to a short press on SW1 for the following apps:
Connection Priority
Fragmentation
Hello World
Hello World RTOS
Changed the way audio processes are triggered. The audio producer will now trigger the audio process timer instead of relying on a periodic polling process.
Changed the facade_audio_process_main_channel_timer_init function to receive the timer callback function and initialize the timer to a 1 second period instead of a custom microsecond period.
Changed the facade_audio_process_back_channel_timer_init function to receive the timer callback function and initialize the timer to a 1 second period instead of a custom microsecond period.
Changed the facade_audio_process_timer_init function to receive the timer callback function and initialize the timer to a 1 second period instead of a custom microsecond period.
Changed the audio application initialization order. The wireless core is now initialized and connected before the audio core starts.
FixedFixed the function headers facade_context_switch_trigger and facade_set_context_switch_handler to align with the reworked SWC API.
Fixed Hello-World baremetal message counter. The value is now using 32-bit integer.
Fixed Connection Priority application statistics print rate being higher than the coordinator.
Fixed Connection Priority application hardfault on EVK1.4 hardware.
Fixed Star Network bug that was causing Coordinator to crash over time. More specifically, the priority of PendSV_IRQn was too high. Since the prints were being called in the _rx_success_callback functions triggered by the PendSV IRQ, the writing was given priority over the USB and USB timer IRQs which are used to read and empty the buffer. This meant that over time, the buffer would overflow. Furthermore, the printed strings on the Coordinator were too long and causing tinyUSB to work over its USB Full-Speed (FS) limit of 64 bytes/ms. Therefore, the PendSV IRQ priority was dropped under that of the USB and USB timer, and the printed string was reduced.
RemovedRemoved the facade_audio_process_main_channel_set_timer_callback function. The timer callback function is now set using facade_audio_process_main_channel_timer_init.
Removed the facade_audio_process_back_channel_set_timer_callback function. The timer callback function is now set using facade_audio_process_back_channel_timer_init.
Removed the facade_audio_process_set_timer_callback function. The timer callback function is now set using facade_audio_process_timer_init.
Documentation
Release Notes:
AddedRenamed Syncword to SFD.
Added an article in the porting guide for the profiler.
Added a note about the pairing abort feature in the pairing section of application documentation.
Added links to previous SDK version documentation in the documentation main page.
Added documentation on how to enable dual radio in SDK example apps.
Added IRQ Priority Scheme sections to EVK1.4 and Quasar documentation.
Added STM32 USB DFU permission setup for Linux in Getting Started.
Added warning for the SDK’s project path on Linux.
Added documentation on how to calculate the audio clock drift queue averaging period.
Added documentation on the low-pass filter effect of the linear interpolation resampling process.
Added documentation on the synchronization of audio processes in the audio applications.
Added SDK v2.1.0 changelog.
ChangedAdjusted all frame diagrams in
Core - Wireless Core - Conceptsdocumentation to include the 4-bit IOOK header.Adjusted the SR1120 Sync frame diagram in
Core - Wireless Core - Conceptsto show a 31-bit CRC instead of a 16-bit CRC.Improved the pairing process.
Modified the pairing process to start at boot for all applications.
Standardize the pairing process across all SDK applications.
Update the SDK apps documentation to include details about the automatic pairing process.
Updated the Features page with the latest SDK features.
Updated MCU Requirements section.
Updated Porting Optimizations section.
Updated EVK app button action description.
Improved Windows long path documentation.
Wireless Core
Release Notes:
AddedAdded “swc_set_phy_mode” function for users to change PHY mode (PHY rate and isi mitigation) on SR1120
Added block average link margin indicator to SWC stats.
Added error check on input frequency when adding channel using swc_connection_add_channel
Added new API call swc_node_enable_legacy_sfd to support backward compatibility with SDK2.0 SFDs.
Added swc_get_multi_radio_select_mode function to poll for current multi-radio selection mode.
Added error parameter to swc_set_multi_radio_select_mode.
Added new error code SWC_ERR_INVALID_OPERATION_AFTER_SWC_LOCK to prohibit user from initializing connection parameters after any of the priority feature has been enabled.
Added new error code SWC_ERR_INVALID_OPERATION_CONN_PRIO_ENABLED to prohibit user from initializing the slots priority feature after the connection priority has been enabled.
Added new error code SWC_ERR_INVALID_OPERATION_SLOT_PRIO_ENABLED to prohibit user from initializing the connection priority feature after the slots priority has been enabled.
Added swc_connection_flush_queue api that enables flushing packets in the wireless core queue after a swc_disconnect call.
Added a SWC_ERR_FLUSH_QUEUE_WHILE_RUNNING error.
Added NULL pointer check in swc_connection_get_enqueued_count.
ChangedRenamed Syncword to SFD.
Used SLPNOISY flag to go to sleep automatically after the last CCA try in abort mode.
Disabled sync frames (conn.first_tx_after_connect=false) when certification mode is enabled.
Initialized all previously uninitialized local variables to improve code safety and predictability by eliminating potential undefined behavior caused by accessing uninitialized variables.
Renamed the SWC_ERR_INCORRECT_TS_SLEEP_LEVEL error code returned by swc_set_time_slots_sleep_level() to SWC_ERR_INVALID_TIMESLOT_SLEEP_LEVEL for consistency.
Changed RDO protocol header size from 16 to 8 bits.
PAN ID is now 15 bits to have access to the full list of 128 new orthogonal SFD.
The PHY can now support 128 different networks and the MAC now supports 32768 different networks.
Renamed swc_radio_select to swc_set_multi_radio_select_mode.
Changed WPS_ENABLE_PHY_STATS_PER_BANDS default state to OFF.
The following API calls will now return an error if they are called after any priority feature (swc_connection_set_connection_slots_priority or swc_connection_set_connection_priority) is enabled:
swc_connection_set_fragmentation
swc_connection_set_acknowledgement
swc_connection_set_credit_flow_ctrl
swc_connection_set_fec_ratio
swc_connection_set_modulation
swc_node_set_sleep_level() will now return the error swc_node_set_sleep_level if any of the provided timeslot duration are greater than the maximum possible duration for that sleep level.
Explained the difference between swc_connection_allocate_payload_buffer and swc_connection_get_payload_buffer in their function headers.
The wireless core now sets all connections status to disconnected when calling swc_disconnect.
FixedFixed the SR1120 register file.
Fixed SR1120 sleep level per time slot uncertain timings.
Fixed an issue with certification mode in a star network.
Fixed preamble reg value convertion from bits.
Concurrency low power mode will now only generate one IRQ, allowing MCU with slow processing to handle CCA correctly.
Remove 1.65 ms delay before the RX is turned on in fast sync.
Fixed the maximum connection priority allowed to match the maximum number of connection per timeslot.
Fixed the fragmentation connection queue size check in wps_frag.c by correctly calculating the number of fragment count when the header overhead adds extra fragments.
Enhanced stability and reliability of the SR1120 RF performances.
Fixed a hardfault condition when using Link Time Optimization (LTO) flag.
RemovedRemoved statistics related to RNSI and RSSI in the printed statistics.
Removed the initialization of the free running timer.
Removed SWC_EXT_ERR_RDO_INC_STEP_INVALID error.
Removed increment step config from swc_ext_enable_rdo.
Audio Core
Release Notes:
AddedAdded sac_cdc_calculate_queue_average_size api to calculate the CDC queue_average_size based on a required drift value to compensate.
Added sac_get_ms_in_x_packets utility function to convert a number of packets into a value in milliseconds.
Added a ep_swc_consumer_start action to fill the wireless core queue after audio buffering is complete.
ChangedInitialized all previously uninitialized local variables to improve code safety and predictability by eliminating potential undefined behavior caused by accessing uninitialized variables.
RemovedRemoved unused sac_pipeline_consume_all() function prototype from
sac_api.h.
Quasar BSP
Release Notes:
AddedAdded the initialization of the free running timer to the BSP initialization.
Added profiler functions for measuring execution time.
Added quasar_usb_init_usb_detect_gpio function to USB module.
Added quasar_usb_deinit_usb_detect_gpio function to USB module.
Added quasar_timer_generate_event function to timer module.
ChangedReworked the PendSV function by making it private and no longer configurable at the application level. IRQ Priority set to 12.
Initialized all previously uninitialized local variables to improve code safety and predictability by eliminating potential undefined behavior caused by accessing uninitialized variables.
Moved the Quasar BSP contents outside of the src folder.
Adapted CMakeList in bsp/quasar for Quasar BSP’s new location.
Simplified the quasar_usb_deinit function and removed ST PCD module init.
Improved the quasar_usb_deinit to allow runtime peripheral power down to save power when not required.
FixedFix timer prescaler update.
Fix ADC battery level monitoring.
RemovedRemoved pendsv_prio from quasar_cfg structure in quasar.h.
EVK1.4 BSP
Release Notes:
AddedAdded the initialization of the free running timer to the BSP initialization.
Added profiler functions for measuring execution time.
Added evk_timer_generate_event function to timer module.
ChangedReworked the PendSV function by making it private and no longer configurable at the application level. IRQ Priority set to 12.
Initialized all previously uninitialized local variables to improve code safety and predictability by eliminating potential undefined behavior caused by accessing uninitialized variables.
Moved the EVK1.4 BSP contents outside of the src folder.
Adapted CMakeList in bsp/evk1_4 for EVK1.4 BSP’s new location.
RemovedRemoved pendsv_prio from evk_cfg structure in evk.h.
Removed unused IRQ priority definitions:
APP_TIMER_HIGH,SYSTICK,UART4,LPUART,APP_TIMERandBASIC_MS_TIMER.Removed
HAL_UART_MspInitandHAL_UART_MspDeInitlegacy functions.
Drivers
Release Notes:
ChangedInitialized all previously uninitialized local variables to improve code safety and predictability by eliminating potential undefined behavior caused by accessing uninitialized variables.
Libraries
Release Notes:
ChangedInitialized all previously uninitialized local variables to improve code safety and predictability by eliminating potential undefined behavior caused by accessing uninitialized variables.
Modules
Release Notes:
ChangedInitialized all previously uninitialized local variables to improve code safety and predictability by eliminating potential undefined behavior caused by accessing uninitialized variables.
Middleware
Release Notes:
ChangedInitialized all previously uninitialized local variables to improve code safety and predictability by eliminating potential undefined behavior caused by accessing uninitialized variables.
Virtual Environment
Release Notes:
AddedAdded installation of STM32 USB DFU driver during environment setup on Windows PCs.
VS Code
Release Notes:
AddedAdded VS Code task to flash a compiled binary into a STM32 devices in USB DFU bootloader mode.
ChangedAdjusted VS Code cpptools extension settings for Intellisense to improve parsing performances.
Set C_Cpp.default.configurationProvider to ms-vscode.cmake-tools.
Cleared C_Cpp.default.browse.path.
Added file exclusions (C_Cpp.files.exclude) for the .vscode folder and some unused micromamba dependencies.
Toolchain
Release Notes:
FixedModify gcc-arm-compiler.cmake to use arm-none-eabi-gcc for assembly code.
Modify gcc-x86-compiler.cmake to use gcc for assembly code.
v2.0.0 - 2024-10-01
General
Release notes:
This major version brings several changes to the project’s structure and its APIs. Changelogs for older releases can be found here.
Support for the new SR1120 transceiver.
Application examples have been revised. Some were removed, some were consolidated into one and new ones have been added.
Ranging Core was removed.
AddedNew Audio Bidirectional with 48kHz/24-bit stereo main channel and 32kHz/16-bit mono back channel. Both audio streams have a fallback mode to ADPCM compression.
New Audio Unidirectional application at 48kHz/24 bits with a fallback at 16 bits.
New Hello World RTOS application.
New Datalink application.
Concurrency support for all applications.
Pairing support for all applications.
ChangedTransitioned from the now legacy
interfacemodule to a newfacade/backendapproach. The facade now defines the application requirements, while the backend handles hardware-specific implementations.micromamba was updated to v1.5.9.
CMake Presets now replace the original VSCode CMake Variants.
The development environment bootstrap can now be executed through VSCode Tasks and activated via the corker.vscode-micromamba extension.
Use tinyUSB as USB driver instead of vendor-specific drivers.
Improved visual appearance of Star Network Coord terminal ouput.
Renamed bsp/evk folder to bsp/evk1_4.
Print Hello World stats using time elapsed instead of TX count.
FixedWindows bootstrap now checks for missing DLLs required by micromamba, and installs them when needed.
Increase Hello World
MAX_PAYLOAD_SIZEfrom 20 to 30.Adjust Hello World connections
max_payload_sizefromMAX_PAYLOAD_SIZEtoMAX_PAYLOAD_SIZE + ENDING_NULL_CHARACTER_SIZE.
RemovedAudio Streaming application.
Audio Compression application.
Audio User Data application.
Audio High Resolution application.
Audio 4-Channel application.
Audio Mixer application.
Pairing Basic application.
Pairing Gaming Hub application.
Ranging application.
Shutdown pin test from BSP Validator.
Documentation
Release notes:
The documentation has been updated to reflect the new project structure, applications, hardware, and transceiver support.
AddedNew Audio Bidirectional application documentation.
New Audio Unidirectional application documentation.
New Datalink application documentation.
New Hello World RTOS application documentation.
New section in Hardware Description for the Quasar hardware.
New Viewing the Terminal section in Getting Started.
New Calibration section in the Wireless Core API documentation.
New Project Guidelines article in the Porting Guide.
New Facades and Backends article in the Porting Guide.
New SPARK Audio Core article in the Porting Guide.
New API reference for EVK1.4 BSP.
New API reference for Quasar BSP.
The Wireless Core documentation has been updated with the new SR1120 specificities.
New Clock Drift Compensation subsection Phase-Locked Loop (PLL) Adjustment (replaces Clock Steering).
ChangedThe Development Environment documentation has been updated.
The Getting Started documentation has been updated.
The Structure Overview documentation has been updated.
The Porting Checklist article of the Porting Guide has been updated.
RemovedRemoving ``-fno-omit-frame-pointer`` Flag` section in the Porting Optimizations article.
The Clock Drift Compensation Clock Steering (replaced by Phase-Locked Loop (PLL) Adjustment).
BSP iface article.
Ranging Core documentation.
Annexes from the Porting Guide.
cdc_enable from Audio Core API documentation.
Wireless Core
Release notes:
API overhaul and support for the new SR1120 transceiver.
AddedNew
SWC_ERR_NULL_TIMESLOT_DURATIONerror code to handle invalid timeslot durations of 0.New
SWC_ERR_INVALID_OPERATION_AFTER_SETUPerror code to handle invalid instructions that can only be done afterswc_setup().New
SWC_ERR_CCA_INVALID_PARAMETERSerror code to handle incorrect CCA settings.New
SWC_ERR_NO_CHANNEL_INITerror code to catch connection with no channel assigned.New statistics metric
packet_retry_count.New API call
swc_node_get_radio_product_modelto get the first radio’s product model.New API call
swc_node_get_radio2_product_model()to get the second radio’s product model.New API call
swc_node_get_radio_product_version()to get the first radio’s product version.New API call
swc_node_get_radio2_product_version()to get the second radio’s product version.New API call
swc_set_time_slots_sleep_level()to specify a sleep level per timeslot (SR1120-only).New
fallback_settings.tx_pulse_countin theswc_channel_cfg_tstructure.New
fallback_settings.tx_pulse_widthin theswc_channel_cfg_tstructure.New
fallback_settings.tx_pulse_gainin theswc_channel_cfg_tstructure.New Credit-Based Flow Control mechanism. Enable it via the
swc_connection_set_credit_flow_ctrl()API call.New
packet_ack_data_received_countstatistic inswc_statistics_tthat counts the reception of auto-reply frames with data.New
packet_ack_data_send_countstatistic inswc_statistics_tthat counts the transmission of auto-reply frames with data.New Datarate statistic in kbps included in the output string of
swc_connection_format_stats()API call.The structure
swc_fallback_info_tnow includes acca_event_countmember.
Changedswc_connection_init()now returns an error when an invalid address is provided (SWC_ERR_CONNECTION_ADDRESS).swc_radio_module_init()now returns an error when transceiver power up fails (SWC_ERR_RADIO_NOT_FOUND).The Wireless Core will now send one “sync frame” after receiving a connect event to sync the receiver’s stop-and-wait sequence.
Fallback power settings are now set per band in the
swc_channel_cfg_tstructure. They are now absolute values instead of relative to the channel’s power settings.Public headers have been moved to the Wireless Core root directory.
FixedSetting PAN ID LSB to 0xFF is now prevented and doing so will return a
SWC_ERR_PAN_IDerror code.Certification mode now properly emulates ACK frames.
Correctly handle cases where a transceiver IRQ happens after a disconnect request.
Shallow and Deep sleep IRQ handling.
Link margin overflow in the
swc_connection_get_fallback_info()API call.Not being able to drop frame when TTL-retry is set to 0.
Node device not able to ACK when using fast sync.
Certification mode in multi-radio systems.
Stop-and-wait sequence is not properly initialized on boot.
Stop-and-wait duplicate statistics being incremented twice instead of once.
Connection status with connection priority.
Certification mode with connection priority.
Transceiver power up delay.
RNSI and RSSI were not read properly while receiving auto-replies.
Removedfallback_settings.tx_pulse_count_offsetfromswc_connection_cfg_t.fallback_settings.tx_pulse_width_offsetfromswc_connection_cfg_t.fallback_settings.tx_pulse_gain_offsetfromswc_connection_cfg_t.packet_retry_countfromswc_statistics_t.
DeprecatedIn
swc_radio_cfg_t,spi_modemember is now ignored (unused) for the SR1020 transceiver; SPI mode is now forced toSPI_FASTinternally.
Audio Core
Release notes:
Some of the Audio Core’s function names were generalized to allow generic CODEC usage.
The fallback module was converted to be used as a processing stage.
AddedSampling Rate Conversion (SRC) is now compatible with multi-channel audio streams.
SRC support for 24-bit and 32-bit depths.
New
sac_cdc_pllprocessing stage for Clock Drift Compensation (CDC) by PLL tuning.New statistics structure for CDC resampling (
sac_cdc_resampling_stats_t).New API call
sac_cdc_format_stats()to format the CDC statistics as a string.New API call
sac_add_producer()to add a producer to another producer’s list.New API call
sac_node_memcpy()performs a safe data copy to a node.New API call
sac_set_extra_queue_size()to set the endpoint’s internal extra queue size.New API call
sac_endpoint_link()to link the queue of a consumer endpoint with a producer endpoint.New interface for the CDC process.
New
SAC_CHECK_STATUSmacro in thesac_utils.hfile.New error code
SAC_ERR_NOT_INITindicating that the SPARK Audio Core has not been initialized.New error code
SAC_ERR_FALLBACK_PROC_NOT_FOUNDindicating that a fallback process was not found in the processing stage list.New error code
SAC_WARN_PROCESSING_Q_EMPTYindicating that there aren’t any nodes available for processing.New error code
SAC_ERR_NODE_DATA_SIZE_TOO_SMALLindicating that a node is too small for the data that needs to be copied into it.The structure
sac_fallback_instance_tnow includes aconnectionmember.The structure
sac_pipeline_tnow includes a_internal.processing_queuemember. This queue is used to allocate output nodes for processing.The structure
sac_fallback_instance_tnow includes atick_frequency_hzmember.The structure
sac_fallback_instance_tnow includes aget_tickfunction pointer.The structure
sac_endpoint_tnow includes a_internal.extra_queue_sizemember.Defined default constants for
CDC_DEFAULT_RESAMPLING_LENGTH(1440) andCDC_DEFAULT_QUEUE_AVERAGE(1000) while allowing user to set usingtarget_compile_definitions.
ChangedFallback API calls now take input parameter
sac_fallback_module_instance_tand output parametersac_status_t.API call
sac_processing_stage_init()now takes a string as parameters (const char *name).API call
move_audio_packet_to_consumer_queue()now returns an error when no consumer node is available.Moved
consumer_link_margin_min_peakstatistic from thesac_pipeline_tstructure to thesac_fallback_link_margin_metrics_tstructure.Moved
consumer_cca_fail_count_peakstatistic from thesac_pipeline_tstructure to thesac_fallback_cca_metrics_tstructure.Reduced
SAC_MIN_PRODUCER_QUEUE_SIZEvalue from 3 to 1. The initialization will automatically increment the free queue size by one to allocate a node for the production event. The minimum free queue size is now 2.sac_pipeline_process()now treats the input node as read-only. For each processing stage, an output node is allocated and the input node is freed after. If the node is shared (copy count > 0) the node will not be returned to the free queue yet. Another node will be allocated for the next stage.Moved queue memory allocation from
sac_endpoint_init()tosac_pipeline_setup().sac_pipeline_setup()queue initialization sequence now initializes all endpoint of the list if it has not been done already.sac_pipeline_produce()now enqueues the produced node on all producers in the list.Renamed
sac_mixer_endpointtosac_dummy_endpointto make it reusable for other use cases.Refactored node names such as
input_node,output_nodeorprocessing_nodefor improved clarity.Producer’s queue data size now matches its configuration. Only the processing queue data size will use the maximum data size between both endpoints.
Mixing input pipeline consumer queue size does not increase the queue size anymore since the output pipeline has its own processing queue. It will not use the input pipeline consumer nodes for processing.
Public headers have been moved to the Audio Core root directory.
Renamed
sac_error_ttosac_status_t.Renamed
SAC_ERR_NONEtoSAC_OK.Renamed
SAC_ERR_PRODUCER_Q_FULLtoSAC_WARN_PRODUCER_Q_FULL.Renamed
SAC_ERR_CONSUMER_Q_EMPTYtoSAC_WARN_CONSUMER_Q_EMPTY.Renamed
SAC_ERR_BUFFERING_NOT_COMPLETEtoSAC_WARN_BUFFERING_NOT_COMPLETE.Renamed
SAC_ERR_NO_SAMPLES_TO_PROCESStoSAC_WARN_NO_SAMPLES_TO_PROCESS.Renamed
SAC_ERR_PROCESSING_Q_EMPTYtoSAC_WARN_PROCESSING_Q_EMPTY.
FixedUnhandled overflow condition when delayed consumer is not running.
Hardfault when consumer data size is smaller than producer data size but there aren’t any processes to reduce data size in between.
Audio producer overflow handling to make sure old nodes are flushed first.
Delayed producer overflow causing audio production to stop.
RemovedClock Steering processing stage.
cdc_inflated_packets_countmember from thesac_statistics_tstructure.cdc_deflated_packets_countmember from thesac_statistics_tstructure.link_margin_conn_packets_per_secondmember from thesac_fallback_instance_tstructure.main_conn_packets_per_secondmember from thesac_fallback_instance_tstructure.cdc_enablemember from thesac_pipeline_tstructure.API call
sac_pipeline_get_cdc_inflated_packets_count().API call
sac_pipeline_get_cdc_deflated_packets_count().API call
sac_pipeline_get_consumer_link_margin_min_peak().API call
sac_pipeline_get_consumer_cca_peak().sac_fallback_module_cfg_tstructure. The fallback module is now configured with the instance’s public fields.API call
sac_fallback_update_state(). Replaced by processing stage functionsac_fallback_process().API call
sac_fallback_update_stats(). Now handled by processing stage functionsac_fallback_process().API call
sac_fallback_gate_fallback_on_detect(). The processing stage functionsac_fallback_process()handles the audio header fallback field detection and sets the proper fallback state. The user can use API callsac_fallback_gate_is_fallback_on()instead.API call
sac_fallback_gate_fallback_off_detect(). The processing stage functionsac_fallback_process()handles the audio header fallback field detection and sets the proper fallback state. The user can use API callsac_fallback_gate_is_fallback_off()instead.
Quasar BSP
Initial release.
EVK1.4 BSP
AddedNew API call evk_audio_sai_deinit() to deinitialize the SAI.
ChangedMove HAL_IncTick call to TIM2 IRQ handler.
Drivers
No changes.
Libraries
Added[queue] New
data_sizemember added to thequeue_node_tstructure.
Changed[queue]
copy_countmember of thequeue_node_tstructure is now incremented when a node is enqueued on a normal queue. It will be decremented every time the node is dequeued.[queue]
copy_countmember of thequeue_node_tstructure is now initialized with a value to 0.
Removed[queue]
queue_inc_copy_count()private function.