我程序一直都是裸体的,在裸体中发现了几个问题:
(1)WARNINGL15:MULTIPLECALLTOSEGMENT--函数重入
其实这个问题实际上就是函数重入问题,在操作系统的多线程很常见。例如在主循环里调用了一个函数,而在中断服务中,你又一次调用了同样的函数。这样当主循环运行到该函数中时,一旦产生中断,则在中断里又再次调用该函数!而使得该子函数发生了重入,这时,尽管概率很低,但是很可能出错!
(2):当主函数与中断函数共享变量问题(类似两个线程共享资源的问题)
当主函数与中断函数共用变量时,可能发生:
例如:当变量的其中一个字节读入到
寄存器中时,发生中断,中断中改写了变量值。当中断返回时,变量的其他字节继续被读入到寄存器中,造成新旧字节组合错误。
这些问题感觉都很隐蔽,如果出现了,可能只能通过反汇编才能看到。个人感觉要有操作系统的思想,理解和避免这些问题就容易些了。
网友评论:不过楼主既然说是“裸奔”,版主就不宜给人穿“酷”子啦!呵呵
网友评论:其实就是简单的裸奔系统,都应该加入操作系统的思想。
网友评论:学习啦
网友评论:嗯