打印

试了下IAR8051,支持函数重入。

[复制链接]
2060|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ATmega16|  楼主 | 2007-10-18 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
试了下IAR8051,支持函数重入。 


#include <ioAT89S51.h> 
unsigned long FUN(unsigned long n) 

  if(n==1)return 1; 
  else return n*FUN(n-1); 

  
int main() 

   unsigned long a; 

  a=FUN(4); 
   
  while(1); 


这么说可以移植操作系统到IAR 8051上了。 

相关帖子

沙发
mxh0506| | 2007-10-18 12:46 | 只看该作者

函数是否可重入和程序的写法有关

使用特权

评论回复
板凳
现实主义| | 2007-10-18 13:28 | 只看该作者

函数重入是操作系统方面的概念

函数重入是操作系统方面的概念.不是编译方面的概念。
与程序的编写有关,与用什么编译器无关.

所谓可重入函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入函数不能由超过一个任务所共享。

使用特权

评论回复
地板
ayb_ice| | 2007-10-18 13:35 | 只看该作者

KEIL也可以重入啊。。。

使用特权

评论回复
5
redriver| | 2008-6-20 20:03 | 只看该作者

Keil的Overlay

恩,Keil也可以重入,使用仿真栈,但是代码量比较大貌似。
Keil的Overlay是个漂亮的魔鬼,在工程不大的情形下,用用感觉不错,代码量挺少;但是工程一大,Overlay的弊端就显露无遗,每个函数都是不可重入——由于在同一调用树上的两个叶子函数,其局部变量是放在同一个区域,相当于因次这些函数都有一个隐式的全局变量。Overlay彻底颠覆了C栈的概念。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

109

主题

229

帖子

0

粉丝