>>949
int が8bitだと厳しいけど16bit以上で かつ cnt++ が inc cnt になるならば

volatile int cntSemaphore = 0;

if (0==(cntSemaphore++)){
 ・・・危険な処理・・・
}
cntSemaphore++;

で十分セマファの代わりになるよ。
少なくともこの32bitカウンタが溢れるより先にウオッチドッグがかかる