small RTOS51若干问题急救

[复制链接]
2774|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

粉丝
快速回复 在线客服 返回列表 返回顶部