Skip to content

Conversation

@Paciente8159
Copy link
Owner

Modified circular buffer design to support lock-free atomic operations.
Modified buffer logic to be Multi Produce Multi Consumer safe (can be safely used in (loop, thread, isr contexts).

@Paciente8159 Paciente8159 added HAL: multi platform HAL: multi platform enhancement enhancement labels Oct 5, 2025
- fixed macro buffer
- modified macro __ATOMIC__ and __ATOMIC_FORCEON__ to respect GCC naming conventions
- atomic operation macros now use GCC extension __typeof__
- Renamed ATOMIC to avoid conflicts with AVR
- RP2040 now uses SDK queue always
- modified disable/enable/get on ARM processors
- new buffer non blocking (try and continue) enqueue/dequeue
- buffer now holds void pointer for data
- default index unit is now uint32
- added ISR context aware macros
- fixed mutex to make proper use of atomic compare and set macros
- prevent mutex release from the incorrect context
- new cnc_yield macro
- modified several AVR ISR to NOBLOCK
- added ISR context aware to ARM MCU specific ISR calls
- Fixed WiFi on ESP32 chips (errors caused by the INI file)
- added option to run modules loop task in it's own custom low priority thread (RTOS systems)
- redesigned mutex macros similar concurrency support in C11
- modified soft spi locking (not required to explicitly lock on module)
- added new compatibility level that changes the main loop logic to improve Grbl compatibility.
- fixed NVM read address limits and startup blocks reading limits
- fixed DEBUG_STREAM build error
- removed RTC event
- renamed mutex to binary semaphore to reflect more accurately the type of resource it implements
 - added ENABLE_ITP_FEED_TASK enable if ENABLE_MAIN_LOOP_MODULES is set
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement enhancement HAL: multi platform HAL: multi platform

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants