打印

small RTOS51若干问题急救

[复制链接]
1874|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhouwenbin1989|  楼主 | 2011-3-17 22:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近研究small rtos51,有点感觉了,但还是有些问题想不明白,希望哪位懂得大狭能给点建议,谢谢了.问题如下:
   一。为什么一个关于堆栈的系统函数,用汇编写的,同时他也给了C的代换函数,可是他说汇编里第一句PUSH     Os_Enter_Sum 不能用C代替,为什么?难道C不能对堆栈进行操作?
  二。为什么把汇编用C代替后他显示警告
    *** WARNING L15: MULTIPLE CALL TO SEGMENT
       SEGMENT: ?PR?C_OSCTXSW?OS_CPU_C
       CALLER1: ?PR?OSTICKISR?OS_CPU_C
       CALLER2: ?C_C51STARTUP
我查了好像警告是关于函数重入得问题。而且我替换汇编函数后,不能正确切换回高优先级任务了。
三。全局变量,局部变量在keil51下存放在哪里?
谢谢大家了,小弟我这几天为了这些问题都睡不好觉了

相关帖子

沙发
ayb_ice| | 2011-3-18 08:31 | 只看该作者
这里C代码其实只是示意性代码,说白了只是伪代码
系统函数必须重入,那样的话编译器不可能编译成重入代码,但用汇编写,可以重入,所以编译器有些时候没有人聪明,

使用特权

评论回复
板凳
zhouwenbin1989|  楼主 | 2011-3-18 12:37 | 只看该作者
2# ayb_ice
先谢谢了,另外那C语言中的reentrant有用吗?那为什么PUSH     Os_Enter_Sum连伪代码都不能实现?

使用特权

评论回复
地板
ayb_ice| | 2011-3-18 13:19 | 只看该作者
慢慢看吧,建议先看,再用TINY,再...

使用特权

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

本版积分规则

个人签名:在路上。人的一生很短,但是如果卑劣的过这一生,那么就太长了。

0

主题

112

帖子

1

粉丝