搜索
bottom↓
回复: 19

关于2440连接Jlink的问题

[复制链接]

出0入0汤圆

发表于 2011-3-7 11:16:56 | 显示全部楼层 |阅读模式
想用Jlink和mini2440连接

但是在工程样板里找不到2440 的*.jflash

后来查阅资料说

这种外置储存器的如2440是要自己写个什么

外部FLASH的下载算法

小弟是使用MDK的

后来参见

http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=3361280

但是楼主是用的是ULINK啊~~~

我的Jlink连接不上

但是我想知道那个帖子里的BOOTLOADER烧写在哪?  NOR?   NAND?

我只是想在SDRAM里调试下程序

请问大家如何才能让2440和Jlink连接

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2011-3-7 12:03:35 | 显示全部楼层
如果你用IAR的话,我倒是有个模板可以在SDRAM里调试程序,MDK没研究过。
在SDRAM里调程序的思路是,2440从NAND启动,0x0地址被映射为内部SRAM。IAR可以在调试程序之前,可以使用x.mac文件对2440内部关键的几个寄存器初始化,包括总线,时钟,看门狗等等。以下为我的.mac文件配置:
execUserPreload()
{
        __writeMemory32(0x00000000,0x53000000,"Memory");  //关看门狗
        __writeMemory32(0xffffffff,0x4a000008,"Memory");  //关中断
        __writeMemory32(0x000007ff,0x4a00001c,"Memory");
        __writeMemory32(0x00000000,0x53000000,"Memory");
        __writeMemory32(0x000055aa,0x56000050,"Memory");
        __writeMemory32(0x00000007,0x4c000014,"Memory");
        __writeMemory32(0x00ffffff,0x4c000000,"Memory");
        __writeMemory32(0x00061012,0x4c000004,"Memory");
        __writeMemory32(0x00040042,0x4c000008,"Memory");
        __writeMemory32(0x22111120,0x48000000,"Memory");
        __writeMemory32(0x00002f50,0x48000004,"Memory");
        __writeMemory32(0x00000700,0x48000008,"Memory");
        __writeMemory32(0x00000700,0x4800000c,"Memory");
        __writeMemory32(0x00000700,0x48000010,"Memory");
        __writeMemory32(0x00000700,0x48000014,"Memory");
        __writeMemory32(0x0007fffc,0x48000018,"Memory");
        __writeMemory32(0x00018005,0x4800001c,"Memory");
        __writeMemory32(0x00018005,0x48000020,"Memory");
        __writeMemory32(0x008e0459,0x48000024,"Memory");
        __writeMemory32(0x00000032,0x48000028,"Memory");
        __writeMemory32(0x00000030,0x4800002c,"Memory");
        __writeMemory32(0x00000030,0x48000030,"Memory");
}
初始化完了之后SDRAM就可以用了,当然,你的程序也需要link到SDRAM的地址,我的目标板是Mini2440,地址是0x30000000。等你的程序被下载到0x30000000之后你就可以开始调试了。最重要的是你的初始化程序一定要在没开中断之前把你的vector table复制到地址0x0去!如果不复制,一旦产生中断你的程序就会跑飞了!还有一个要注意的问题就是,一般初始化文件里面的vector table使用指令
LDR PC,=XXX_Hndlr伪指令,而XXX_Hndlr的入口地址一般以32位数据的形式存在指令之后,下面是某个vector table在IAR的反汇编,所以从0x30000000 到 0x3000003c的内容都必须复制到0x0去,只复制vector table也是有问题的。

        ldr   pc,=__iar_program_start   ;; Reset
TEXT_BASE:
__vector:
   0x30000000: 0xe59ff018     LDR       pc, _?0                 ; ?cstartup
        ldr   pc,=OS_CPU_ARM_ExceptUndefInstrHndlr
   0x30000004: 0xe59ff018     LDR       pc, _?1                 ; OS_CPU_ARM_ExceptUndefInstrHndlr
        ldr   pc,=OS_CPU_ARM_ExceptSwiHndlr
   0x30000008: 0xe59ff018     LDR       pc, _?2                 ; OS_CPU_ARM_ExceptSwiHndlr
        ldr   pc,=OS_CPU_ARM_ExceptPrefetchAbortHndlr
   0x3000000c: 0xe59ff018     LDR       pc, _?3                 ; OS_CPU_ARM_ExceptPrefetchAbortHndlr
        ldr   pc,=OS_CPU_ARM_ExceptDataAbortHndlr
   0x30000010: 0xe59ff018     LDR       pc, _?4                 ; OS_CPU_ARM_ExceptDataAbortHndlr
        ldr   pc,=OS_CPU_ARM_ExceptAddrAbortHndlr
   0x30000014: 0xe59ff018     LDR       pc, _?5                 ; OS_CPU_ARM_ExceptAddrAbortHndlr
        ldr   pc,=OS_CPU_ARM_ExceptIrqHndlr
   0x30000018: 0xe59ff018     LDR       pc, _?6                 ; OS_CPU_ARM_ExceptIrqHndlr
        ldr   pc,=OS_CPU_ARM_ExceptFiqHndlr
   0x3000001c: 0xe59ff018     LDR       pc, _?7                 ; OS_CPU_ARM_ExceptFiqHndlr
_?0:
   0x30000020: 0x30006300     DC32      ?cstartup
_?1:
   0x30000024: 0x30004724     DC32      OS_CPU_ARM_ExceptUndefInstrHndlr
_?2:
   0x30000028: 0x30004734     DC32      OS_CPU_ARM_ExceptSwiHndlr
_?3:
   0x3000002c: 0x30004744     DC32      OS_CPU_ARM_ExceptPrefetchAbortHndlr
_?4:
   0x30000030: 0x30004758     DC32      OS_CPU_ARM_ExceptDataAbortHndlr
_?5:
   0x30000034: 0x3000476c     DC32      OS_CPU_ARM_ExceptAddrAbortHndlr
_?6:
   0x30000038: 0x30004780     DC32      OS_CPU_ARM_ExceptIrqHndlr
_?7:
   0x3000003c: 0x30004794     DC32      OS_CPU_ARM_ExceptFiqHndlr

出0入0汤圆

发表于 2011-3-7 13:20:45 | 显示全部楼层
不建议使用Jlink

出0入0汤圆

 楼主| 发表于 2011-3-7 19:55:45 | 显示全部楼层
谢谢1楼的回复

我仔细研究了下, 还是无果,水平太低了~~~~

2楼的

我很纠结啊

我~~~我~~~~~~~

出0入0汤圆

发表于 2011-3-8 11:10:40 | 显示全部楼层
回复【3楼】format  
谢谢1楼的回复
我仔细研究了下, 还是无果,水平太低了~~~~
2楼的
我很纠结啊
我~~~我~~~~~~~
-----------------------------------------------------------------------

现在又usb口的jtag可以满足你的要求,现在山寨版的Jlink和ulink容易坏,不稳定

出0入0汤圆

发表于 2011-3-8 16:04:53 | 显示全部楼层
我也纠结于JLINK再KEIL中调试S3C2440,第一次,连裸机程序都没跑起,完全不懂流程和配置原理

出0入0汤圆

 楼主| 发表于 2011-3-8 17:19:31 | 显示全部楼层
回复【4楼】chinaye1
回复【3楼】format   
谢谢1楼的回复
我仔细研究了下, 还是无果,水平太低了~~~~
2楼的
我很纠结啊
我~~~我~~~~~~~
-----------------------------------------------------------------------
现在又usb口的jtag可以满足你的要求,现在山寨版的jlink和ulink容易坏,不稳定
-----------------------------------------------------------------------

我有个并口的H-JTAG,只是我不喜欢它支持的断点太少

没有想到Jlink杯具了~~~~

出0入0汤圆

 楼主| 发表于 2011-3-8 17:20:13 | 显示全部楼层
回复【5楼】cgc_good
我也纠结于jlink再keil中调试s3c2440,第一次,连裸机程序都没跑起,完全不懂流程和配置原理
-----------------------------------------------------------------------

后来怎么办了??

我今天查资料说ADS支持Jlink

回家试验下去的说

出0入0汤圆

发表于 2011-3-8 17:26:18 | 显示全部楼层
一会晚上回去我看下我是怎么设置的

出0入0汤圆

发表于 2011-3-9 00:01:05 | 显示全部楼层
我没设置也运行的很正常。

出0入0汤圆

发表于 2011-3-18 17:52:52 | 显示全部楼层
我觉得1楼的回复很清楚了,就是因为没有复制中断向量表,芯片产生复位中断(0x0处),程序却在0x30000000,必定会跑飞。只是现在问题是怎么禁止中断,或者搬移vector table到0x0处的问题了,一起加油,我要是弄出来就告诉大家

出0入0汤圆

发表于 2011-3-19 12:02:39 | 显示全部楼层
看看你们的问题,我觉得是不是会和启动方式有一些关系?
在OM0:1这两个管脚设置启动方式。会不会在NAND中启动和在NOR中启动有不同呢?

出0入0汤圆

发表于 2011-3-19 12:09:27 | 显示全部楼层
在keil里面要使用一个脚本,在load之前,先把sdram初始化好,要不然程序怎么load到sdram中呢?keil当然会报错

出0入31汤圆

发表于 2011-3-19 12:10:41 | 显示全部楼层
坛子里搜

出0入0汤圆

 楼主| 发表于 2011-6-25 23:00:15 | 显示全部楼层
已经搞定了

点击此处下载 ourdev_652380G6KI58.rar(文件大小:93K) (原文件名:2440+Jlink4.081调试.rar)

根据

http://apps.hi.baidu.com/share/detail/31123581

修改而来

但是不确定是否真的运行在SDRAM

还请各位多多指点

出0入0汤圆

发表于 2011-9-22 17:05:27 | 显示全部楼层
请问楼主你能在SDRAM里面调试中断吗,这才是关键,麻烦楼主指点下

出0入0汤圆

发表于 2012-1-3 03:23:38 | 显示全部楼层
这个我也不会啊,我也来学习学习了

出0入0汤圆

发表于 2012-5-1 15:41:51 | 显示全部楼层
正需要啊,我的裸机程序也没跑起来。

出0入0汤圆

发表于 2012-5-1 16:04:23 | 显示全部楼层
JLINK连接TQ244O没有鸭犁。

出0入0汤圆

发表于 2013-4-2 05:30:10 | 显示全部楼层
弱弱问一下  该如何用jlink下载。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 08:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表