免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1194 | 回复: 0
打印 上一主题 下一主题

nandflash启动和norflash启动 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-27 20:55 |只看该作者 |倒序浏览
从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下完成
然后通过跳转来实现


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/83682/showart_1669814.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP