共2条
1/1 1 跳转至页
44B0,FLASH 有关44B0程序写入FLASH不能运行的问题!

问
下面是S3C44B0初始化阶段的代码,在调试的时候,但是写到FLASH里程序就死在了对内存初始化的地方了!!硬件是没有问题的,我用其它的程序可以的,就是这个程序不行!请高手指点一下!
mrs r0, cpsr ;enter svc mode and disable irq,fiq
bic r0, r0, #MODEMASK
orr r0, r0, #(SVC32Mode :OR: IRQ_BIT :OR: FIQ_BIT)
msr cpsr_c, r0
ldr r0,=0x01d20028
ldr r1,=0x00000001
str r1,[r0]
ldr r0,=0x01d2002c
ldr r1,=0x00000001
str r1,[r0]
ldr r0,=WTCON ;watch dog disable
ldr r1,=0x0
str r1,[r0]
ldr r0,=INTMSK
ldr r1,=0x07ffffff ;all interrupt disable
str r1,[r0]
;****************************************************
;* Set clock control registers *
;****************************************************
ldr r0,=LOCKTIME
ldr r1,=0xfff
str r1,[r0]
[ PLLONSTART
ldr r0,=PLLCON ;temporary setting of PLL
ldr r1,=((M_DIV<<12)+(P_DIV<<4)+S_DIV) ;Fin=10MHz,Fout=40MHz
str r1,][r0]
]
ldr r0,=CLKCON
ldr r1,=0x7ff8 ;All unit block CLK enable
str r1,[r0]
;****************************************
;* change BDMACON reset value for BDMA *
;****************************************
ldr r0,=BDIDES0
ldr r1,=0x40000000 ;BDIDESn reset value should be 0x40000000
str r1,[r0]
ldr r0,=BDIDES1
ldr r1,=0x40000000 ;BDIDESn reset value should be 0x40000000
str r1,[r0]
;****************************************************
;* Set memory control registers *
;****************************************************
ldr r0,=0x01d2002c
ldr r1,=0x00000000 ;点灯
str r1,[r0]
;程序死在这里面了,不知道怎么回事
ldr r1,=SMRDATA
ldmia r0,{r1-r13}
ldr r0,=0x01c80000 ;BWSCON Address
stmia r0,{r1-r13}
ldr r0,=0x01d2002c
ldr r1,=0x00000001
str r1,[r0]
大家帮忙看看是怎么回事! 答 1: 下面的程序!后面接着的一段程序是存储器控制器的参数配置,你的bank1时序是否修改?能否正常工作,周期改小一点试试看。 答 2: 我将BANK0的所有参数改成最大了还是不行!我将BANK0的所有参数改成最大了还是不行!
真不知道是什么鬼问题? 答 3: ... ;程序死在这里面了,不知道怎么回事
ldr r1,=SMRDATA
ldmia r0,{r1-r13}
ldr r0,=0x01c80000 ;BWSCON Address
stmia r0,{r1-r13}
第一句应该是ldr r0,=SMRDATA,你的是R1 答 4: 抱歉,这是我的手误!!
mrs r0, cpsr ;enter svc mode and disable irq,fiq
bic r0, r0, #MODEMASK
orr r0, r0, #(SVC32Mode :OR: IRQ_BIT :OR: FIQ_BIT)
msr cpsr_c, r0
ldr r0,=0x01d20028
ldr r1,=0x00000001
str r1,[r0]
ldr r0,=0x01d2002c
ldr r1,=0x00000001
str r1,[r0]
ldr r0,=WTCON ;watch dog disable
ldr r1,=0x0
str r1,[r0]
ldr r0,=INTMSK
ldr r1,=0x07ffffff ;all interrupt disable
str r1,[r0]
;****************************************************
;* Set clock control registers *
;****************************************************
ldr r0,=LOCKTIME
ldr r1,=0xfff
str r1,[r0]
[ PLLONSTART
ldr r0,=PLLCON ;temporary setting of PLL
ldr r1,=((M_DIV<<12)+(P_DIV<<4)+S_DIV) ;Fin=10MHz,Fout=40MHz
str r1,][r0]
]
ldr r0,=CLKCON
ldr r1,=0x7ff8 ;All unit block CLK enable
str r1,[r0]
;****************************************
;* change BDMACON reset value for BDMA *
;****************************************
ldr r0,=BDIDES0
ldr r1,=0x40000000 ;BDIDESn reset value should be 0x40000000
str r1,[r0]
ldr r0,=BDIDES1
ldr r1,=0x40000000 ;BDIDESn reset value should be 0x40000000
str r1,[r0]
;****************************************************
;* Set memory control registers *
;****************************************************
ldr r0,=0x01d2002c
ldr r1,=0x00000000 ;点灯
str r1,[r0]
;程序死在这里面了,不知道怎么回事
ldr r1,=SMRDATA
ldmia r0,{r1-r13}
ldr r0,=0x01c80000 ;BWSCON Address
stmia r0,{r1-r13}
ldr r0,=0x01d2002c
ldr r1,=0x00000001
str r1,[r0]
大家帮忙看看是怎么回事! 答 1: 下面的程序!后面接着的一段程序是存储器控制器的参数配置,你的bank1时序是否修改?能否正常工作,周期改小一点试试看。 答 2: 我将BANK0的所有参数改成最大了还是不行!我将BANK0的所有参数改成最大了还是不行!
真不知道是什么鬼问题? 答 3: ... ;程序死在这里面了,不知道怎么回事
ldr r1,=SMRDATA
ldmia r0,{r1-r13}
ldr r0,=0x01c80000 ;BWSCON Address
stmia r0,{r1-r13}
第一句应该是ldr r0,=SMRDATA,你的是R1 答 4: 抱歉,这是我的手误!!
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
分享一种检测按键状态的方法被打赏20分 | |
周末总结一下,STM32C0系列的开发经验被打赏50分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下定时器配置被打赏20分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下PWM配置被打赏20分 | |
【Cortex-M】Systick Timer使用被打赏10分 | |
分享汽车防盗系统的组成与分类(一)被打赏5分 | |
VOFA+波形显示+JYD-31蓝牙发送和解析不定长数据被打赏10分 | |
【换取手持数字示波器】-STM32F4PWM控制LED灯管亮度被打赏22分 | |
【换取手持数字示波器】STM32F4驱动RPR-0521RS照度、接近一体型传感器被打赏23分 | |
宏定义和const关键字定义被打赏5分 |