JLINK烧写U-boot到NAND Flash中
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中相关推荐
- linux擦除nandflash分区,【Linux公开课】NAND Flash存储器分区、烧写流程图、格式化NAND Flash...
摘要本章主要讲述EasyARM-iMX283A Linux固件的烧写方法,可以通过TF卡.USB两种方式进行整体固件烧写,也可以通过网络进行局部固件升级. 第9章 系统固件烧写 本章主要讲述EasyA ...
- 用JLINK烧写U-boot到Nand Flash中
很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor ...
- jlink烧写linux内核,如何利用JLINK烧写U-boot到NAND Flash中
很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor ...
- 用J-Link烧写u-boot到Nor Flash—— 韦东山嵌入式Linux视频学习笔记04
说明:本文的实验环境为Windows7+JZ2440 J-Link 只支持烧写 Nor Flash,不支持烧写 Nand Flash(为什么呢?先不探究原因). 如果想烧写程序到Nand Flash, ...
- [嵌入式] 使用J-Link烧写bin文件到Mini2440的NOR flash
使用J-Link烧写bin文件到Mini2440的NOR flash 一. J-Link和配置文件 二. 手动配置 三. 烧写bin文件 一. J-Link和配置文件 Setup_JLinkARM_V ...
- jlink烧写Nor Flash时出错正确解决方法汇总:PC of target system has unexpected value after programming (2011
只加载了工程文件就可以拉 本文参考了下面几篇文章,在此表示感谢. http://againinput4.blog.163.com/blog/static/1727994912011760847746/ ...
- 【原创】用J-LINK烧写ARM开发板的Nor Flash
以往烧写开发板上的nor flash,大多以JTAG接电脑并口进行烧写,但是目前带并口的电脑几乎很少,USB口则常见.虽然也有带USB的HJTAG,然而价格对于个人而言相对偏高,淘宝上几十元的J-LI ...
- Jlink 烧写文件到 nandflash norflash
s3c2440开发板支持两种启动方式,一种是 nandflash 启动,此时 nandflash 中的前 4K 内容会由硬件自动拷贝至片内 SRAM 4K 内存中,这片内 4K 内存会被 map 到 ...
- jflash烧录教程_【参赛手记3】JLINK烧写bootloader
JLINK是segger公司推出的专业烧写工具(interface).我们主要用它来烧写bootloader. 此次烧写所用板子为mini2440,烧写的是100ask的uboot.我所用的板子如下: ...
最新文章
- Delphi 的运算符重载(1)
- 深度学习实战 | 使用Kera预测人物年龄
- asp.net treeview 控件父子节点级联选中
- Axure高保真web端后台管理系统/垃圾回收分类系统/垃圾回收高保真原型设计 /垃圾分类后台管理系统/垃圾回收分类平台//垃圾回收分类智慧管理系统/订单管理/财务管理/系统管理/库存管理/设备管理
- Unity5 Survival Shooter开发笔记2
- 讲幻灯片的基本技巧——2021年中会议发言之二
- npm和yarn科学设置淘宝镜像
- 解决AXURE RP EXTENSION FOR CHROME的快捷方法
- conda 转载自 生信技能树
- hashMap底层原理
- 最全面的 Spring 学习笔记
- 计算机管理格式化没有顺利完成,TF存储卡“格式化没有顺利完成”问题解决的方法...
- 大前端 HTML基础
- 浩辰3D软件入门攻略:什么是有限元分析?
- GNU GRUB磁盘分区后不能引导启动---修复启动
- vi模式下的编辑、删除、保存和退出
- python将数据做直方图_用python 制作直方图
- 递归语言、递归可枚举语言和非递归可枚举语言
- Hive 数据聚合成键值对时,根据值大小进行排序
- 每日一练20210426
热门文章
- 基于h5的航空订票系统的设计与实现
- 盘点14家已经获得甲级导航电子地图制作资质的单位
- 移动光驱装服务器系统盘,光驱别扔,可以改装成移动光驱用
- python import illegal instruction
- 别让那些贩卖焦虑的人,打扰到你的人生
- 看我如何用云函数撸一个PC小程序代码包在线解密工具
- teamview+ccproxy实现远程局域网本地访问
- 银行购房按揭贷款利息计算
- 使用VSLinux插件开发和调试
- 如何电脑开机自动宽带链接网络连接服务器,电脑开机怎么设置宽带自动连接_宽带连接设置方法 - 驱动管家...