我正在尝试实现微控制器的仿真.该仿真并不意味着对一个特定微控制器进行时钟周期精确表示,而是检查代码的一般正确性.
我想过有一个执行普通代码的“主线程”和一个执行ISR代码的第二个线程.每当需要运行ISR时,ISR线程就会挂起“主线程”.
当然,我想要一个阻止中断的功能.
我想用一个互斥体解决这个问题,ISR线程只要执行ISR代码就会保留,而主线程只要“中断被阻塞”就会保存它.
然后可以通过暂停但杀死主线程(以及启动执行POR功能的新线程)来实现POR(上电复位).
Windows API提供了必要的功能.
但似乎不可能使用posix线程(在linux上)执行上述操作.
我不想改变实际的硬件独立微控制器代码.因此,插入任何内容以检查挂起的中断都不是一种选择.
在非性能良好的点接收中断是可取的,因为这也发生在微控制器上(除非阻止中断).
有没有办法在Linux上挂起另一个线程? (我认为,调试器必须以某种方式使用该选项.)
拜托,不要告诉我这是一个坏主意.我知道在大多数情况下都是如此.但主代码不使用标准库或锁/互斥量/信号量.