使用JLINK间接烧写NAND FLASH

1. 前言

在移植u-boot的NAND FLASH部分特别是NAND FLASH启动u-boot部分时,始终要把移植的u-boot烧写进NAND FLASH以验证NAND 启动u-boot能否成功。在实际过程中,即使用AXD仿真调试没问题了,但并不代表就能一次成功,往往一条指令的不小心,就可能导致挂机,再也起不来了。现在电脑上都很少有并口了,而JLINK烧写FLASH功能强大,但烧写Nor Flash时需要设置SDRAM,否则速率很慢;烧写Nand Flash只是从理论上能够达到,但是还没有人直接实现这点。为了在挂机或验证自己移植的u-boot能否从FLASH启动时,能够方便把u-boot镜像烧写进FLASH,把网上介绍的关于使用JLINK间接烧写FLASH的方法说明在这,同时增加了自己的使用心得和遇到问题的解决方法。

2. 使用JLINK间接烧写NAND FLASH的方法:

2.1 使用JLINK间接烧写FLASH的原理:

使用JLINK间接实现对S3C2410、S3C2440开发板的Nor、Nand Flash的烧写。原理为:JLink可以很方便地读写内存、启动程序,那么可以把一个特制的程序下载到开发板上的SDRAM去,并运行它,然后使用这个程序来烧写。

2.2 操作步骤:

操作步骤是,先把一个SDRAM的初始化程序init.bin下载到内部SRAM去运行,使SDRAM中可使用;然后再下载特制的或者好的、可启动并支持FLASH读写等操作的u-boot(称为u-boot0.bin,一定要可支持FLASH读写等操作)到SDRAM中运行,这个特制u-boot能实现对Nor、NAND FLASH读写等操作;然后通过JLINK或TFTP(需要特制的u-boot实现网络功能)再把另一个的u-boot(称为u-boot1.bin,可以是开发板本身带的u-boot或自己移植的uboot镜像文件,或者是这个特制的u-boot.bin镜像文件)下载到SDRAM的另一地址中;最后,在u-boot0.bin下把u-boot1.bin烧写进FLASH中。

init.bin文件可从本人资源上下载:http://download.csdn.net/source/3396427

下面分别说明

2.2.1 连接硬件

把JLINK的JTAG口连接到板上的JTAG,注意引脚要匹配起来!如果JLINK带的JTAG线不能与板的JTAG对应起来,就要自己做转接,我的就是这样,自己转接了一下!

2.2.2 运行J-Link commander

J-Link commander启动界面如下图所示,如果没检测到CPU,执行usb命令连接JLink,注意,S3C2440 CPU的ID是:0x0032409D

5V{CMMI{LOU]4E[INK%CY4F

2.2.3 在J-Link commander下载运行特制的程序

对于S3C2410、S3C2440处理器,它们内部有4K的SRAM,当使用Nor Flash启动时,地址为0x40000000;当使用Nand Flash启动时,地址为0。

对于S3C2410、S3C2440,一般都外接SDRAM。SDRAM被使用之前,需要经过初始化,这个初始化由init.bin程序完成。

假设init.bin在E:/1/init/目录下,u-boot0.bin和u-boot1.bin在E:/1/目录下。

1). 设置TCK为12M,下载程序时会很快 ,可以不做

J-Link>speed 12000

2). 下载并运行init.bin,这是用来初始化SDRAM的

a. 如果是NAND FLASH启动:  
J-Link>loadbin e:/1/init.bin 0       
J-Link>setpc 0  
J-Link>g  
b. 如果是NOR FLASH启动:  
J-Link>loadbin e:/1/init.bin 0x40000000       
J-Link>setpc 0x40000000  
J-Link>g

3). 下载并运行特制的u-boot.bin,提示,这个u-boot也并不就是特制的,可使用自己的,但必须要求具备读写FLASH等操作功能,在这里烧写的是扬创开发板所带的u-boot:

J-Link>loadbin e:/1/u-boot0.bin 0x33f80000  
J-Link>setpc 0x33f80000  
J-Link>g

上述操作如下图所示:

1TT_93VG(XQ%AL92(18II_W

同时,u-boot已经启动了,在USB转串口中可以看到启动信息:

U-Boot 1.2.0-utulinux_s3c2440_bootloader (Sep 12 2007 - 23:33:00)

DRAM:  64 MB 
Flash:  0 kB 
NAND:  Bad block table not found for chip 0 
Bad block table not found for chip 0 
64 MiB 
In:    serial 
Out:   serial 
Err:   serial 
Hit any key to stop autoboot:  0

utu-bootloader=>>> 
utu-bootloader=>>>

注意:在串口中看到启动信息后,可能你会发现,在uboot提示信息下可能对你的操作不响应,这时,你可在J-Link commander继续执行一个g指令就正常了。

4)下载目标u-boot1.bin到FLASH中,这里的u-boot1.bin是本人基于u-boot-2011.03移植的u-boot镜像文件

进入到u-boot0之后,就可以通过网络、串口下载文件了,然后使用u-boot0里的nand rase、nand wirte命令来烧写u-boot1.bin文件了,当然,如果没有网络,也不想忍受串口的速率,可通过jlink commander下载(推荐),如下操作:

a)通过JLINK把u-boot1.bin下载到SDRAM中,

J-Link>loadbin e:/1/u-boot1.bin 0x30000000

47K)0@S$FDI1U7%AH_[~3(8

同样的,下载后,在u-boot0串口操作符下,又不响应了,在J-Link commander输入g命令就可以解决了。

b)在u-boot0串口操作符下,把刚才下载到0x30000000的u-boot1.bin烧写到NAND FLASH中

utu-bootloader=>>>nand erase 0 40000;nand write 30000000 0 40000

NAND erase: device 0 offset 0x0, size 0x40000 
Erasing at 0x3c000 -- 100% complete. 
OK

NAND write: device 0 offset 0x0, size 0x40000 
262144 bytes written: OK 
utu-bootloader=>>>

这样就把u-boot1.bin烧写进NAND FLASH了,复位重启可看到u-boot1.bin的启动信息:

u-bootloader=>>>reset

U-Boot 2011.03 (Jun 26 2011 - 02:40:58)

DRAM:  64 MiB 
NAND:  NAND_ECC_NONE selected by board driver. This is not recommended !! 
64 MiB 
*** Warning - bad CRC, using default environment

In:    serial 
Out:   serial 
Err:   serial 
Net:   CS8900-0 
[reille2440]#

3. "unable to halt arm core"的解决办法

在使用JLINK过程中,出现了"unable to halt arm core"的错误,解决方法是:把JLINK的USB口拔掉,同时把板的电脑断掉,稍等片刻,然后再重新开始就可以了。

4. 参考资料


移植u-boot-2011.03到s3c2440(utu2440)的方法与步骤,使用jlink间接烧写u-boot至flash的方法与步骤:http://blog.csdn.net/reille/article/details/6568656

使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法:http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=3228953

U-Boot调试环境搭建请教~~如何实现u-boot和内核的源码级调试:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3521744&bbs_page_no=1&bbs_id=1032

如何调试uboot中NAND FLASH 启动部分:http://blog.csdn.net/qiaoliang328/archive/2011/03/07/6229389.aspx

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值