共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 在K230DBOX上实现多时段语音提示功能被打赏¥14元 | |
| 使K230DBOX实现相机持续拍照功能被打赏¥12元 | |
| 基于K230DBOX的文本管理器设计被打赏¥14元 | |
| 基于K230DBOX的彩色画板功能实现被打赏¥15元 | |
| 在K230DBOX上实现音乐播放器功能被打赏¥15元 | |
| NXP MCU系列开发板MCULink固件升级方法【VSCode】被打赏¥28元 | |
| 三分钟快速搭建NXP MCU开发环境(VSCode)被打赏¥22元 | |
| 为遥控小车巧添功能被打赏¥26元 | |
| 【S32K3XX】FlexCAN 模块配置使用被打赏¥30元 | |
| 【S32K3XX】FlexCAN RAM 资源分配整理被打赏¥25元 | |
我要赚赏金
