仅仅有中断的系统中对资源进行同步访问,
是不是仅仅需要一个bool变量就够了?
因为ISR一旦启动就必须完全执行完毕.
所以:实质上代码不会同时运行.
例如资源是:
int resource;
在主线程和中断处理程序中都会访问并修改.
如果要同步访问,则新增
bool isLocked;
main()
{
...
if(!isLocked)
{
isLocked = true;
//access resource
isLocked = false;
}
...
}
ISR()
{
...
(同main函数的代码.)
...
}
这样就可以了? |