Jlink 烧写文件到 nandflash norflash
s3c2440开发板支持两种启动方式,一种是 nandflash 启动,此时 nandflash 中的前 4K 内容会由硬件自动拷贝至片内 SRAM 4K 内存中,这片内 4K 内存会被 map 到 nGCS0 也就是 bank0 ,起始地址为0 。如果是 Nor 启动,norflash 也是被接在 nGCS0 ban0 上的,Norflash 可以直接被读取,因此 cpu 从 Norflash 的 0 地址开始运行。一直被人忽略的一点,nor启动时,片内 sram 4K 内存的起始地址为 0x4000 0000 .
@******************************************************************************
@ File:init.S
@ 功能:初始化sdram
@****************************************************************************** .text
.global _start
_start:// 关看门狗ldr r0,=0x53000000mov r1,#0str r1,[r0]// 屏蔽中断mov r1, #0xffffffffldr r0, =0x4A000008str r1, [r0]ldr r1, =0x3ffldr r0, =0x4A00001Cstr r1, [r0]// 初始化内存MOV R0,#0x48000000ADRL R1,mem_cfg_val@STR [R1],[R0],#4MOV R4,#0
1: LDR R3,[R1],#4STR R3,[R0],#4ADD R4,R4,#1CMP R4,#13BNE 1bloop:b loop.align 4
mem_cfg_val:@ 存储控制器13个寄存器的设置值.long 0x22011110 @ BWSCON.long 0x00000700 @ BANKCON0.long 0x00000700 @ BANKCON1.long 0x00000700 @ BANKCON2.long 0x00000700 @ BANKCON3 .long 0x00000700 @ BANKCON4.long 0x00000700 @ BANKCON5.long 0x00018005 @ BANKCON6.long 0x00018005 @ BANKCON7.long 0x008C07A3 @ REFRESH.long 0x000000B1 @ BANKSIZE.long 0x00000030 @ MRSRB6.long 0x00000030 @ MRSRB7
init_sdram.bin : init_sdram_elfarm-linux-objcopy -O binary -S init_sdram_elf init_sdram.binarm-linux-objdump -D -m arm init_sdram_elf > init_sdram.disinit_sdram_elf : init.oarm-linux-ld -Ttext 0x00000000 -g init.o -o init_sdram_elfinit.o : init.Sarm-linux-gcc -g -c -o init.o init.Sclean:rm -f init_sdram.dis init_sdram.bin init_sdram_elf *.o
注意这里的连接地址是 0 地址,因为 nand 启动时,片内 sram 的起始地址为 0
@******************************************************************************
@ File:init.S
@ 功能:初始化sdram
@****************************************************************************** .text
.global _start
_start:// 关看门狗ldr r0,=0x53000000mov r1,#0str r1,[r0]// 屏蔽中断mov r1, #0xffffffffldr r0, =0x4A000008str r1, [r0]ldr r1, =0x3ffldr r0, =0x4A00001Cstr r1, [r0]// 初始化内存MOV R0,#0x48000000ADRL R1,mem_cfg_val@STR [R1],[R0],#4MOV R4,#0
1: LDR R3,[R1],#4STR R3,[R0],#4ADD R4,R4,#1CMP R4,#13BNE 1bloop:b loop.align 4
mem_cfg_val:@ 存储控制器13个寄存器的设置值.long 0x22011110 @ BWSCON.long 0x00000700 @ BANKCON0.long 0x00000700 @ BANKCON1.long 0x00000700 @ BANKCON2.long 0x00000700 @ BANKCON3 .long 0x00000700 @ BANKCON4.long 0x00000700 @ BANKCON5.long 0x00018005 @ BANKCON6.long 0x00018005 @ BANKCON7.long 0x008C07A3 @ REFRESH.long 0x000000B1 @ BANKSIZE.long 0x00000030 @ MRSRB6.long 0x00000030 @ MRSRB7
init_sdram.bin : init_sdram_elfarm-linux-objcopy -O binary -S init_sdram_elf init_sdram.binarm-linux-objdump -D -m arm init_sdram_elf > init_sdram.disinit_sdram_elf : init.oarm-linux-ld -Ttext 0x40000000 -g init.o -o init_sdram_elfinit.o : init.Sarm-linux-gcc -g -c -o init.o init.Sclean:rm -f init_sdram.dis init_sdram.bin init_sdram_elf *.o
Available commands are:
有效的命令如下:
(本人简单翻译了一下如有错误还请指出,谢谢各位网友)
----------------------
f Firmware info(显示固件信息)
h halt(暂停CPU)
g go(运行)
Sleep Waits the given time (in milliseconds). Syntax: Sleep <delay>(睡眠多少毫秒)
s Single step the target chip(单步调试目标芯片)
st Show hardware status(显示硬件状态)
hwinfo Show hardware info(显示硬件信息)
mem Read memory. Syntax: mem <Addr>, <NumBytes> (hex)(读内存)
mem8 Read 8-bit items. Syntax: mem8 <Addr>, <NumBytes> (hex)(读内存8字节)
mem16 Read 16-bit items. Syntax: mem16 <Addr>, <NumItems> (hex)mem32 Read 32-bit items. Syntax: mem32 <Addr>, <NumItems> (hex)
w1 Write 8-bit items. Syntax: w1 <Addr>, <Data> (hex)(写内存8字节)
w2 Write 16-bit items. Syntax: w2 <Addr>, <Data> (hex)(读内存16字节)
w4 Write 32-bit items. Syntax: w4 <Addr>, <Data> (hex)(读内存32字节)
wm Write test words. Syntax: wm <NumWords>
is Identify length of scan chain select register
ms Measure length of scan chain. Syntax: ms <Scan chain>
mr Measure RTCK react time. Syntax: mr
q Quit(推出)
qc Close JLink connection and quit(关闭jlink连接,并退出)
r Reset target (RESET)(重启目标)
rx Reset target (RESET). Syntax: rx <DelayAfterReset>(延时重启)
RSetType Set the current reset type. Syntax: RSetType <type>
Regs Display contents of registers(显示寄存器信息)
wreg Write register. Syntax: wreg <RegName>, <Value>(写继承器)
SetBP Set breakpoint. Syntax: SetBP <addr> [A/T] [S/H](设置断点)
SetWP Set Watchpoint. Syntax: <Addr> [R/W] [<Data> [<D-Mask>] [A-Mask]](设置监视点)
ClrBP Clear breakpoint. Syntax: ClrBP <BP_Handle>(清除断点)
ClrWP Clear watchpoint. Syntax: ClrWP <WP_Handle>(清楚监视点)
VCatch Write vector catch. Syntax: VCatch <Value>
loadbin Load binary file into target memory.(下载bin文件到目标内存)
Syntax: loadbin <filename>, <addr>
savebin Saves target memory into binary file.(保存BIN文件)
Syntax: savebin <filename>, <addr>, <NumBytes>
SetPC Set the PC to specified value. Syntax: SetPC <Addr>(设置PC(r15)寄存器)
le Change to little endian mode(设置成小端模式)
be Change to big endian mode(设置成大端模式)
log Enables log to file. Syntax: log <filename>
unlock Unlocks a device. Syntax: unlock <DeviceName>
Type unlock without <DeviceName> to get a list
of supported device names.
nRESET has to be connected
---- CP15 ------------
rce Read CP15. Syntax: rce <Op1>, <CRn>, <CRm>, <Op2>(读CP15)
wce Write CP15. Syntax: wce <Op1>, <CRn>, <CRm>, <Op2>, <Data>(写CP15)
---- ICE -------------
Ice Show state of the embedded ice macrocell (ICE breaker)
ri Read Ice reg. Syntax: ri <RegIndex>(hex)
wi Write Ice reg. Syntax: wi <RegIndex>, <Data>(hex)
---- ETM -------------
etm Show ETM status
re Read ETM reg. Syntax: re <RegIndex>
we Write ETM reg. Syntax: we <RegIndex>, <Data>(hex)
es Start trace
---- ETB -------------
etb Show ETB status
rb Read ETB register. Syntax: rb <RegIndex>
wb Write ETB register. Syntax: wb <RegIndex>, <Data>(hex)
---- TRACE -----------
TAddBranch TRACE - Add branch instruction to trace buffer. Paras:<Addr>,<BAddr>
TAddInst TRACE - Add (non-branch) instruction to trace buffer. Syntax: <Addr>
TClear TRACE - Clear buffer
TSetSize TRACE - Set Size of trace buffer
TSetFormat TRACE - SetFormat
TSR TRACE - Show Regions (and analyze trace buffer)
TStart TRACE - Start
TStop TRACE - Stop
---- SWO -------------
SWOSpeed SWO - Show supported speeds
SWOStart SWO - Start
SWOStop SWO - Stop
SWOStat SWO - Display SWO status
SWORead SWO - Read and display SWO data
SWOShow SWO - Read and analyze SWO data
SWOFlush SWO - Flush data
---- File I/O --------
fwrite Write file to emulator
fread Read file from emulator
fshow Read and display file from emulator
fdelete Delete file on emulator
fsize Display size of file on emulator
---- Test ------------
thg Run go/halt 1000 times
ts Run step 1000 times
testwspeed Test download speed. Syntax: testwspeed [<Addr> [<Size>]]
testrspeed Test upload speed. Syntax: testrspeed [<Addr> [<Size>] [<NumBlock
s>]]
testcspeed Test CPU speed. Syntax: testcspeed [<RAMAddr>]
---- JTAG ------------
Config Set number of IR/DR bits before ARM device.
Syntax: Config <IRpre>, <DRpre>
speed Set JTAG speed. Syntax: speed <freq>|auto|adaptive, e.g. speed 2000,
speed a
i Read JTAG Id (Host CPU)
wjc Write JTAG command (IR). Syntax: wjc <Data>(hex)
wjd Write JTAG data (DR). Syntax: wjd <Data32>(hex), <NumBits>(dec)
RTAP Reset TAP Controller using state machine (111110)
wjraw Write Raw JTAG data. Syntax: wjraw <NumBits(dec)>, <tms>, <tdi>
rt Reset TAP Controller (nTRST)
---- JTAG-Hardware ---
c00 Create clock with TDI = TMS = 0
c Clock
0 Clear TDI
1 Set TDI
t0 Clear TMS
t1 Set TMS
trst0 Clear TRST
trst1 Set TRST
r0 Clear RESET
r1 Set RESET
---- Connection ------
usb Connect to J-Link via USB. Syntax: usb <port>, where port is 0..3
ip Connect to J-Link ARM Pro or J-Link TCP/IP Server via TCP/IP.
Syntax: ip <ip_addr>
---- Configuration ---
si Select target interface. Syntax: si <Interface>,
where 0=JTAG and 1=SWD.
power Switch power supply for target. Syntax: power <State> [perm],
where State is either On or Off. Example: power on perm
wconf Write configuration byte. Syntax: wconf <offset>, <data>
rconf Read configuration bytes. Syntax: rconf
usbaddr Assign usb address to the connected J-Link: Syntax: usbaddr = <addr>
ipaddr Show/Assign IP address and subnetmask of/to the connected J-Link.
gwaddr Show/Assign network gateway address of/to the connected J-Link.
dnsaddr Show/Assign network DNS server address of/to the connected J-Link.
conf Show configuration of the connected J-Link.
ecp Enable the J-Link control panel.
calibrate Calibrate the target current measurement.
selemu Select a emulator to communicate with,
from a list of all emulators which are connected to the host
The interfaces to search on, can be specified
Syntax: selemu [<Interface0> <Interface1> ...]
ShowEmuList Shows a list of all emulators which are connected to the host.
The interfaces to search on, can be specified.
Syntax: ShowEmuList [<Interface0> <Interface1> ...]
----------------------
NOTE: Specifying a filename in command line
will start J-Link Commander in script mode.
几个常用命令:
usb--------连接目标板
r----------重启目标板
halt-------停止cpu运行的程序
loadbin----加载可执行的二进制文件
g----------跳到代码段地址执行
s----------单步执行(调试用)
setpc-----设置pc寄存器的值(调试用)
setbp-----设置断点
Regs-------读寄存器组织
wreg-------写寄存器
mem--------读内存
w4---------写内存
power off mmu---关闭mmu,这个对于裸板调试很重要
w4 cpsr,0x0000001f------切换到系统模式
speed------设置jtag的传输速率
rce 0,c0,c0,0-----设置cp15寄存器的第1个寄存器为0
Jlink 烧写文件到 nandflash norflash相关推荐
- jlink 烧写norflash方法
前言: 许多入门者有时候不小心会把norflash中的bootload给弄没了(或者移植uboot 到nor flash中),导致norfash和nandflash都没有启动代码,这时候很郁闷,因为你 ...
- [嵌入式] 使用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 ...
- 用J-Link烧写u-boot到Nor Flash—— 韦东山嵌入式Linux视频学习笔记04
说明:本文的实验环境为Windows7+JZ2440 J-Link 只支持烧写 Nor Flash,不支持烧写 Nand Flash(为什么呢?先不探究原因). 如果想烧写程序到Nand Flash, ...
- 用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 ...
- JLINK烧写U-boot到NAND Flash中
http://www.linuxidc.com/Linux/2 很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash ...
- 电子时钟制作(瑞萨RA)(3)----使用J-Link烧写程序到瑞萨芯片
概述 这一节主要讲解如何使用J-Link对瑞萨RA芯片进行烧录. 硬件准备 首先需要准备一个开发板,这里我准备的是芯片型号R7FA2E1A72DFL的开发板: 视频教程 https://www.bil ...
最新文章
- 编写和布置一个List Event Receivers(下)
- tensorflow2caffe(1) : caffemodel解析,caffemodel里面到底记录了什么?
- C 语言快速入门,21 个小项目足矣!「不走弯路就是捷径」
- 工况密度和标况密度怎么换算_什么是载流量?导线的载流量与电流密度怎么计算?图文详解!...
- linux安装交叉编译环境
- rtklib 天线相位中心_发射天线的作用
- 计算机图形学E9——裁剪——固定矩形窗口裁剪多边形(凸多边形/凹多边形)
- 乐鑫esp8266基于freeRtos实现私有服务器本地远程OTA升级
- 两个mysql主从同步_如何配置两个MySQL数据库之间的主从同步功能
- document.documentElement.clientHeight与document.body.clientHeight的区别
- 大写金额用计算机简单些,大写一到十怎么写 数字一到十的大写怎么写(开票用的大写)...
- JVM内存结构(1.8)
- PageHelper:在系统中发现了多个分页插件,请检查系统配置
- 微信公众号网页开发-Vue项目坑点分析
- 技术方向决策的几点思考
- Openstack中给windows虚拟机加载virtion驱动
- OFDM载波间隔_LTE-子载波间隔与符号持续时长关系
- 基于matlab的自动识别谱峰的程序设计,基于MATLAB的自动识别谱峰的程序设计
- MVCC能保证不产生幻读吗
- XenDeskTop framework