Chinaunix首页 | 论坛 | 博客
  • 博客访问: 34242
  • 博文数量: 17
  • 博客积分: 770
  • 博客等级: 军士长
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-29 10:18
文章分类

全部博文(17)

文章存档

2010年(1)

2009年(6)

2008年(10)

我的朋友
最近访客

分类: LINUX

2008-11-27 20:55:00

从nand flash 的启动 搬运代码的这个过程是不是 既能用汇编代码来实现 又能用c语言来实现啊?
>
>
> +int CopyCode2Ram(unsigned long start_addr, unsigned char *buf, int size)
> +{
> + unsigned int *pdwDest;
> + unsigned int *pdwSrc;
> + int i;
> +
> + if (bBootFrmNORFlash())
> + {
> + .....
> + }
> + else
> + {
> + /* 初始化NAND Flash */
> + nand_init_ll();
> + /* 从 NAND Flash启动 */
> + nand_read_ll(buf, start_addr, (size + NAND_BLOCK_MASK)&~(NAND_BLOCK_MASK));
> + return 0;
> + }
> +}
> 是不是就是这段代码实现的哦 这段代码是不是在arm_boot 下面被调用啊
>
>
> relocate:
> adr r0, _start
> ldr r1, _TEXT_BASE
> cmp r0, r1
> beq stack_setup
> ldr r2, _armboot_start
> ldr r3, _bss_start
> sub r2, r3, r2
> add r2, r0, r2
> copy_loop:
> ldmia r0!, {r3-r10}
> stmia r1!, {r3-r10}
> cmp r0, r2
> ble copy_loop
>
> 这段代码应该实现的是 norflash 中的代码搬运吧
> 他能实现nand的搬运吗? cmp r0, r1 这个比较在nor 里面肯定是不相等的 nand启动的时候是不是也不相等呢

 

不管是nand启动还是nor启动都需要把 代码全部搬到 sdram 里面

只是nand要复杂点需要对nand 进行配置 reset等 然后才能读取

这个过程可以用c代码来实现 也可以用汇编直接在start下完成

然后通过跳转来实现

 

nand 启动的时候就是自动复制nand 4K的到内部4KSRAM上,并且SRAM的地址为0x00开始,nor flash启动的时候,就是片选nor flash0x00,直接从0x00开始运行即可。现在有个问题,我nand 启动的时候,能不能访问nor flash,这个nor flash此时的地址是什么。

 

 

NAND 启动

#define ROM_BASE 0x4000000 //地址重定向到0x04000000
#define CMD_ADDR0 *((volatile U16 *)(0x555*2+ROM_BASE))
#define _WR(addr,data) *((volatile U16 *)((addr < <1)+ROM_BASE))=(U16)data
#define _RD(addr) ( *((volatile U16 *)((addr < <1)+ROM_BASE)) )#define CMD_ADDR1 *((volatile U16 *)(0x2aa*2+ROM_BASE))

从代码看出,芯片从NandFlash启动时,nGS0的其实地址实际上映射到了
0x0400_0000
所以在NandFlash启动的过程中,访问NorFlash要从0x0400_0000地址开始访问。

 

Nor启动

 

#define _WR(addr,data) *((U16 *)(addr < <1))=(U16)data
#define _RD(addr) ( *((U16 *)(addr < <1)) )
#define _RESET() _WR(0x0,0xf0f0)

作为对照,这个是Samsung测试代码中,从NorFlash启动的代码。

 

 

Nand启动时,nGS0的片选地址就自动切换到0x0400_0000,这个是硬件操作的,不需要软件处理。
Samsung
的数据手册没有详细的说明。我也是看代码才发现的。

只能对Samsung发出鄙视了。

 


阅读(1245) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~