Jlink + ADS调试 S3C2440

用ADS(AXD Debugger),实现u-boot的源代码级调试(c语言级) 如果板子没有网口,在调试U-Boot和uclinux时就没法用gdb调试。这时只能利用串口和JTAG口进行调试,linux下可以用BDI这个玩意调试,可是BDI非常昂贵,不适合大众需求。我总结了下,根据我的调试经验,可以用ADS调试linux的程序。打开AXD,按下 Alt + L ;或者点System Views下Command Line Interface,就可以打开一个命令行: 阅读详情

我只会在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.youkuaiyun.com/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


S3C2440的ads的例程。 ADS的一个例程。里面有我的注释。 如果你用的2440的板子。稍微看一下应该很容易就可以改过去用了。需要修改的地方不多。主要是根据你使用的dram和flash的类型修改即可。另外ads的设置有相应的 XML文件。这个文件对其他的板子也可以通用的。 里面有使用文档。 立即下载

相关推荐

jlink+ads+s3c2440开发环境配置指南

详细的jlink+ads+s3c2440开发环境配置,一步一步教你开始arm开发

2440+jlink初始化SDRM

ADS 项目属性设置:-ro-base = 0x30000000entry 0x30000000Init Section: 2440init.o InitAXD下需要加载一个SDRAM初始化文件。AXD下-->Option->Config Interface->session file->run configuration script.选择一个初始化文件,内容如下:Setmem 0x53000000 0x00000000 32 Setmem 0x4A000008 0xFFFFFFFF 32 Setmem

lgb571的专栏 1795

Manimgl 进阶笔记

目录 一、调整视频输出的纵横比 二、调整预览窗口的尺寸 三、在开发工具中直接调试 一、调整视频输出的纵横比 调整输出视频的纵横比,在日常开发中属于比较基本的需求。要使用 Manimgl 得到期望的分辨率的视频输出需要修改以下几个地方: 第一步:在 custom_config.yml 配置文件中通过 camera_qualities设置视频的输出分辨率。manimlib 框架已经在 default_config.yml 文件中设置了四种视频输出分辨率,default_qualities 参数.

gunnery的专栏 2859

使用ads1.2调试yl2440 s3c2440 开发板的过程记录

使用ads1.2调试yl2440 s3c2440 开发板的过程记录 2009-9-29 21:49:13    收藏  |  打印  | 投票  |  评论  |  阅读  ◇字体:[大 中 小]         因为偶也曾经是个新手,所以就从这里入手的.     其实我想做arm-linux学习,以后这个方法可能用的不多,因为可以用linux下的gdb软件了.既然是学习就先

abel__2008的专栏 945

Windows 下 Codex MCP 服务配置全攻略:从环境搭建到实战避坑

本文详细介绍了在Windows系统下配置Codex MCP服务的完整流程与实战避坑指南。内容涵盖从Node.js环境搭建、Codex CLI安装,到核心配置文件config.toml的编写与解析,并重点解决了Windows平台特有的环境变量设置、MCP服务启动命令适配等关键难点,帮助开发者顺利完成从环境准备到编辑器插件连接的整个配置过程。

weixin_28826545的博客 2070

DeepSeek API调用太复杂?OneAPI一站式聚合解决方案

本文介绍了OneAPI如何作为一站式聚合解决方案,简化DeepSeek API的调用流程。通过统一接口、智能路由和模型映射等核心功能,OneAPI大幅降低了多API适配的复杂性,提升开发效率。文章还提供了详细的部署指南和高阶使用技巧,帮助开发者快速实现API聚合管理。

weixin_27215337的博客 381

ADS1.2使用jlink调试程序(调试芯片s3c2440 arm9)

一、软件安装 ADS1.2下载: http://down.drv5.cn/www.drv5.cn/arm ads1.2.rar jlink驱动下载: http://fastsoft.onlinedown.net/down/JLink_Windows_V630d.exe S3C2440led裸机程序(GT2440开发板的): https://download.youkuaiyun.com/download/u0...

