1. 简要说明
  JLink的调试功能、烧写Flash的功能都很强大,但是对于S3C2410、S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢;烧写Nand Flash只是从理论上能够达到,但是还没有人直接实现这点。
  本文使用一个间接的方法来实现对S3C2410、S3C2440开发板的Nor、Nand Flash的烧写。原理为:JLink可以很方便地读写内存、启动程序,那么可以把一个特制的程序下载到开发板上的SDRAM去,并运行它,然后使用这个程序来烧写。

2. 操作步骤
2.1 连接硬件
  对于大多数的S3C2410、S3C2440开发板而言,它们所用的JTAG接口一般有3种(如图1所示),其中前两种用得比较多。

(原文件名:3种jtag.JPG)

  但是市面上的JLink,大多只支持第3种JTAG接口,所以需要用到转接板。或者直接使用JLink的变种,如图2所示的两种改进版JLink:

(原文件名:2种jlink.JPG)

以mini2440为例,如图3接好JTAG线。

(原文件名:JLink_2440.jpg)

2.2 运行J-Link commander

J-Link commander启动界面如图4所示,(如果没有发现检测到CPU,就在里面执行usb命令连接JLink,再执行r命令识别处理器)。

(原文件名:JLINK启动界面.JPG)

2.3 下载运行特制的程序
  对于S3C2410、S3C2440处理器,它们内部有4K的SRAM,当使用Nor Flash启动时,地址为0x40000000;当使用Nand Flash启动时,地址为0。对于S3C2410、S3C2440开发板,一般都外接64M的SDRAM。SDRAM能被使用之前,需要经过初始化。所以,先把一个init.bin下载到内部SRAM去运行,它执行SDRAM的初始化;然后再下载一个比较大的程序,比如u-boot到SDRAM去动行,它将实现对Nor、Nand Flash的操作。
  以下是在J-Link commander里的命令,假设init.bin、u-boot.bin在e:盘下。

1. speed 12000               //设置TCK为12M,下载程序时会很快 
2. 下载并运行init.bin,这是用来初始化SDRAM的

2.1 如果是NAND启动: 
loadbin e:\init.bin 0      
setpc 0 
g

2.2 如果是Nor启动: 
loadbin e:\init.bin 0x40000000      
setpc 0x40000000 
g

3. 下载特制的uboot: 

loadbin e:\u-boot.bin 0x33f80000 
setpc 0x33f80000 
g

上述操作命令可以参考图5。


 (原文件名:使用jlink下载运行uboot.JPG)

现在,u-boot已经启动了,在串口工具上可以看到如图6所示界面,以后就可以通过网络、串口下载文件,然后使用u-boot里的命令进行烧写。


 (原文件名:u-boot启动界面.JPG)

当然,如果没有网络,也不想忍受串口的速率,也可以通过jlink commander下载,比如: 

loadbin your_file.bin 0x30000000 
g

这时,你的文件已经被下载到SDRAM 0x30000000去了。 后面的操作就是u-boot的命令了。

2.4 使用u-boot烧写Flash
以例子为例,假设需要烧写一个名为leds.bin的程序到Nor、Nand Flash,那么请参考:
(1).通过Jlink下载:
在J-Link commander里执行:
h
loadbin e:\leds.bin 0x30000000
g

注意leds.bin的大小

(2).通过u-boot烧写到Nor Flash:
在u-boot里执行:
protect off all        // 解锁
erase 0 2ffff         // 擦除从0地址开始的大小为0x30000的NOR Flash扇区(大小为可擦除块的整数倍,可以运行flash info命令查看)
cp.b 0x30000000 0 30000   // 把前面下载到0x30000000的程序烧写到NOR去

(3).通过u-boot烧写到Nand Flash:
在u-boot里执行:

nand erase 0 30000           // 擦除从0地址开始的大小为0x30000的Nnad Flash扇区
nand write.jffs2 30000000 0 30000   // 把前面下载到0x30000000的程序烧写到Nand去

注意,上面用的2ffff、30000等数字是192K,如果你的程序比较小,请自行设置。

