QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1337|回复: 3

44b0为什么寄存器写不进去!

[复制链接]
发表于 2006-1-3 14:30:13 | 显示全部楼层 |阅读模式
搞了一个假期还是没有弄通!
在把ucos移植到2410上,编译通过后发现写中断控制寄存器写不进去。
改写hello4skyeye也是一样的效果。下面的代码是我在仿真44b0的程序,
程序是能跑的,串口正常,watchdog的寄存器和中断的寄存器都写不进去,全是 F.
那位大虾指点一下问题出在那里!同一个函数我在真板上跑通的阿!
**************************
hello.c
void hello(void)
{       
        int i;
        char * hellostr="helloworld";
        long* paddr=(long*)0x01d20028;
        *paddr=0x1aaaa;
        paddr=(long*)0x01d00020;  //0xfffd001c;
        //(long *)0x01d20028=(long)0x28;
        for(i=0;i<10;i++)
        {
                * paddr=hellostr;
        }
        return;       
}
void initTimer(void)
{
        int i;
        long* paddr=(long*)0x1d30004;
        *paddr=0x6000;
        paddr++;
        *paddr=0x6000;
        paddr--;
        paddr--;
        *paddr=0x8024;
        paddr=(long*)0x01e00000;
        *paddr=0x05;
        paddr=(long *)0x01e0000c;
        *paddr=0x03ff7fff;
}
**************************************
START.S

begin:
        b      Reset_begin
        b      .
        b      .
        b      .
        b      .
        b      .
        b      IRQ_handle
        b      FIQ_handle
Reset_begin:       
        @set up irq stack
        mov    r0, #0xd2                @ make irq mode with all irqs disabled
        msr    cpsr, r0
        ldr    sp, =irq_stack           @ set sp_irq = irq_stack
        bl     initTimer
        mov    r0,#52
        msr    cpsr,r0
        bl     hello
        b      begin
IRQ_handle:
        @handle irqs
        b      .
FIQ_handle:
        @handle fiq
        b      .
        b      begin
.data
        .align  4
irq_stack:
        .space        4096
******************************************
这是完成的打包!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2006-1-5 10:36:00 | 显示全部楼层
见鬼了,我刚才把修改后的hello4skyeye调到win下用adx和真的44b0板调试,
adx很好的认出了arm-elf工具做成的影像文件,还跟对应的hello.c
联系起来了,除了不能很好的对应每一行外,一切正常!
最重要的是,我的程序在真板子上是能引起中断的阿!
为什么在skyeye下就连寄存器都写不进去呢!我真倒霉:-(

那位大虾帮忙调试调试,我用的是skyeye-0.94 for debian的bin包,
系统是hiweed 0.7的,不知道是不是版本或系统的问题。
希望高手门赶快把1.0 1.2也作出bin文件来,我make 1.0老出错,testsuit 的skyeye只能跑,不能调试!
回复

使用道具 举报

 楼主| 发表于 2006-1-7 21:59:17 | 显示全部楼层
刚才自己编译了1.0和1.2rc3,编译很顺利,可惜启动后都听在start at 0xxxxxxx地址的提示处,之后就成了输入器,打什么都没反应了!也不见占cpu!
看来拿skyeye调试程序前要先学会调试skyeye:-)
回复

使用道具 举报

发表于 2006-1-8 15:32:25 | 显示全部楼层
>程序是能跑的,串口正常,watchdog的寄存器和中断的寄存器都写不进去,全是 F.
I think serial run normally .So at the least the serial rgister can be written. I guess watch dog is not simulated at all. You can refer to the source file:
http://gro.clinux.org/scm/cvsweb.php/~checkout~/skyeye_gdb_v5.3/sim/arm/skyeye_mach_at91.c?rev=1.14&contenttype=text/plain&cvsroot=skyeye
>看来拿skyeye调试程序前要先学会调试skyeye:-)
It is necessary that use gdb to trace skyeye if you want skyeye to run  something that different with testsuite.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-30 06:18 , Processed in 0.039588 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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