给单片机写个实时操作系统内核.docVIP

  • 0
  • 0
  • 约1.12万字
  • 约 20页
  • 2018-01-13 发布于浙江
  • 举报
给单片机写个实时操作系统内核!为了进一步把单片机的潜能发挥到极限,我一直想写个程序把单片机的所有资源都用光,但是如果依照单道程序顺序执行的方式,很难把MCU的CPU时间都充分利用,比如使用软件延时函数实际上就是在无谓地消耗着CPU的时间什么事情都不做,因为CPU一直在循环等待着条件结束,这相当于函数被阻塞了。 为了更明显地验证这一点,你可以在WINDOWS下打开VC6.0或其他的C语言编译器,写段代码如下: #include stdio.h void main(void) {while(1) ;} 意思是让CPU不做事情在等待,你猜,这句代码会消耗掉多少CPU时间? 答案会根据不同机型而不同,如果是单核CPU的话,这句话会消耗掉CPU接近100%的时间!如果是双核CPU,则只消耗掉50%左右,因为这段代码只运行在其中一个核,另外一个核还可以做别的事情,截图如下: 然后你可以测试下面这几句代码: #include stdio.h #include windows.h void main(void) {while(1) Sleep(100); } 这段代码实际上也是什么都不做,它不断地调用Sleep()函数,让它延时100毫秒再醒来,然后继续睡觉。现在你可以再打开任务管理器看一下CPU时间用了多少,答案是基本不用CPU时间!! 为什么同样地什么事情都不做,差别咋就这么大呢?这是因为

文档评论(0)

1亿VIP精品文档

相关文档