CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

在Keil C中调试uc/OS-II出现的一个问题,百思不得其解!

楼主flyingcar(uClinux)2005-03-06 17:18:44 在 C/C++ / C语言 提问

在函授void   OSInit   (void)中调用  
  OSTaskCreate(OSTaskIdle,   (void   *)0,   &OSTaskIdleStk[OS_TASK_IDLE_STK_SIZE   -   1],   OS_IDLE_PRIO);  
   
   
  执行到OSTaskCreate(....)前一句   sp是0x19,  
  执行到OSTaskCreate(....)时,sp仍是0x19.  
  应该是0x1b才对啊!  
  难道有什么特别处理吗? 问题点数:80、回复次数:9Top

1 楼goodluckyxl(被人遗忘的狗)回复于 2005-03-06 17:56:33 得分 20

汇编的函数体进入的话  
  确实SP会+2保存当前函数地址  
   
  c没写过   -_-#Top

2 楼xuelong_zl(点雨点[我身上咋就没MM的香水味涅??#-_-])回复于 2005-03-06 18:22:58 得分 20

我没学过这些东东,嵌入式的吧,我写一下自己想到的东东吧  
   
  r()  
  {  
  }  
  main()  
  {  
  r();//记录printf函数的地址  
  printf("");//现在的地址与上面记录的是一样的  
   
  我也不知道说这些有没有用  
  }Top

3 楼xuelong_zl(点雨点[我身上咋就没MM的香水味涅??#-_-])回复于 2005-03-06 18:36:47 得分 20

上面说的是在看函数调用机制时看到的,楼主也可以看看这方面的资料Top

4 楼UPCC(杂食动物)回复于 2005-03-06 18:41:50 得分 20

执行到OSTaskCreate(....)时,sp仍是0x19.  
  应该是0x1b才对啊!  
  -----------------  
  返回在就在0x1b上获取!在调用OSTaskCreate(....)过程是没有占0x1b这个地址的!这个地址为返回值所占!!  
  (我只学过一点汇编的而已)  
  不是是否正确!请指点Top

5 楼dongpy(51-->ARM)回复于 2005-03-06 18:44:34 得分 0

是在单片机上跑的?  
  uc/OS-II不太熟.  
  OSTaskCreate会不会是一个宏呢?Top

6 楼flyingcar(uClinux)回复于 2005-03-07 09:04:14 得分 0

调用有的函数时sp会加2,而在调有的函数时sp不变,  
  ????????????????????????  
  Top

7 楼dongpy(51-->ARM)回复于 2005-03-07 11:53:52 得分 0

而在调有的函数时sp不变,  
  =================================================================================  
  可能是没有通过CALL来调用函数,而是通过类似内联或宏的方式,把函数体直接拷贝过来了.  
  不然没法解释了.  
  通过CALL指令(或类似指令)调用函数,函数返回地址肯定要压栈的.Top

8 楼goodluckyxl(被人遗忘的狗)回复于 2005-03-07 12:08:15 得分 0

macro_push   macro    
          push   acc  
          endm  
  ;是不需要sp+2的  
   
   
  Top

9 楼dongpy(51-->ARM)回复于 2005-03-07 13:49:15 得分 0

macro_push   macro    
          push   acc  
          endm  
  ;是不需要sp+2的  
  ==========================  
  不太明白意思!    
  acc是单字节的吧.Top

相关问题

  • c#?!?!?!
  • :)C#
  • C#!!!!!
  • C
  • c++
  • C#?
  • C#
  • c++
  • C#?
  • c++

关键词

  • 函数
  • os
  • 执行
  • ostaskcreate
  • 调用
  • 地址
  • sp
  • macro
  • acc
  • 返回

得分解答快速导航

  • 帖主:flyingcar
  • goodluckyxl
  • xuelong_zl
  • xuelong_zl
  • UPCC

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo