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

TQ2440裸机实验(复制nand flash 前4K到SDRAM)

发布时间:2020-12-15 07:16:13 所属栏目:百科 来源:网络整理
导读:;@************************************************************************* ;@ File:head.S ;@ 功能:设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行 ;@*************************************************************************? ? ? ? ? ?

;@*************************************************************************
;@ File:head.S
;@ 功能:设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行
;@*************************************************************************??????
???????IMPORT????????main
???????IMPORT????????disable_watch_dog
???????IMPORT????????memsetup
???????IMPORT????????copy_steppingstone_to_sdram
??????????
???????AREA????Init,CODE,READONLY??;程序入口的地方
???????ENTRY?
START ??
????????????ldr?????sp,=4096??????????????; @设置堆栈
????????????bl??????disable_watch_dog??????; @关WATCH DOG
????????????bl??????memsetup???????????????; @初始化SDRAM
????????
????????????bl??????copy_steppingstone_to_sdram
??????????
???????

????????????ldr?????lr,=halt_loop?????????; @设置返回地址
????????????ldr?????pc,=main??????????????; @b指令和bl指令只能前后跳转32M的范围,所以这里使用向pc赋值的方法进行跳转
halt_loop
????????????b???????halt_loop
?
????????????END

这是一些初始化函数,只要调用了下面函数,注意两个文件不要放在一起:


#define ?WTCON????(*(volatile unsigned long *)0x53000000)//关门狗寄存器的地址


#define ?MEM_CTL_BASE??0x48000000??//寄存器的起始地址
?
void disable_watch_dog();
void memsetup();
void copy_steppingstone_to_sdram(void);

void disable_watch_dog()
{
?WTCON?= 0;//写0就可以了
}


void memsetup()
{
?int ?i = 0;
?unsigned long *p = (unsigned long *)MEM_CTL_BASE;

???
????unsigned long??const????mem_cfg_val[]={ 0x22011110,?????//BWSCON
????????????????????????????????????????????0x00000700,?????//BANKCON0
????????????????????????????????????????????0x00000700,?????//BANKCON1
????????????????????????????????????????????0x00000700,?????//BANKCON2
????????????????????????????????????????????0x00000700,?????//BANKCON3?
????????????????????????????????????????????0x00000700,???

(编辑:李大同)

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

    推荐文章
      热点阅读