搜索
bottom↓
回复: 3

【已解决】IAR 下初始化mini 2440 栈指针问题

[复制链接]

出0入0汤圆

发表于 2011-5-20 17:49:29 | 显示全部楼层 |阅读模式
前段时间 搞来一块 mini2440 起初用Keil开发但是老是在调试的时候出现错误,改为更稳定的IAR环境开发  磕磕碰碰几天  现在遇到一个问题

从启动代码(参照Keil启动代码修改而来) 进入main 再调用其他函数,然后——————然后程序就跑飞了…………
Jlink 调试确定为SP指针问题,不过修改多次 要么和icf冲突 要么达不到效果  特来求助

(原文件名:1.JPG)


(原文件名:2.JPG)


(原文件名:3.JPG)


(原文件名:4.JPG)


(原文件名:5.JPG)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2011-5-20 21:06:52 | 显示全部楼层
发现一个怪问题  IAR 调用 c 函数 栈指针 是向下减的----  特意做了一个 递归 测试

出0入0汤圆

 楼主| 发表于 2011-5-20 21:23:11 | 显示全部楼层
还是自己搞定了  不知道正规的做法是怎么做的

出0入0汤圆

 楼主| 发表于 2011-5-20 21:25:18 | 显示全部楼层
;//========================栈空间定义===========================================
        SECTION CSTACK:DATA:ROOT(2)
        DATA
CSTACK_BASE
        DS8 __ICFEDIT_size_cstack__
CSTACK_TOP
        SECTION SVC_STACK:DATA:ROOT(2)
        DATA
SVC_STACK_BASE
        DS8 __ICFEDIT_size_svcstack__
SVC_STACK_TOP
        SECTION IRQ_STACK:DATA:ROOT(2)
        DATA
IRQ_STACK_BASE
        DS8 __ICFEDIT_size_irqstack__
IRQ_STACK_TOP
        SECTION FIQ_STACK:DATA:ROOT(2)
        DATA
FIQ_STACK_BASE
        DS8 __ICFEDIT_size_fiqstack__
FIQ_STACK_TOP
        SECTION UND_STACK:DATA:ROOT(2)
        DATA
UND_STACK_BASE
        DS8 __ICFEDIT_size_undstack__
UND_STACK_TOP
        SECTION ABT_STACK:DATA:ROOT(2)
        DATA
ABT_STACK_BASE
        DS8 __ICFEDIT_size_abtstack__
ABT_STACK_TOP
       
        LDR                R0,=UND_STACK_BASE
        MSR     CPSR_c, #Mode_UND|I_Bit|F_Bit
        MOV     SP, R0
       
        LDR                R0,=ABT_STACK_BASE
        MSR     CPSR_c, #Mode_ABT|I_Bit|F_Bit
        MOV     SP, R0
       
        LDR                R0,=FIQ_STACK_BASE
        MSR     CPSR_c, #Mode_FIQ|I_Bit|F_Bit
        MOV     SP, R0
       
        LDR                R0,=FIQ_STACK_BASE
        MSR     CPSR_c, #Mode_IRQ|I_Bit|F_Bit
        MOV                SP,R0
       
        LDR                R0,=SVC_STACK_BASE
        MSR     CPSR_c, #Mode_SVC|I_Bit|F_Bit
        MOV                SP,R0
       
        LDR                R0,=SVC_STACK_BASE
        MSR     CPSR_c, #Mode_SVC|I_Bit|F_Bit
        MOV                SP,R0
       
        LDR                R0,=CSTACK_TOP
        MSR     CPSR_c, #Mode_USR
        MOV         SP,R0


define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   {section CSTACK};
define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ {section SVC_STACK};
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ {section IRQ_STACK};
define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ {section FIQ_STACK};
define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ {section UND_STACK};
define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ {section ABT_STACK};
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 15:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表