【原创】用IAR EWARM和J-Link调试DM355和DM365
最近公司用TI的DM355和DM365,就搞了2片来玩玩,结果。。。搞了2个星期没搞定仿真器。。。
XDS510USB和SEED-XDS510USB2.0,真TMD难用。。。请原谅,提起就想骂人。。。
CCS3.2,CCS3.3,CCS4.0都装了N遍了,还是搞不定。。。
上合众达网站下载驱动,居然还有“后门”病毒。。。
算了。。。我放弃,改最熟的IAR EWARM和J-Link算了,反正DM355和DM365都是ARM926EJ-s内核,没理由EWARM和J-Link搞不定的。。。
由此,我开始了试验:
1) J-Link试验
要用J-Link调试DM355和DM365,第一步,在J-Link commander里能够找到DM355和DM365的ARM926EJ-s内核,用的J-Link使用v4.14d驱动。
EMU0和EMU1均上拉。
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564173SPF28O.jpg
J-Link没有找到ARM926内核 (原文件名:DM365-1.jpg)
看这图,明显J-Link没有找到ARM926EJ-s内核呀。。。而且。。。IRLen居然是6bit,这明显不对,ARM926的IR应该是4bit才对。
开始满世界找为什么。。。
原来。。。TI这个大BT,搞了个Jtag router,叫什么ICEPick
目前我能找到最权威的阐述ICEPick的文档:
Tools For Debugging JTAG and Power Issues on DaVinci and OMAP devicesourdev_564174KRKX1N.pdf(文件大小:392K) (原文件名:sprp603.pdf)
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564211J97YSN.jpg
(原文件名:IRlen.jpg)
粗粗地看了一下,原来首先要通过TAP设置ICEPick,把ARM核加载到JTAG边界扫描链上来。
幸好,Segger公司提供了脚本方式来设置J-Link。于是,就写了如下脚本:
JTAG.IRLen=6;
JTAG.Speed = 1000; // Set high JTAG speed
JTAG.Write(6, 0x1F,0x1F); // TAP Reset
JTAG.WriteIR(7);
JTAG.WriteDR(8, 0x89);
JTAG.WriteIR(2);
JTAG.WriteDR(32, 0x81000082); // Connect and select router
JTAG.WriteDR(32, 0xA018206F); // set IP control
JTAG.WriteDR(32, 0xA018216F); // configure TAP0
JTAG.WriteIR(0x3F); // Bypass
JTAG.Write(10,0,0); // Write 10 clocks
JTAG.IRPRE=0;
JTAG.DRPRE=0;
JTAG.IRPOST=6;
JTAG.DRPOST=1;
JTAG.IRLen=4;
CPU=arm926ejs;
点击此处下载 ourdev_564179DY12LV.zip(文件大小:857字节) (原文件名:Default.zip)
保存成Default.JLinkScript,放到了\\SEGGER\JLinkARM_V414d\目录下,呵呵,顿时,J-Link找到了ARM926核:
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564175JNU4A4.jpg
J-Link找到ARM926核了 (原文件名:DM365-2.jpg)
2) 为IAR EWARM添加DM355和DM365
老则矩,先去找找有没有DM355和DM365的sample project,有的话,可以省掉不少事。。。
果不其然,EWARM里面没有DM355和DM365的sample project,没有DM355和DM365的头文件,连编译选项里面选择器件TI公司的器件都没有DM355和DM365。
放弃?不!IAR EWARM有很好的用户扩展性能,没有上述东西,我们都可以自己添加!!!
首先是为EWARM添加DM355和DM365这两个器件:
点击此处下载 ourdev_564177P6MNFS.zip(文件大小:1K) (原文件名:TexasInstruments.zip)
上面的压缩包里面有DM355.i79,DM355.menu,DM365.i79,DM365.menu,将它们放到\\IAR Systems\Embedded Workbench 5.4\arm\config\devices\TexasInstruments\目录下
好了,现在你的器件列表里是不是就有DM355和DM365了?
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564178KARNYD.jpg
(原文件名:DM365-3.jpg)
完成了上述步骤,只是告诉IAR EWARM,DM355和DM365是ARM926EJ-s内核,需要使用ARMV5T指令集来编译。
为了能够很好地调试DM355和DM365,还需要一个ddf文件,用于告诉IAR EWARM的调试器C-SPY,DM355和DM365有哪些寄存器。
点击此处下载 ourdev_564205X8IPO8.zip(文件大小:6K) (原文件名:ioDM355.zip)
DM365的请自行创建此文件。。。呵呵,其实是我还在创建中。。。
将ioDM355.ddf文件放到\\IAR Systems\Embedded Workbench 5.4\arm\config\debugger\TexasInstruments\目录下
这样,你在调试DM355时,寄存器查看窗口就有寄存器列表啦。。。
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564209FLFMUS.jpg
(原文件名:DM365-4.jpg)
仔细想想,好像还缺了点什么。。。对了。。。头文件。。。
点击此处下载 ourdev_564210G9N1CO.zip(文件大小:5K) (原文件名:ioDM355.zip)
好了好了,该有的文件都有了,我们可以创建项目了。
3) 创建DM355和DM365项目(以DM355为例)
很多人都问我IAR EWARM的项目该怎么创建,其实EWARM的用户手册说得绝对详细,不喜欢看中文的同仁,也可以去书城找到至少3本介绍EWARM的。
所以,我就简单贴一些图。。。
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564214GTN0BJ.jpg
(原文件名:DM355-1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564216TRB0RV.jpg
(原文件名:DM355-2.jpg)
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564217UDH55X.jpg
(原文件名:DM355-3.jpg)
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564218JV7IJ4.jpg
(原文件名:DM355-4.jpg)
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564220NK0HP4.jpg
(原文件名:DM355-5.jpg)
相同方法添加cfg文件夹。。。
开始添加源代码。。。
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_564237AZKX1V.jpg
(原文件名:DM355-6.jpg) 好文章,学习 好,mark . 按这个脚本也无法找到arm
出现如下错误,能帮改下脚本不
http://cache.amobbs.com/bbs_upload782111/files_32/ourdev_572477.JPG
(原文件名:{529B1F3C-6280-4063-9727-D1AC8A492EFB}.JPG) 很棒的说明!IAR 最高支持 ARM11 ,请问楼主能不能用 jlink 调试DevKit8000(OMAP35x)? 如果可行的话,可以不用 DSP/Bios 直接用中断和内存共享来操控 DSP 验证简单的算法了. to 【4楼】 xwq76
DM355?DM365?
请确认EMU0和EMU1均上拉。
to 【5楼】 zf8848
目前J-Link不支持Cortex-A8,据说要今年年底才支持。 刚上电能找到芯片,第二次就不行了。必须断电才行M365 好 谢谢taoist 总感觉里面的脚本有问题,找到arm9内核怎么ID是0x0000000 to 【7楼】 xwq76
果然是DM365...
DM365确实是有点奇怪,我这里也是只有第一次上电才行。
脚本是根据segger和BDI2000/3000的配置写的。因为没有更详细的介绍ICEPICK的资料了。。。
http://processors.wiki.ti.com/index.php/Xds100v2#Q:_My_XDS100v2_does_not_work_reliabily_with_the_OMAPL138_.2F_DM365_.2F_ARM926_core
有讲关于XDS100V2调试DM365也有些问题。。。 好文,感谢楼主分享 好 好贴,支持楼主。 确认EMU0和EMU1均上拉 可以每次找到arm芯片了 搜索到了,顺路谢谢楼主。 MARK 一定要顶 原创 回复【16楼】gyd0317 古驿道
-----------------------------------------------------------------------
楼主,厉害!能不能把你创建的工程共享一个?? 使用AXD老连接不上啊,楼主能不能修改下 其实简单的方法就是使用EMU0、EMU1都下拉,这样会禁用 ICEPick.
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_642222NHXY7U.jpg
DM365 with jlink, emu0/emu1 all pull down 好贴。
学习中……
3Q mark MARK mark 这个只能在IRAM DEBUG中使用啊,如果在DDR DEBUG和NOR DEBUG中仿真,该怎么配置呢? 受益匪浅。请问楼主脚本的资料是从哪里来?我在那文档里没找到。 taoist 真是仿真器专家啊 这个要好好学习下 好啊 mark Mark. mark! 关注 {:loveliness:} 如此好的东东居然等到现在才发现!?
置酷没商量啊! 不錯,公司正在搞個HDV,學習了! 终于发现使用IAR的大牛,感动. 楼主功力深厚啊.膜拜 ,学些学习. 谢谢楼主分享。 谢谢,在了解 DM365
页:
[1]