Yfw的博客 1755

医学图像分割实战:基于TransUNet训练自己的眼底硬渗出物数据集(附完整代码)

本文详细介绍了基于TransUNet的眼底硬渗出物分割实战指南,涵盖数据预处理、模型调优、训练策略及性能优化等关键环节。通过代码复现和实验对比,展示了TransUNet在医学图像分割中的优势,为糖尿病视网膜病变的早期诊断提供技术支持。

weixin_42524708的博客 363

Jlink在ADS下的配置说明及常见问题解决办法

阅读1087次 2013/4/2 21:04:37 Jlink在ADS下的配置说明及常见问题解决办法Zhaoxj 参考文档: *1、TQ2440开发板使用手册V3.2_20121203.pdf 2、JLINK ADS 2440.pdf 注:1、本说明是针对S3C2440而写的。其他的配置基本一样,就是型号要改。我会在文章中说明,反正出现的问题都差不多。

sun_z_x的专栏 5391

WPF实战:HelixToolkit 3D图形开发入门指南

本文详细介绍了如何使用HelixToolkit在WPF中进行3D图形开发,从环境搭建到创建第一个3D程序(如彩色立方体),再到进阶技巧和常见问题排查。通过实战案例和性能优化建议,帮助开发者快速掌握3D场景构建和模型导入技术,提升开发效率。

weixin_29197051的博客 761

MOS管驱动电路设计全攻略

MOS管驱动电路设计全攻略

让你爱上电路设计 3634

OpenJTAG与JLink的区别比较

【转】http://xky19870905.blog.163.com/blog/static/5185541720095795924718/ OpenJTAG与JLink的区别比较:相同点:都同时具备USB转JTAG、USB转串口功能差别:1. 操作系统:OpenJTAG可以用在Windows、Linux下;JLink只能用在Windows下,在Linux下它的调试功能无法使用,只能使用“

yeying78521的专栏 2524

ubuntu-emto-cpa 测试和使用(单核运行)

ubuntu-emto-cpa 测试和使用(单核运行)

qq_45834835的博客 1400

Jlink在ADS下的配置说明及常见问题解决办法 (转载)

