当前位置: 首页 > news >正文

【stack pointer 】The stack pointer for stack is outside the stack range

1、

Debugging using IAR Embedded Workbench


Because the IAR debugger is not presently aware of Micrium’s μC/OS-III operating system, the
following error may be reported when the debugger is halted:
Mon Sep 20 16:24:14 2010: The stack pointer for stack 'CSTACK' (currently
0x200023D8) is outside the stack range (0x20000000 to 0x20000400)
Ignore this error message as it does not affect debugging.

原文:http://www.ti.com/lit/ug/spmu164a/spmu164a.pdf

outside the stack range (Memory:0x5400 to Memory:0x5C00)

2、

在使用iar for msp430调试msp430f247的时候,在仿真过程中出现上述的warnning,觉得很奇怪。因为我只是跳入一个子程序而已,不应该占用这么多的堆栈空间。被调用的子程序开头如下:
void spitest()
{
    unsigned char firstdata[128];
    unsigned char seconddata[128];
    unsigned char i;
    Led_Init();
    Led_On();
    Led_Off();
    .........
}
    仔细查看该段代码对应的汇编,如下:
spitest:
    0081E8    8031 0100        sub.w    #0x100,SP
    0081EC    12B0 871C        call    #Led_Init
    0081F0    12B0 8716        call    #Led_On
    0081F4    12B0 8710       call    #Led_Off
    .........
总结:出现该warrning的是编译器的原因,编译器优化初始化数组的方法为占用堆栈,即汇编中的代码“sub.w #100,SP ” ,占用的实在太多,所有导致warrning。同时注意到当spitest子程序跑完后,sp指针会重新恢复正常,所有这个仿真警告是不影响正常程序的。

相关文章:

  • 【浮点数转16进制】小数(单精度浮点数)转16进制字节
  • 【VISIO绘图】VISIO绘图 学习笔记
  • 【FLASH 操作】FLASH 读写等操作 学习
  • 【ARM9】ARM 2440 学习笔记
  • 【学习经验】学习经验总结
  • 【C到C++】C到C++ 学习笔记 【概念】
  • 【IAR外部编辑器】IAR 使用外部编辑器(VS2005/2008/2010等)的设置
  • 【捕获比较模式】msp430定时器比较捕获理解
  • 【C/C++】C语言signal信号|软中断信号|程序捕获Ctrl+C 信号
  • 【setjmp和longjmp 】 C语言的非局部跳转:setjmp和longjmp(跨函数长跳转)
  • 【C到C++】关于 Complex (复数类)
  • 【C到C++】C++中的抛出异常throw 和异常处理try- catch
  • 【托管引用】C++/CLI中的引用类型
  • 【C到C++】简单数据库
  • 【ATL CLR MFC Win32 】ATL CLR MFC Win32 常规 的区别
  • ES6指北【2】—— 箭头函数
  • Asm.js的简单介绍
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • idea + plantuml 画流程图
  • laravel5.5 视图共享数据
  • Less 日常用法
  • Lucene解析 - 基本概念
  • Netty源码解析1-Buffer
  • Python socket服务器端、客户端传送信息
  • Service Worker
  • Vue组件定义
  • XForms - 更强大的Form
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 模型微调
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 我的业余项目总结
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 在electron中实现跨域请求,无需更改服务器端设置
  • #includecmath
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (09)Hive——CTE 公共表达式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (二)换源+apt-get基础配置+搜狗拼音
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .Net Core缓存组件(MemoryCache)源码解析
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET gRPC 和RESTful简单对比
  • .NET 命令行参数包含应用程序路径吗?
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • /var/spool/postfix/maildrop 下有大量文件