|
搞了一个假期还是没有弄通!
在把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
******************************************
这是完成的打包! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|