**原文地址:[Jlink在ADS下的配置说明及常见问题解决办法] (http://www.360doc.com/content/13/1124/23/6844270_331917942.shtml)** 参考文档: *1、TQ2440开发板使用手册V3.2_20121203.pdf 2、JLINK ADS 2440.pdf 注:1、本说明是针对S3C2440而写的。其他的配置基本一样,就是

DOCAICSD的专栏 2322

Flink实战案例(十三):Flink DataStream 八大分区策略与自定义分区器

声明:本系列博客是根据SGG的视频整理而成,非常适合大家入门学习。 《2021年最新版大数据面试题全面开启更新》 分区策略决定了一条数据如何发送给下游。Flink中默认提供了八大分区策略(也叫分区器)。 本文基于Flink 1.9.0总结Flink DataStream中的八大分区策略以及手动实现一个自定义分区器。 八大分区策略继承关系图 ChannelSelector: 接口,决定将记录写入哪个Channel。有3个方法: void setup(int numberOfChannels):

微信搜:import_bigdata,大数据领域硬核原创作者 1124

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ARM学习笔记整理(五)

最近在使用ADS1.2调试S3C2440的时候遇到下面的问题: 1、在启动AXD后遇到 DBT Warning 00049: Image probably in wrong byte sex 这样的错误,经过多次试验,发现时JLink没有配置好的原因: CPU的Endian应该配置为Little endian,如下: 经过这样的配置后关闭AXD,再重新打开AXD后在加载完imag...

xiebingsuccess的博客 559

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ADS1.2+2440+j-link(亲测)

一、总括。 首先,偶是十足的一个菜鸟,偶接触 ARM 还不到 4 天时间,所以所书写的文档会 有很多不足之处,希望高人指点。 偶的板上本来可以利用 VIVI 下载程序了,偶是从 AVR 上转过来的,从来没用过 仿真器,所以现在学更高级的东西,想学好,就必须完全理解 ARM 最底层的运作,所 以就在网上购买了 JLINK(偶电脑上没有串口和并口,所以只能买 U 口的). 二、硬件环境。 开发板: -

zhulizhen的专栏 3761

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

OpenJTAG+Eclipse 3.5+GDB+Mini2440图文教程

OpenJTAG+Eclipse 3.5+GDB+Mini2440图文教程   OpenJTAG与JLink的区别比较: 相同点:都同时具备USB转JTAG、USB转串口功能 差别: 1. 操作系统: OpenJTAG可以用在Windows、Linux下; JLink只能用在Windows下,在Linux下它的调试功能无法使用,只能使用“JLink+USB转串口2合1”中的...

weixin_34358365的博客 151

OpenJTAG与Jlink/J-link的区别

OpenJTAG与JLink的区别比较: 相同点:都同时具备USB转JTAG、USB转串口功能 差别: 1. 操作系统: OpenJTAG可以用在Windows、Linux下; JLink只能用在Windows下,在Linux下它的调试功能无法使用,只能使用“JLink+USB转串口2合1”中的USB转串口功能 2. 集成开发环境...

weixin_30381793的博客 118

JLINK+ADS+mini2440配置////配置J-Link为mini2440烧写bootloader

 使用ADS1.2的时候进入AXD调试环境回出现“ the session file could not be loaded”解决方案:1:将工程文件放在不包含中文路径的目录下。  2:设置AXD->confing Interface 中general中的save and load default session前面的选项去掉。一:在AXD->options ->configure i

zhulizhen的专栏 3924

tq2440JLink烧写裸机程序的问题

首先回顾一下编写裸机程序的步骤: 1 .使用ADS1.2创建工程,在DebugRel setting中的Language setting中要选中ARM920T,因为用的是S3C2440的CPU。ARM Linker中的起始地址是0x30000000,首先执行的文件为2440init.o,入口函数式init。 2 .添加所需要的文件到工程中,编写Main.c文件。当然入门的话只需要写这个文件

xuanchen1616的专栏 786

s3c2440裸机开发环境的搭建

s3c2440裸机开发环境的搭建 用于arm裸机程序开发的IDE基本有MDK,IAR,还有ADS,也可以选择在linux下安装交叉编译链来进行开发。笔者选择的是MDK作为我进行开发的IDE。下面介绍笔者搭建开发环境的过程。 笔者主要参考了两篇博文来进行开发环境的搭建的,分别是: http://blog.youkuaiyun.com/mybelief321/article/details/8910528

lookerson的专栏 3774

采用JLink+ADS1.2调试uboot的方法

转自:http://blog.youkuaiyun.com/jeffchen_fz/article/details/7417347 刚开始想通过Nor Flash中的supervivi+DNW的“Download & Run 功能”将uboot.bin下到SDRAM进行调试,但是由于笔记本已经被装成ubuntu + Virtualbox(Windows XP),将supervivi阶段的

l502091250的专栏 2000

在s3c2440上用GDB调试linux内核

前面的文章介绍了如何用ADS调试uboot,把uboot调通以后,引导linux,却发现怎么都没有打印log输出。ADS在打开mmu做过页面映射以后就无法追踪调试下去了,所以得用其他的方法进行追踪调试。网上有好多说可以用openocd来进行调试,也尝试了下这个方法,发现不好配置,连不上调试板,最终使用Jlink gdb成功调试,不过网上的资料都比较分散,这边做个笔记方便日后翻看。 我这边是在u...

oqqYuJi12345678的博客 851
上一篇: 使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法(暂未验证)
下一篇: 2440初始化存储器原理(接上一篇)
shareCode
博客等级 码龄15年 125粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值