以下参考韦老师的程序;之前写的程序都小于4K,板子一上电会自动拷贝到SRAM,今天学习了韦老师的Nand flash,总结一下。在课程里,把程序分为两大部分:先看下nand.lds链接脚本,
SECTIONS{
firtst0x00000000 : { head.o init.o nand.o }
second 0x30000000 : AT(4096) { main.o }
}
在这里head.o init.o nand.o三个程序放到0x00000000,main.o放到4096处,(故意放到4K之外,练习一下把程序从Nand flash拷贝到SDRAM的能力,熟悉一下Nand flash的基本操作)
head.o文件是汇编文件;init.o 是初始化文件,用于关看门狗、设置SDRAM的13个寄存器,为程序拷贝做准备;nand.o用于定义nand flash的相关函数,初始化nand flash,完成程序拷贝工作;main.o是正常的小灯程序。这里重点是nand.o。
在韦老师的程序里,为了区分S3C2410和2440,在程序里建立了一个装有各个函数指针的结构体nand_chip,然后分别定义了S3C2410和2440的各种函数,
/* S3C2410的NAND Flash处理函数 */
static void