Most of the changes are various bugfixes provided by the community. Thanks a lot guys, I really appreciate the time and effort you spent on making this project better!
- Fix: at least on ARM Cortex-M7 when built with the "optimize for speed" option, and maybe also on M3, M4 and some other ARMs, sometimes the context switch did not happen in time, and it was causing issues in e.g.
tn_eventgrp_wait
, where the waiting result was wrong. Thanks to Anatol Shiro for identifying and fixing this bug; - Fix: when the system is recovering from a deadlock (when one of the tasks stopped waiting after a timeout), the kernel was stuck in an endless loop. Thanks to Travis Griggs for identifying and fixing this bug, as part of his effort to implement an even better set of tests for TNeo;
- Fix: when creating a higher-priority task from a lower-priority task, and the
TN_TASK_CREATE_OPT_START
flag was set, the kernel should switch context to the new task right away, but it wasn't happening. Again, thanks to Travis Griggs for this fix; - Fix: the project was unable to build for 64-bit platforms where
unsigned long int
andint
have different sizes. Thanks to alecoding for the fix; - Fix: the project was unable to build without
#TN_USE_MUTEXES
or#TN_MUTEX_DEADLOCK_DETECT
; - Added support of
-pedantic
mode for Cortex-M architectures.