加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

2440 norflash 启动进不了中断解决

发布时间:2020-12-15 18:10:48 所属栏目:百科 来源:网络整理
导读:? 前一阵一直纠结一个问题,同样的中断测试程序,烧写到nandflash运行一点问题没有,烧到norflash启动就发生诡异现象了,今天终于发现问题在哪了,以前写程序的时候因为是从nandflash启动的,所以程序一开始在片内的4K sram 运行,我就把堆栈设置在sram的最
?


前一阵一直纠结一个问题,同样的中断测试程序,烧写到nandflash运行一点问题没有,烧到norflash启动就发生诡异现象了,今天终于发现问题在哪了,以前写程序的时候因为是从nandflash启动的,所以程序一开始在片内的4K sram 运行,我就把堆栈设置在sram的最后面,sp设置为地址4096,但是现在是从norflash启动的,sram已经映射到0x40000000开始的地方了,所以原来的基于nandflash启动的代码中的堆栈指针地址必须进行修改,程序运行就没有问题了,下面把修改前后的代码记录下来:

1.原来的代码,烧到nandflash里面的

head.s

@本程序为定时器中断测试程序,使用0.5s发生一次的timer0中断

.text
.global _start
_start:
	b		Reset
	b		. @undefined instruction
	b		. @swi
	b		. @pregetch instruction
	b		. @data abort
	b		. @Reserved
	b		HandleIRQ @irq
	b		. @fiq
	
Reset:
	ldr		sp,=4096 @set the stack pointer of sys mode to 4096
	bl		disable_watchdog
	bl		init_led
	mov		r0,#1
	bl		blink
	bl		init_sdram
	mov		r0,#2
	bl		blink
	bl		copy_sdram
	mov		r0,#3
	bl		blink
	ldr		pc,=on_sdram
on_sdram:
	msr		cpsr_c,#0xd2 @set cpu to irq mode
	ldr		sp,=3072 @set the stack pointer of irq mode to 3072
	msr		cpsr_c,#0xdf @reset cpu to sys mode
	
	bl		init_clock
	bl		init_timer0
	bl		init_irq
	msr		cpsr_c,#0x5f @enable irq
	bl 		main
	b		.
	
	.ltorg
	.ltorg
	.ltorg
	
HandleIRQ:
	sub		lr,lr,#4
	stmdb	sp!,{r0-r12,lr}
	ldr		lr,=next
	ldr		pc,=timer0_func
next:
	ldmia	sp!,pc}^ @return to main
	
	.ltorg
	.ltorg
	


?

2. 修改后运行正确的代码,烧写到norflash

head.s

@本程序为定时器中断测试程序,使用0.5s发生一次的timer0中断

.text
.global _start
_start:
	b		Reset
	b		. @undefined instruction
	b		. @swi
	b		. @pregetch instruction
	b		. @data abort
	b		. @Reserved
	b		HandleIRQ @irq
	b		. @fiq
	
Reset:
	ldr		sp,=0x40001000 @set the stack pointer of sys mode to 0x40001000
	bl		disable_watchdog
	bl		init_led
	mov		r0,=0x40000c00 @set the stack pointer of irq mode to 0x40000400
	msr		cpsr_c,pc}^ @return to main
	
	.ltorg
	.ltorg
	


?

修改过后中断测试程序就可以正确运行了。?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读