avrtos v1.3.0
Key Features:
- (experimental feature) New MCP2515 CAN driver: Introduced a new CAN driver for
the MCP2515 controller,
enabling CAN bus communication over SPI. IntroduceCONFIG_DEVICE_MCP2515
configuration option to enable or disable the MCP2515 driver. - Documentation Overhaul: Improved documentation across multiple modules, including
mutexes, semaphores, signals, FIFOs, flags, standard I/O, system time, timers,
events, atomic operations, idle thread, and various kernel headers. - Kernel State Structure: Introduced the
z_kernel
structure to centralize all
kernel state variables. - Thread Sleep Improvement: Reworked the
z_pend_current()
function and modified
k_sleep()
to utilize it. - Semaphore Enhancement: Added
k_sem_cancel_wait()
function to allow cancellation
of threads waiting on a semaphore. - Renamed macros:
- Configuration Options Renaming
- Renamed several configuration macros for better consistency and clarity:
CONFIG_KERNEL_DEBUG
toCONFIG_KERNEL_SYSCLOCK_DEBUG=0
CONFIG_KERNEL_TIME_SLICE_TICKS
toCONFIG_KERNEL_TIME_SLICE_US
K_EVENTS_PERIOD_TICKS
toZ_EVENTS_PERIOD_TICKS
K_TIMERS_PERIOD_TICKS
toZ_TIMERS_PERIOD_TICKS
- Renamed several configuration macros for better consistency and clarity:
- SPI Driver Update: Renamed
spi_mode_t
tospi_role_t
and introduced a new
spi_mode_t
for better clarity in the SPI driver.
- Configuration Options Renaming
Minor changes:
- New Sample: Introduced a
hello-world
sample to help new users
get started quickly. - Function Relocation: Moved uptime functions to the
systime.c
file. - UART Configuration: Changed the default UART baud rate to 115200 bps for
consistency across the platform. - QEMU Configuration: Defined
icount auto
in QEMU settings. - Makefile Upload Behavior: Adjusted the Makefile to flash the most recently
built sample when uploading
Bug fixes:
- I2C Driver Frequency Calculation Fix: Corrected the
FREQ_CALC
macro to ensure
accurate frequency settings in the I2C driver. - Timer Driver Function Correction: Fixed
ll_timer16_start()
and introduced
ll_timer16_get_tcnt()
. - Workqueue Module Macro Fix: Fixed the
K_WORK_DELAYABLE_INIT
macro and
reintroducedz_delayable_work_trigger()
to restore delayable workqueue functionality. - Kernel Synchronization:
- Scheduler Lock Improvement: Modified the kernel to lock the scheduler only
if it is not already locked, preventing potential deadlocks.
- Scheduler Lock Improvement: Modified the kernel to lock the scheduler only
Full Changelog: v1.2.1...v1.3.0