织梦CMS - 轻松建站从此开始!

罗索

Jlink+axd调试2440

落鹤生 发布于 2011-03-07 21:16 点击:次 
我只会在SDRAM中调试,说一下
TAG:

我只会在SDRAM中调试,说一下:
ADS 项目属性设置:
-ro-base = 0x30000000
entry 0x30000000
Init Section: 2440init.o Init
AXD下需要加载一个SDRAM初始化文件。
AXD下-->Option->Config Interface->session file->run configuration script.
选择一个初始化文件,内容如下:
Setmem 0x53000000 0x00000000 32
Setmem 0x4A000008 0xFFFFFFFF 32
Setmem 0x4A00001C 0x000007FF 32
Setmem 0x53000000 0x00000000 32
Setmem 0x56000050 0x000055AA 32
Setmem 0x4C000014 0x00000007 32
Setmem 0x4C000000 0x00FFFFFF 32
Setmem 0x4C000004 0x00061012 32
Setmem 0x4C000008 0x00040042 32
Setmem 0x48000000 0x22111120 32
Setmem 0x48000004 0x00002F50 32
Setmem 0x48000008 0x00000700 32
Setmem 0x4800000C 0x00000700 32
Setmem 0x48000010 0x00000700 32
Setmem 0x48000014 0x00000700 32
Setmem 0x48000018 0x0007FFFC 32
Setmem 0x4800001C 0x00018005 32
Setmem 0x48000020 0x00018005 32
Setmem 0x48000024 0x008E0459 32
Setmem 0x48000028 0x00000032 32
Setmem 0x4800002C 0x00000030 32
Setmem 0x48000030 0x00000030 32

关掉option->config procossor->semihosting
用以上的方法,能在SDRAM中运行一次或几次一个小程序。

option->config procossor->vector catch -> 选clear all
就不会有 too many breakpoint了。

几乎和JTAG一致。只是选的仿真DLL不同。

首先写好内存初始化文件,就是初始化内存控制器的表。-装好JLINK的光盘驱动。打开ADS点击debug,进入后选target configuration吧。设置内存初始化文件路径,设置JLINK 仿真DLL路径,貌似JLINK有说明的吧。
确定,下次启动ADS debug就自动使用JLINK了。

正解!

板子中一般都有bootloader,其启动过程中做好了硬件的初始化。所以你如果等boot起来再打开AXD调试(禁止J-LINK复位)就不用AXD DEBUGGER文件了

找到一个 Jlink V8 调试带字幕的视频教程,看看有没有用

http://v.youku.com/v_show/id_XMTQ5ODc5ODA4.html

http://topic.csdn.net/u/20090220/11/284f0b00-1737-4b31-9812-08481c5cbd93.html

(已解决)ARM79_0 raise an exption,cause:The processor was reset.


ADS+JLINK 为什么在进入AXD下载了IMAGE 运行就提示

ARM79_0 raise an excption,cause:The processor was reset.

下面是在网上搜到的解决方法:

ARM Jtag调试时,默认AXD并不会初始化SDRAM(这也难怪,AXD并不知道板子的连线情况),因此在把代码下到SDRAM调试之前需要进行初始化。也可以让AXD通过JTAG配置2440的SDRAM控制寄存器实现对SDRAM的初始化,引用别人的;劳动成果:

通过axd命令行对目标板进行设置

    因为sdram是在0x30000000地址的,所以需要先对存储器控制寄存器进行设置,在axd下设置方法是:选systems views->command lines interface,输入如下命令对寄存器设置

                  地址              值              长度

setmem 0x53000000, 0x00000000,   32

还可以将要设置的寄存器写入一个文件,在命令行用ob(obey) config.ini即可批量执行设置指令或在options->Configure Interface中做如下设置

我的config文件内容如下:

setmem 0x53000000, 0x00000000,    32

setmem 0x4a000008, 0xffffffff,             32

setmem 0x4a00001c, 0x00007fff,       32

setmem 0x48000000, 0x2212d110,    32

setmem 0x48000004, 0x00000f40,        32

setmem 0x48000008, 0x00002e50,    32

setmem 0x4800000c, 0x00002e50,    32

setmem 0x48000010, 0x00002e50,    32

setmem 0x48000014, 0x00002e50,    32

setmem 0x48000018, 0x00002e50,    32

setmem 0x4800001c, 0x00018005,    32

setmem 0x48000020, 0x00018005,    32

setmem 0x48000024, 0x00960542,    32

setmem 0x48000028, 0x00000032,    32

setmem 0x4800002c, 0x00000030,    32

setmem 0x48000030, 0x00000030,    32

如果设置正确则开发版的SDRAM生效,则可以加载目标代码了

http://www.e-online.cc/bbs/thread-76-1-1.html

今天调试时还发现了原来那个板子的问题(写0x30000000时0x30000001~3一起跟着变)

在option->configure interface->session file里面加载配置文件

内容如下

Setmem 0x53000000 0x00000000 32
Setmem 0x4A000008 0xFFFFFFFF 32
Setmem 0x4A00001C 0x000007FF 32
Setmem 0x53000000 0x00000000 32
Setmem 0x56000050 0x000055AA 32
Setmem 0x4C000014 0x00000007 32
Setmem 0x4C000000 0x00FFFFFF 32
Setmem 0x4C000004 0x00061012 32
Setmem 0x4C000008 0x00040042 32
Setmem 0x48000000 0x22111120 32
Setmem 0x48000004 0x00002F50 32
Setmem 0x48000008 0x00000700 32
Setmem 0x4800000C 0x00000700 32
Setmem 0x48000010 0x00000700 32
Setmem 0x48000014 0x00000700 32
Setmem 0x48000018 0x0007FFFC 32
Setmem 0x4800001C 0x00018005 32
Setmem 0x48000020 0x00018005 32
Setmem 0x48000024 0x008E0459 32
Setmem 0x48000028 0x00000032 32
Setmem 0x4800002C 0x00000030 32
Setmem 0x48000030 0x00000030 32

后,就OK了,看来还是内存配置的问题呀

把下面的内容放到一个文件里,用jink file.txt加载,可以自动把NBOOT2nd.bin下载并运行
注:如果没有W4那堆配置内存的命令,下载文件到RAM中会是错的

r
h
w4 0x53000000 0x00000000
w4 0x4A000008 0xFFFFFFFF
w4 0x4A00001C 0x000007FF
w4 0x53000000 0x00000000
w4 0x56000050 0x000055AA
w4 0x4C000014 0x00000007
w4 0x4C000000 0x00FFFFFF
w4 0x4C000004 0x00061012
w4 0x4C000008 0x00040042
w4 0x48000000 0x22111120
w4 0x48000004 0x00002F50
w4 0x48000008 0x00000700
w4 0x4800000C 0x00000700
w4 0x48000010 0x00000700
w4 0x48000014 0x00000700
w4 0x48000018 0x0007FFFC
w4 0x4800001C 0x00018005
w4 0x48000020 0x00018005
w4 0x48000024 0x008E0459
w4 0x48000028 0x00000032
w4 0x4800002C 0x00000030
w4 0x48000030 0x00000030


speed 12000
loadbin d:\NBOOT2nd.bin,0x30000000
setpc 0x30000000
g

//用下面命令可以检测内存中写入的数据是否正确

mem 30000000,16
w1 30000000,0x12
mem 30000000,16

(mikenoodle)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201103/11034.html]
本文出处:百度博客 作者:mikenoodle
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容