根据韦东山修改的mini2440nand flash裸机程序.pdf

根据韦东山修改的mini2440nand flash裸机程序.pdf

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
根据韦东山修改的mini2440nand flash裸机程序

目录: 说明 2 知识点梳理 2 页的绝对地址与相对地址 2 NAND FLASH 地址周期: 3 nand.lds 代码解释: 4 mini2440 开发板的时钟 5 NandFlash—物理结构及地址传送 5 编译生成 bin 文件,下载运行 9 代码源文件 9 Makefile 文件内容: 9 head.S 文件内容: 10 main.c 文件内容: 12 nand.c 文件内容: 12 nand.lds 文件内容: 18 /u/3104586975 说明 开发板:mini2440 Nand flash:K9F2G08U0B2,256M 本程序实现功能:我是参考韦东山的第 8 章的裸机程序,但是他的 nand flash 型号是 64MB 的 K9F12080M,所以 我依照他的程序加以修改,下载到 nand flash,从 nand flash 实现将 main.c 程序复制到 sdram 中执行。 参考书:《嵌入式应用开发完全手册》 《ARM 处理器裸机开发实战机制而非策略》 知识点梳理 页的绝对地址与相对地址 在 nand.c 中有一个函数 void RdNF2SDRAM(),它的功能是将 nand flah 的内容复制到 sdram,如下: nand flash 的页读取函数原型是 void nf_readpage(unsigned int block,unsigned int page,unsigned char *dstaddr),它的 功能是从 nand flash 的第 block 块的第 page 页读取 1 页(对于 K9F2G 来说,1 页等于 2KB)的内容,存放到指针 dstaddr 所指的地址处。有的人可能就会说了,既然 nf_readpage 可以读取 1 页的数据到指定的地址处,而 sdram 的地址是 0那直接可以使用它将 nand flash 的代码复制到 sdram 去啊,答案当然是可以啊!但是有个前提,复制到 sdram 的内容必须在 2KB 以内,一旦超过了 2KB,那就需要借用 RdNF2SDRAM()函数了,相信这样解释就能明白这两个函 数的区别于联系了。 再说说绝对地址与相对地址,首先知道 k9f2g 有 2048 个块,每个块有 64 个页,每页有 2K 字节。我们平常所说 的第几块第几页就是相对地址,比如第 2 块第 3 页是相对地址。而绝对地址=块号*64+页号,例如前边的第 2 块第 3 页 换成绝对地址就是 131(131=2*64+3)。 下面解释一下 RdNF2SDRAM()函数: 113 行:从 117 行可以看出,这里的 i 指的是相对地址 114 行:在 nand flash 内的起始地址,这里的 4096 表示的是字节,k9f2g 内存大小是 256Mbyte,这里之所以令 start_addr=4096,是因为咱们在 nand.lds 文件中,将 main.c 文件的地址定义在了 4096 处。如下图: 如果 AT(4096)改为 AT(5120),那么这里 start_addr 就等于 5120。还要注意这里 4096byte 也就是 4KB,为什么把他定义 在 nand flash 的 4KB 之后呢,因为硬件电路会自动将 nand flash 里的前 4KB 的内容搬移到 stepping stone 中去执行,如 果定义在 3KB 之后,main.c 函数直接就执行了,哪里还用复制。 115 行:定

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档