@AndrewBCN
agreed that multi-core creates 'unnecessary complexities' and it is more than just an 'RTOS' problem.
there would be questions like if an interrupt fires, which core would it run on?
'conventionally' for a single core the cpu is either in thread mode (normal run) or in an interrupt (isr) mode.
but in this case when one of the core is in interrupt mode, the other core could still be running a thread.
this creates a lot of 'unexpected' situations, e.g. if a circular buffer is used, both the interrupt thread and main thread could update the index registers.
this would at least cause data loss or in a worse case place things in an inconsistent state. there would be more of such cases.
unfortunately, the way that things are evolving means that there'd be more of such 'dual core' mcus hitting the markets.
the notion is that each core can possibly handle mutually exclusive - different IO, and hence allow more overlapping IO or processing to occur.
e.g. one core could handle the radio say bluetooth or wifi this is already happening - STM32WB !
https://www.st.com/en/microcontrollers- ... eries.html
while the other can process sensor inputs (e.g. count steps on accelerometer, monitor heart beats on the IR spo2 sensor), handle lcds, maintain time and general os functions etc this use case is most common for a *smart watch* or *fitness tracker*
what is often neglected is the extra complexity that these simultaneous io creates, one of those scenarios is as like mentioned in the 1st paragraph.
so things like pico probably neglect some of that and developers end up having to handle the various 'hard to do' synchronizations / mutex locking etc
deadlocks are very likely on mcus as io is involved. a simple locking situation where thread 1 locks port A followed by port B while thread 2 locks port B followed by port A results in a deadlock. and these can be very difficult to debug
but nevertheless as pico and stm32wb and more has shown, this trend of multi-core is going to happen despite all the complexities and non-best practices. that's simply because multi-core gives the sales and product team more things to hype about. a trouble is multi-core is not the same as having 2 separate mcus with each having its own independent memory and io. IO and memory is shared and that is where is the problem.