06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash

上一节 我们实现了支持nand  flash 启动(点击查看),并不代表uboot此时可以对nand进行读写操作,只是可以把uboot烧写到nand然后上电后,对代码 进行重定位,实现了nand启动。这一节我们加入对nor 的支持,使uboot可以识别出nor flash 并可以读写nor flash。

(1)查看上一节最后的报错:
06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第1张图片

(2)搜索Flash:查看代码:

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第2张图片06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第3张图片

程序会陷入死循环,并打印出错误信息。

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第4张图片

(3)找不到不卡死,继续往下走:修改为如下

修改是为了 从nand启动时不在此处卡死。

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第5张图片

(4)看一下这个 怎么才能识别出nor flash

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第6张图片

		if (!flash_detect_legacy(cfi_flash_bank_addr(i), i))
			flash_get_size(cfi_flash_bank_addr(i), i);
		size += flash_info[i].size;

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第7张图片

(5)定义打印信息

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第8张图片

(10)拿去编译

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第9张图片

usb 1 30000000

protect off all

erase 0 7ffff

cp.b 30000000 0 80000

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第10张图片

(11)搜索下JEDEC PROBE:

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第11张图片

打印设备ID并对比

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第12张图片


加入所使用的nor flash的特性信息

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第13张图片

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第14张图片

(12)更新06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第15张图片06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第16张图片

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第17张图片

(13)解决:

搜索ERROR: too many flash sectors

重新编译:

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第18张图片06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第19张图片

(14)重新编译下载

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第20张图片06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第21张图片06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第22张图片

(15)没有重新设置栈

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第23张图片06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第24张图片06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第25张图片06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第26张图片06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第27张图片


(16)更新文件,重新编译一下:

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程三)支持NorFlash_第28张图片

usb 1 30000000

protect off all

erase 0 7ffff

cp.b 30000000 0 80000

zip -r -q -o u-boot-2012.04.01.zip /work/system/u-boot-2012.04.01 (压缩备份)

将目录打包成一个文件,-r 表示递归打包包含子目录的全部内容,-q 表示安静模式,-o 表示输出文件,其后紧跟打包输出文件名

修改成功,到此uboot可以实现从nor nand启动,并且可以正确识别出nor flash的型号,并可以对nor 进行读写操作。

你可能感兴趣的:(S3C2440,S3C2440学习之旅)