http://www.linuxidc.com/Linux/2

很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor Flash中很简单,大部分NOR Flash都已经被JLink的软件SEGGER所支持,而新手在学习的时候经常会实验各种各样的命令,最悲剧的莫过于将NAND Flash中原有的bootloader给删除了,这时候开发板上电后由于没有bootloader,硬件没有被初始化,在NAND Flash中的操作系统也就无法被加载,开发板成“砖”了,这时候笔记本又无法利用JTag烧写程序进Nand Flash。起始这些可以利用JLink通过两种方法解决:

一、方法一,利用NOR Flash。

这种方法是利用JLink能够烧写程序到NOR Flash来完成的,首先利用J-FLASH ARM将u-boot.bin烧写进NOR Flash(记得烧写到NOR Flash的0x0起始地址处),然后设置开发板从NOR Flash启动,这时候系统进入U-boot命令行模式,这时候打开J-Link commander,输入命令:r 看JLink是否能识别开发板的信息(也就是判断JLink是否连接正常)。

以下是在J-Link commander里的命令,先假设u-boot.bin在你电脑的D盘根目录下。

1.1. speed 12000               //设置TCK为12M,下载程序时会很快

2.2. loadbin d:\u-boot.bin 0x30000000

注意:0x30000000是你想要下载u-boot.bin到开发板的内存地址,内存地址根据不同的开发板设定不同,因为本文中使用的是FL2440,片上系统是S3C2440,内存挂载的地址区域是0x30000000~0x33ffffff,我们只需要把u-boot.bin下载到这片区域即可。

然后我们在U-boot命令行模式输入NAND Flash擦除和写入命令即可:

1.nand erase 0 40000

2.// 擦除从0地址开始的大小为0x40000的Nnad Flash扇区,0x40000是待写入的U-boot.bin的大致长度,长度必须为NAND Flash页大小的整数倍,通常会需要比u-boot.bin实际长度长。

3.nand write 30000000 0 40000   // 把前面下载到0x30000000的u-boot.bin烧写到Nand去  然后我们再设置开发板从NAND Flash启动即可。

二、方法二,直接通过JLink

假如你的开发板没有NOR Flash或者是你使用的NOR Flash还未被J-FLASH ARM所支持,这时上面的方法你就无法使用了,这时候你需要一个初始化内存SDRAM的程序,这个程序完成的功能也就是配置好SDRAM的寄存器,使它能正常工作,fl2440的内存初始化程序下载地址:“2440init.bin”。(很短的程序,初始化SDRAM的寄存器,使得SDRAM能正常工作)

下载在Linux公社的1号FTP服务器里,下载地址:

FTP地址:ftp://www.linuxidc.com

用户名:www.linuxidc.com

密码:www.muu.cc

在 2012年LinuxIDC.com\7月\如何利用JLINK烧写U-boot到NAND Flash中

下载方法见 http://www.linuxidc.net/thread-1187-1-1.html

你还需要准备一个特殊的u-boot_SDRAM.bin,它与你要烧写到NAND Flash的u-boot.bin有区别,u-boot_SDRAM.bin编译时需要在include/configs/开发板配置文件.h文件中添加:

#define  CONFIG_SKIP_LOWLEVEL_INIT     1 //用来支持uboot在内存中直接运行

添加这个宏定义之后,U-boot就跳过了内存初始化的部分,因为此时我们的内存已经先由“2440init.bin“初始化好了,再次初始化会出现内存数据的丢失。

做好上面的准备工作之后,首先将开发板设为从NAND Flash启动,启动J-Link commander,先假设“u-boot.bin”和“2440init.bin”在电脑的D盘根目录下。

1.loadbin d:\2440init.bin 0        
    2.setpc 0   
    3.g

为什么需要把"2440init.bin"复制到0x0地址是因为S3C2440有4K的SRAM,它不需要初始化就可以直接执行程序,从NAND Flash启动时,这个SRAM的地址会挂载到0x0~0x1000的地址空间,我们先把"2440init.bin"复制到SRAM中运行,执行这部分后S3C2440的SDRAM内存就初始化好了(地址空间0x30000000~0x33ffffff)。也许有人会说为什么不一开始就把u-boot_SDRAM.bin放在SRAM中运行啊?SRAM只有4K的大小,而U-boot通常在100~300K,SRAM的空间显然不够,而"2440init.bin"的大小只有不到2K,它可以在SRAM中运行。

内存初始化成功后,下载特制的u-boot_SDRAM.bin:

1.h   
    2.loadbin e:\u-boot_SDRAM.bin 0x33f80000   
    3.setpc 0x33f80000   
    4.g

这时你应该可以在串口看到U-boot的输出信息了,然后我们在U-boot命令行模式输入NAND Flash擦除和写入命令即可:

1.nand erase 0 40000

2.// 擦除从0地址开始的大小为0x40000的Nnad Flash扇区,0x40000是待写入的U-boot.bin的大致长度,长度必须为NAND Flash页大小的整数倍,通常会需要比u-boot.bin实际长度长。