使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法的更多相关文章

  1. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上

    博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 A ...

  2. JLink间接烧写【转自armobbs】

    1. 简要说明 JLink的调试功能.烧写Flash的功能都很强大,但是对于S3C2410.S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢:烧写Nan ...

  3. stm32串口烧写程序到开发板

    前言:我们如果要断电后重启板子还能使用程序的话就需要通过串口把程序烧写到开发板中. 1.设置Keil编译完之后,生成Hex文件.在工程选项[output]的标签,勾选“Create HEX File” ...

  4. 【分享】4412开发板POP烧写ubuntu出错,如何挂载emmc分区解决方法

    本文转自:http://bbs.topeetboard.com 平台:4412精英版系统:ubuntu系统 按照教程烧写ubuntu文件系统,TF卡和EMMC分区都完成(总之之前的操作试了几遍都是没问 ...

  5. 内容分享-迅为IMX6开发板编译问题及解决方法

    [经验分享]IMX6开发板编译问题及解决方法本文转自迅为IMX6开发板售后讨论群,分享给大家~ 物理主机 win10 64 位专业版.虚拟机 VM12 Pro.开发环境采用迅为提供的开发环境: Ubu ...

  6. u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统

    http://www.linuxidc.com/Linux/2012-09/70510.htm  来源:Linux社区  作者:赵春江 uboot最主要的功能就是能够引导内核启动.本文就介绍如何实现该 ...

  7. 嵌入式开发平台迅为iTOP-4412开发板-ssh常见问题以及解决方法

    一.基本网络,软件安装以及配置 ssh 软件无法登陆 Ubuntu,有可能是网络不通.SSH 软件未安装.环境变量没配置.防 火墙未关闭等. 1. 网络连接 使用 ssh 传输文件的前提是网络顺畅,即 ...

  8. ARM开发板搭建NFS网络文件共享方法

    前边 已经提到过吧vmare的IP改成了静态IP,对于上网来说,这个是个麻烦的事.现在重新配置Vmware的IP VMware-Edit-Virtual network editor 选择PC机的无线 ...

  9. 【经验分享】IMX6开发板编译问题及解决方法

    本文转自迅为IMX6开发板售后讨论群,分享给大家~物理主机 win10 64 位专业版.虚拟机 VM12 Pro.开发环境采用迅为提供的开发环境:Ubuntu12.04.2 .镜像采用最新的:iTOP ...

随机推荐

  1. 转:说说JSON和JSONP

    前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socke ...

  2. Wcf实现IServiceBehavior拓展机制

    IServiceBehavior接口 描述:提供一种在整个服务内修改或插入自定义拓展机制: 命名空间:  System.ServiceModel.Description程序集:  System.Ser ...

  3. COB Epoxy灌膠時氣泡產生的原因與解決方法

    COB的黑膠 (Epoxy)有氣泡通常是不被允許的,因為外部氣孔不但會影響到外觀,內部氣孔更有可能會破壞 Wire bonding 的鋁線穩定度.既使在COB製程剛完成的時候沒有通過功能測試,也不代表 ...

  4. 一种全新的MEMS开关——高性能、快速、低能耗以及双稳态

    这种开关最早由申军教授和研究生阮梅春发明,研究生埃里克·朗格卢瓦在简化结构和缩小尺寸上作了探索,黄志林用相同原理做出了MEMS光学镜子开关,曹志良改变设计.材料和工艺后制作出了能同步开关的矩阵.这种M ...

  5. GNU所有软件下载,其中最有意思的是octave

    http://ftp.gnu.org/gnu/ 最有意思的是octave:https://www.gnu.org/software/octave/http://ftp.gnu.org/gnu/octa ...

  6. Centos安装webbench

    webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统:Linux 2.编译安装: 引用 wget htt ...

  7. #pragma pack(n) 的作用

    在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int.long.float等)的变量,也可以是一些复合数据类型(如数组.结构.联合等)的数据单元.在结构中,编译器为结构的每个成 ...

  8. [转]JSOM绘制地图区块及航道路径

    From :http://support.sailstech.com/kb/c73fd2405d79911253e568ccdc69256dc7c8fb5c/josm 步驟一: 使用JOSM繪製地圖區 ...

  9. error LNK1104: 无法打开文件“libboost_thread-vc140-mt-gd-1_61.lib”

    error LNK1104: 无法打开文件“libboost_thread-vc140-mt-gd-1_61.lib” 调试->你的项目属性 配置属性->VC++目录 包含目录 D:\bo ...

  10. 【floyed】【HDU1217】【Arbitrage】

    题目大意: 给你几种货币,以及几种汇率关系,问是否存在套利的可能? 思路: 初步想法:图上存在一个环的路径上权值相乘大于1.... 再者:该如何找到图上所有环呢.... 好吧 经过鸟神 和 况神的指点 ...