micro/mini 2440 Jlinker 裸板烧录

1. 简要说明

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

2. 操作步骤
2.1运行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 

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,如果你的程序比较小,请自行设置。

-----------------------------------------------------

综合以上资料,在2440上烧裸板的方法:

开发板开关薄码NOR

连接Jlinker V8  后开机,

生成的bin是可以下载到0x30000000运行的

在J-Link commander里执行:
h
loadbin e:\leds.bin 0x30000000
g

或者直接

h
loadbin e:\leds.bin 0

setpc 0x0
g

时间: 2024-12-30 00:16:15

micro/mini 2440 Jlinker 裸板烧录的相关文章

嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结

1.在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2.记住在使用printf进行调试的时候,在遇到指针或者字符串的时候最好使用“%x”,以为我不知道指针或者字符串中是否包含不可见字符,如果有不可见字符会导致错误,而且错误不好查找 3.对于uboot中的环境变量,其实是放在uboot里面的,也就是环境变量占用的是uboot的空间,如果不需要去实时修改环境变量的值那么就可以不用env这个分区:但是如果需要修改环境变量,

S5PV210裸板驱动:启动

以往2440和6410的启动方式,只要我们把裸板代码烧写到NAND FLASH的开始位置,当开发板上点启动时,处理器会自动从NAND FLASH上拷贝前面一段的代码到内部的RAM中执行.按照以前的方法,我写了一段汇编代码,如下: 1_ARM/1_start/start.S 1 #define WTCON 0xE2700000 2 3 .text 4 .align 2 5 .global _start 6 7 _start: 8 //close the watchdog 9 ldr r1, =WT

【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42239705  参考博客 : [嵌入式开发]嵌入式 开发环境 (远程登录 | 文件共享 | NFS TFTP 服务器 | 串口连接 | Win8.1 + RedHat Enterprise 6.3 + Vmware11) 开发环境 : -- 操作系统 : Vmware11 + RedHat6.3 企业版 + Win8.1; -- 硬件 : OK-6410-A 开发

HI3518E用J-link烧写裸板fastboot u-boot流程

Hi3518E的裸板烧写fastboot是不能像HI3531那样,可以通过FB直接烧写.遵循ARM9的烧写流程.其中一般u-boot的烧写流程可分为几类:第一:通过编程器芯片直接烧写:第二通过RVDS来烧写(海思官方原版的方式):第三通过j-link烧写.这三种方式中,前两种都是很麻烦的事情,需要编程支持比较贵.第二种价格就更加不菲.第三种方式是一般嵌入式工程师能想到也很容易能得到的方式.下面介绍j-link烧写流程,以下演示芯片为海思的HI3518E芯片. 第一.连接j-link打印对应的j-

刚接触开发板之烧写裸板程序

使用串口操作开发板的前提是开发板上已经有烧好的程序,因此开发板在没有烧好程序时,应先烧写程序.方法有: 1.使用并口工具烧写:接线(参考百问网JZ2440V2开发板使用手册),使用oflash烧写(速度比较慢),可烧写.bin文件,从新上电观察效果.可烧写u_boot. 2.使用openJTAG烧写,接线,使用oflash烧写(oflash烧写完后,会复位开发板). 3.使用Jlink烧写,请看如何烧写S3C2440裸板程序:JLink只支持烧写Nor Flash,不支持Nand Flash.要

jz2440裸板开发之:外部中断

实验目的:   利用外部中断的方式,来实现点亮对应的LED 实验原理:中断的最大好处就是让CPU避免了采用查询的方式来处理中断处理程序要干的事,中断的三个必要元素:中断源.中断控制器.中断处理函数.在arm9上有七种异常, (这里把重启也包括在内,另外还有一个reversed,加起来应该有八个,只是这个中断向量地址没有用而已).当中断发生时,CPU会自动跳到中断向量地址处执行程序,由于每个中断向量都只有4字节的地址空间,所以我们经常在此处放一个跳转语句.上面CPU的自动跳转是硬件自动完成的,我们

JZ2440裸板烧写(打补丁)

制作uImage,需要上网下载内核+patch补丁 1.将内核用ftp发送到 打补丁patch -p1 < ../补丁文件名 打补丁文件(目录) 2.配置 :复制cp  configuration_ok  .config 3.make uImage 下图是uImage的make流程: 1.裸板烧写的方法有2种: 烧写u-boot:在PC机上,cmd控制台,cd移动到内核所在的相应文件夹,利用oflash下载u-boot: 烧写内核:都需要启动开发板NOR启动,进入u-boot后 ①一种是利用串口

Tiny6410_SMDK从SD卡直接启动裸板代码

今天折腾了一天终于可以可以直接从SD卡启动6410的裸板程序了,这也让我实现了完全在linux下开发裸板代码.详细过程如下: 1.通过查SMDK6410_IROM_APPLICATION NOTE_REV 1.00,可以查到如下 其中BL1是开发板自动运行的固件代码 从上可以知道应将代码烧到最后地址-(1025+1+16)*512字节处 2.测试代码如下: 1     .text 2     .code 32 3     .globl _start 4     _start: 5     ldr

从零开始写一个arm下的裸板程序

从零开始写一个arm下的裸板程序.我们整个程序是基于uboot运行的. 所有我们可以借助uboot中的printf来输出,默认开发版的标准输出是串口. 电脑的默认标准输出的屏幕. 1.需要创建的文件由include文件夹,用来存放头文件. 2.创建一个hw.h头文件. 3.编写一个common.h,它定义了借用uboot的printf的宏.和NULL这个宏的定义. 4.hw.c 硬件相关的文件. 5.main.c c文件. 6.start.s 汇编文件. 7.ld.lds 链接脚本, 8.Mak