3.nand write 30000000 0 40000   // 把前面下载到0x30000000的u-boot.bin烧写到Nand去  根据上面的步骤就可以完成u-boot到NAND Flash的烧写了,实际上是利用一个SDRAM中运行的u-boot去烧写u-boot.bin到NAND Flash中。

JLINK烧写U-boot到NAND Flash中相关推荐

  1. linux擦除nandflash分区,【Linux公开课】NAND Flash存储器分区、烧写流程图、格式化NAND Flash...

    摘要本章主要讲述EasyARM-iMX283A Linux固件的烧写方法,可以通过TF卡.USB两种方式进行整体固件烧写,也可以通过网络进行局部固件升级. 第9章 系统固件烧写 本章主要讲述EasyA ...

  2. 用JLINK烧写U-boot到Nand Flash中

    很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor ...

  3. jlink烧写linux内核,如何利用JLINK烧写U-boot到NAND Flash中

    很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor ...

  4. 用J-Link烧写u-boot到Nor Flash—— 韦东山嵌入式Linux视频学习笔记04

    说明:本文的实验环境为Windows7+JZ2440 J-Link 只支持烧写 Nor Flash,不支持烧写 Nand Flash(为什么呢?先不探究原因). 如果想烧写程序到Nand Flash, ...

  5. [嵌入式] 使用J-Link烧写bin文件到Mini2440的NOR flash

    使用J-Link烧写bin文件到Mini2440的NOR flash 一. J-Link和配置文件 二. 手动配置 三. 烧写bin文件 一. J-Link和配置文件 Setup_JLinkARM_V ...

  6. jlink烧写Nor Flash时出错正确解决方法汇总:PC of target system has unexpected value after programming (2011

    只加载了工程文件就可以拉 本文参考了下面几篇文章,在此表示感谢. http://againinput4.blog.163.com/blog/static/1727994912011760847746/ ...

  7. 【原创】用J-LINK烧写ARM开发板的Nor Flash

    以往烧写开发板上的nor flash,大多以JTAG接电脑并口进行烧写,但是目前带并口的电脑几乎很少,USB口则常见.虽然也有带USB的HJTAG,然而价格对于个人而言相对偏高,淘宝上几十元的J-LI ...

  8. Jlink 烧写文件到 nandflash norflash

    s3c2440开发板支持两种启动方式,一种是 nandflash 启动,此时 nandflash 中的前 4K 内容会由硬件自动拷贝至片内 SRAM 4K 内存中,这片内 4K 内存会被 map 到 ...

  9. jflash烧录教程_【参赛手记3】JLINK烧写bootloader

    JLINK是segger公司推出的专业烧写工具(interface).我们主要用它来烧写bootloader. 此次烧写所用板子为mini2440,烧写的是100ask的uboot.我所用的板子如下: ...

最新文章

  1. Delphi 的运算符重载(1)
  2. 深度学习实战 | 使用Kera预测人物年龄
  3. asp.net treeview 控件父子节点级联选中
  4. Axure高保真web端后台管理系统/垃圾回收分类系统/垃圾回收高保真原型设计 /垃圾分类后台管理系统/垃圾回收分类平台//垃圾回收分类智慧管理系统/订单管理/财务管理/系统管理/库存管理/设备管理
  5. Unity5 Survival Shooter开发笔记2
  6. 讲幻灯片的基本技巧——2021年中会议发言之二
  7. npm和yarn科学设置淘宝镜像
  8. 解决AXURE RP EXTENSION FOR CHROME的快捷方法
  9. conda 转载自 生信技能树
  10. hashMap底层原理
  11. 最全面的 Spring 学习笔记
  12. 计算机管理格式化没有顺利完成,TF存储卡“格式化没有顺利完成”问题解决的方法...
  13. 大前端 HTML基础
  14. 浩辰3D软件入门攻略:什么是有限元分析?
  15. GNU GRUB磁盘分区后不能引导启动---修复启动
  16. vi模式下的编辑、删除、保存和退出
  17. python将数据做直方图_用python 制作直方图
  18. 递归语言、递归可枚举语言和非递归可枚举语言
  19. Hive 数据聚合成键值对时,根据值大小进行排序
  20. 每日一练20210426

热门文章

  1. 基于h5的航空订票系统的设计与实现
  2. 盘点14家已经获得甲级导航电子地图制作资质的单位
  3. 移动光驱装服务器系统盘,光驱别扔,可以改装成移动光驱用
  4. python import illegal instruction
  5. 别让那些贩卖焦虑的人,打扰到你的人生
  6. 看我如何用云函数撸一个PC小程序代码包在线解密工具
  7. teamview+ccproxy实现远程局域网本地访问
  8. 银行购房按揭贷款利息计算
  9. 使用VSLinux插件开发和调试
  10. 如何电脑开机自动宽带链接网络连接服务器,电脑开机怎么设置宽带自动连接_宽带连接设置方法 - 驱动管家...