打印

S3C2440程序碰到一个奇怪的问题

[复制链接]
1388|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
arm2009wzm|  楼主 | 2013-7-11 10:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序执行完汇编的初始化程序后执行
        bl       Main
转入C语言执行。C语言的开始部分是这样的
        int Main(int argc, char **argv)
        {
                 IRQ_Init();                  // 中断矢量初始化,先屏蔽所有中断,所有中断都直接返回
                 ........
        }   
奇怪的是程序一直停止在Main处不能往下执行,反汇编看程序是如此的

        Main            [0xe92d4010] *   stmfd    r13!,{r4,r14}
        30004254   [0xeb00022f]      bl       IRQ_Init
        30004258   [0xeb002082]     bl       SysClock_Init
        3000425c   [0xeb0002c9]     bl       LcdLight_On
        30004260   [0xeb0002da]     bl       Lcd_Init

用汇编单步执行C程序也不往下,一直停留在 stmfd    r13!,{r4,r14} 指令处,如果把 bl       IRQ_Init 设置为当前的执行指令,程序却能往下运行,真奇怪啊!
请教!



相关帖子

沙发
zhaigch| | 2013-7-11 22:55 | 只看该作者
有没有设置堆栈指针SP?程序是在内部的ram(或nand flash)中运行还是在sdram中运行还是在nor flash中运行?什么都不说清楚,怎么分析!

使用特权

评论回复
板凳
arm2009wzm|  楼主 | 2013-7-31 15:13 | 只看该作者
已经解决:是断点问题,断点太多(包括单步调试时的内部断点),使用菜单中命令
              Execute --> Delete All Breakpoints
程序就可以往下运行了

使用特权

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

本版积分规则

10

主题

29

帖子

0

粉丝