关于中断调试的方法!恼火

[复制链接]
1530|0
手机看帖
扫描二维码
随时随地手机跟帖
luocolor|  楼主 | 2007-1-28 00:01 | 显示全部楼层 |阅读模式
我现在的情况是:

已经写好了一些程序,里面的首要功能类似bootloader.然后有sctter文件将vector如下:
FLASH 0x8000
{
    FLASH 0x8000
    {
        init.o (Init, +First)
        * (+RO)
    }

    32bitRAM 0x0000
    {
        vectors.o (Vect, +First)
        interrupt.o
        * (+RW,+ZI)
    }

    HEAP +0 UNINIT
    {
        heap.o (+ZI)
    }

    STACKS 0x40000 UNINIT
    {
        stack.o (+ZI)
    }

}
现在的问题是:

因为板子上本来就有一个bootloader运行着在,板子上本身跑的bootloader需要地址0x0后的32k单元.
我用bootloader提供的指令load这个ads生成的.bin文件,

如果运行g 0x8000,程序死在那里,没有一点反应.我觉得,这是因为bootloader在0x0那里占着位置,所以运

行的时候才出问题.

但是,如果我不用scatter形式生成.bin,而用simple,ro指定位0x8000,rw不指定,程序却能从串口打印一些

我想要的,预料之中的信息,但不完全.不完全的原因是其他我想要的输出是和irq中断处理有关的.我用

simple形式生成.bin,那么,无疑在地址0x0处不能放置我写的vector在那里.所以,即使板子的irq到来,我

也不能运行我的程序.


我现在想了下,如果将我的程序的scatter文件中的FLASH后的地址改成remap后flash处的地址,然后将.bin

下载到flash开始的地方,那样在板子重新上电的时候,我的程序应该就能运行了.

各位说下,这样可用么?

另外,看了下armulator的semihosting,倒是可以利用这种机制,但是如果这样需要armulator来模拟我所要

的硬件.按照我现在的水平,还有时间的考虑,这样估计不行了.

各位dx,还有其他的方法,我可以用来完成我的调试么?比如用simple形式生成的.bin有方法来完成么?


我是初学者中的初学者啊,各位说说建议把.!

相关帖子

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

本版积分规则

40

主题

105

帖子

0

粉丝