Jlink烧写问题
发布时间:2020-12-15 06:14:16 所属栏目:百科 来源:网络整理
导读:ARM9“裸板”编程授课过程中,发现很多同学都想用笔记本调试2440。无奈亚嵌的JTAG是并口Wiggler,可是现在的笔记本都没有并口,有些人买了usb转并口,可是又多半用不了。上网搜索,相关的文章不多。于是我专门为此做了一些研究,特将一些经验在此分享,希望
ARM9“裸板”编程授课过程中,发现很多同学都想用笔记本调试2440。无奈亚嵌的JTAG是并口Wiggler,可是现在的笔记本都没有并口,有些人买了usb转并口,可是又多半用不了。上网搜索,相关的文章不多。于是我专门为此做了一些研究,特将一些经验在此分享,希望对有此需求的朋友有所帮助。
? ? 目前市面上流行的ARM JTAG方案有3种,一种是J-LINK配IAR,一种是U-LINK配KEIL,一种是OpenJTAG配OpenOCD+GDB,因J-LINK目前有SZ版价位比较低,先说这个。 ? ?按说选择J-LINK应该使用IAR才对,但世上人偏偏就爱钻这个牛角。 ? ?因为课件设计原因,学生都使用ADS和AXD,以及本人对KEIL比IAR熟,这里介绍ADS和KEIL使用方式。 ? ?(1)安装J-LINK驱动和官方软件,可去Segger官网下载 ? ?(2)将J-LINK的20Pin JTAG线连在目标板上(非标JTAG口需要转换板) 对于ADS/AXD用户: (3)运行ADS和AXD,在AXD menu->configure target中选择"add",在j-link软件安装目录,比如c:/program files/segger/j-linkARM_v4.04目录中,找形如Jlink-RDI.dll的一个文件添加。 ? ?(4)添加完成后,不要关闭对话框,在"configure"选项下,可以设置Jlink-rdi的参数,注意其中一项时钟选择Auto Selection或手工选择时钟,不要使用adaptive那项。 ? ?(5)一路确定后,就可以正常使用ADS编辑/编译程序,AXD调试。但我的实验过程中,常常出现AXD无反应的情况,无非是多重启几次。也许高版本的j-link软件会好些。 ? ? (6)特别注意:程序最开始几句一定要把“狗”关掉。我手头的AKAE2440开发板,如果不关"狗",J-link会自动复位,这可能是因为板子JTAG连线问题,也可能是RDI.DLL的关系,我没有进一步分析。 对于KEIL用户 ? ?(7)选择v3.9以上的uv3,选s3c2440 target.并创建工程。 ? ? (8)在debug设置中,选择J-link(KEIL原生支持) ? ? (9)在utilities选项中,选择J-LINK,flash downloader选择KEIL本身的算法:S3C2440 FLASH support. RAM地址选择0-0x1000(注意:此设置为nand flash启动的),flash地址按你的连接的NAND flash容量设定,不过超过4K意义不大。 BIN文件烧写到2440 NAND FLASH的解决方法: 对于KEIL用户来说,支持2440 nand flash下载,但必须有工程源码,且必须用keil编译,不支持直接选择bin文件下载,有时很不方便。 而J-Link配套的软件J-Flash,目前不支持s3c2440 flash下载(可见2440在欧洲用的不多) 针对这种情况,我写了一个小程序,叫做M4K.bin专门用于J-link烧写s3c2440+k9f1208 flash. 步骤如下: 1.下载m4k.bin(尺寸约140字节) 2.运行segger目录中的j-link commander(命令行) 3.使用r命令或halt命令复位/暂停arm处理器 4.输入命令loadbin d:m4k.bin,f38 表示加载m4k.bin到2440的4K sram地址0x0f38处。 5. loadbin d:your.bin,0 注意,your.bin是你要烧写到nand flash中的镜像,尺寸不能超过0xf38 6. setPC f38 设置pc从m4k.bin开始执行 7.输入g命令,开始执行m4k.bin,此时程序开始把sram中从0到fff的4K数据,原封不动的写入到nand flash第0块,第0页开始的8个页中,也就是可以被2440启动自加载到sram中的。 8.片刻后,使用halt命令,再使用regs命令查看r5==8表示m4k烧写程序正确执行完毕。 9.重启开发板,2440将加载flash中前4K数据到sram中运行,也就是你的your.bin。 m4k.bin的源代码采用GPL v2开源协议发布。 请对此代码有所更改的朋友,将更改代码回帖在这里,以示尊重本人劳动及遵守GPL协议 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Oracle审计相关对象的迁移
- Oracle XMLQuery插入不需要的命名空间
- Fragment在xml中使用
- 【Ajax 4】Ajax、JavaScript和JQuery的联系和区别
- Cocos2dx - -播放声音和音效的实现
- ruby-on-rails – 在FactoryGirl中创建一个值数组,每个值都
- 替换string中的部分字符串 关键时候还得正则出马。。。。
- PostgreSQL: DECLARE CURSOR failed: ERROR: invalid byte
- XAMRAIN的INSTALL_FAILED_NO_MATCHING_ABIS错误处理
- iphone – UIPickerView的麻烦