1. 到http://www.hjtag.com/下载最新版的H-JTAG

安装好后,如下图所示设置好AXD:

添加H-JTAG.dll,该dll文件在H-JTAG的安装目录下可以找到

设置好过后,在ADS1.2的界面中点击如下按钮即可以进行调试:

弹出对应的调试界面,可以看到执行LDR r0,=0x56000000候,左边的寄存器的值发生了变化,还可以看到下一条将要执行指令的地址,即pc值。

遇到的问题:嵌入式环境是软硬件结合的环境,无论是软件或者硬件出现问题都可以导致系统无法正常的运行,我在配置调试环境的时候就遇到了各种问题。就按照上面的配置步骤,我在进入调试界面时,指令从pc=0x30000000处开始执行,虽然执行了LDR R0, =0x56000010,但是左边的寄存器窗口根本就没有变化,找了很久都没有找到原因,郁闷了很久。其实现在对该问题出现的确切原因也不是非常清楚,出现问题的板子环境是没有u-boot的,在我用h-flasher将u-boot下载到板子上后,就可以正常的看到寄存器受到汇编指令的变化,并且程序能够正确的控制板子上的硬件,这个例子是控制led的。估计的原因是:没有u-boot 的环境,硬件没有得到相应的初始化,向SDRAM就没有被初始化,导致程序根本就没有被下载到板子上,所以程序肯定会跑飞的。如下一段话来自H-JTAG官网:http://www.hjtag.com/forum/viewthread.php?tid=45&extra=page%3D1

程序下载不正确,程序跑飞
一般的用户,刚开始调试的时候,编译好程序,就直接点击调试。但结果发现调试根本没有按照预期的进行。发生这种问题一个最常见的原因是程序根本没有正确下载到目标系统中去。对SDRAM而言,上电后一般都是不可以使用的,需要进行相应的配置才可以使用。所以如果
是在SDRAM里进行调试,请先对SDRAM进行配置,或者确定SDRAM已经初始化好了。如果是内部SRAM,一般来说,可以直接使用。所以,做一般的测试,最简单的办法是使用片内SRAM。在调试的时候,最好是自己通过内存观察窗口判断一下,程序是否是下载到期望的地址去了,下载是否正确。以免出现调试跑飞的问题。

2.ADS工程的设置

工程的设置要针对ARM的编译器、连接器和可执行bin的设置。

按照如下图所示的步骤进行设置:

Language Settings中的每一项都选择ARM920T就行了:

ARM Linker中设置RO Base:

ARM fromELF中设置bin文件的名字和输出目录:

3、使用H-JTAG连接目标板时遇到的问题以及解决方案

出现的问题如下图所示:

想用H-Flasher烧写flash的 时候,出现H-JTAG无法将目标板复位的问题,http://www.hjtag.com/forum/viewthread.php?tid=1637中有对这个问题的描述,无论从Nor Flash还是从Nand Flash启动都遇到这个问题,原因初步确定为:NOR Flash和Nand Flash中的代码是未定义的代码,导致CPU执行的时候处于一个不确定的状态,所以H-JTAG无法将板子带到DEBUG状态。其实我的板子刚开始从NAND Flash启动的时候是可以被H-Jtag烧写程序的,但是由于烧写了一个有问题的bin文件到Nand Flash中,导致从NAND Flash也无法启动。网上搜索了很久,可能的解决方案是:用金属物短接Nand Flash的地址线,让CPU无法从Nand Flash中读取指令。在万般无赖之下我本打算就采取这个方法了。晚上回寝室后碰到强哥,和强哥讨论后觉得以下方案更有效,经过实验,果然见效,如果在H-Jtag试图将目标板设置成DEBUG状态的时候,手动给CPU一个Reset信号,此时CPU还来不及去Nand Flash中错误的指令,就已经被H-Jtag控制,并且被带到了Debug模式,这需要多尝试几下,一般都可以成功的。

4、使用H-Jtag烧写Nand Flash时遇到的问题和解决方案

刚开始的时候,自己不知道怎么使用H-Jtag来烧写Nand Flash,在H-Flasher中也没有找到和自己型号一致的配置文件,绝望之下看到了了广东海洋大学的一篇文章,虽然我觉得那篇文章不应该叫做文章,但是它的确解决了我的问题。现在操作步骤详细描述如下:

上面的设置好了过后,先将芯片Erase掉,然后指定要下载的文件,然后Program,下载完后,Reset板子,看串口有没有输出,如果没有输出说明下载出现的问题,点击上图中的Verify看一下Nand Flash中的程序是否与u-boot.bin一样。这里我就遇到了这么一个问题,还以为板子坏了,从Nand Flash启动,我第一次将u-boot.bin烧写进Nand Flash,Reset开发板,可以从串口看到U-boot传送过来的消息,窃喜~~,由于自己的Nor Flash中有错误的程序,导致CPU无法被H-Jtag Reset,所以我想用H-Jtag格式化Nor Flash,在没有load新的hfc文件的情况下,我直接选择从Nor Flash启动,然后通过多次的手动reset和Check配合终于让H-Jtag控制了CPU,然后Erase,然后Program,结果就出错了, 无论是从Nand Flash还是从Nor Flash都无法从串口接收到消息。无赖之下,我觉得应该是从Nor Flash启动,由于hfc文件是k9f1208,这个配置文件时针对板子上Nand Flash的,所以烧写的还是Nand Flash。于是我从Nand Flash启动,多次烧写Nand Fash,verify的结果都是failed,意味着我pc机上的u-boot.bin和nand Flash中的程序不一致,也就是u-boot.bin没有能够正确的烧写到Nand Flash中,当然无法从串口中收到消息啦~~,无果,我想应该是我无意间改动了hfc文件,于是重装了H-Jtag,重启电脑,重新烧写u-boot.bin,verify 一切恢复正常。

5、串口线的问题

我的S3C2410板子的串口透是公的,PC机上串口头也是公的,这就需要两头都是母的串口线,这种线真的好难找啊,实验室的一根两头都是母的串口线根本就无法接受到开发板的信息,最好才知道,原来串口线分为直连串口和交叉串口线。如果TX和TX相连就是直连,如果TX和RX相连就是交叉的,这只能够通过原理图才能够判断板子应该采用哪种串口线。

6、Jtag 20针排线的问题

毕业的时候,不知道把板子的并口j-tag线弄得哪儿去了,只剩下一个板子和电源,其他的东西都是借的,非常感谢钱同学把Jlink借给我用了,虽然我们只有一面之缘。由于S3C2410的20针J-tag口非常的非主流,现在的Jlink线上的20针排线根本就插不上去,让我非常郁闷,望洋兴叹。后来,飞哥给了我一中可以把J-tag各个针和板子连接起来的线,虽然可以连接PC机,也可以下载程序,但是毕竟非常的不稳定,稍微碰一下,就无法连接、无法下载程序、无法找到target。。。。各种错误,而且在复杂的环境中,让我无所适从,最后,在晋毅的建议下我去了城隍庙,去的时候根本就摸不到头绪,还好在城隍庙遇到了一个热心的校友,带我去了一个专门制作排线的地方,我买了排线,哪个人问我方向的时候,我真的没有了方向,不知道什么是排线的方向,最后只好买了回来,我叫晋毅帮我将排线的头接好了,最后发现jlink和板子连起来,板子的灯都不亮,我知道接反了,最后只好忍痛将线的一头给剪掉,一连上板子,居然能用,真的是乐死我了~~PS:我观察身边的排线,一般都是一正一反,其实当初在城隍庙的时候就应该做两根,反正只有两种情况~~如果以后不确定,又不想多跑路,就直接叫做两根就OK了~~再次感谢那个在城隍庙热心的校友:)

7、Jlink固件修复问题

从小明那里接过板子,以为自己的问题就解决了,可是现实总是残酷的,把jlink一连上就不能用,哎,真是悲催,为什么做点事就这么难啊?最后在河畔上借到了钱同学的jlink,结果又和小明的接口不匹配,真实郁闷死哥了,最后向强哥求教,原来是jlink里面的固件坏了,

以下直接拿来主义了!!

---------------------------------------------------------------------------------------------------------------------------

J-LINK 是使用过程中,如果内部固件意外损坏或丢失,请参考下面操作步骤说明,重新烧录JLINK固件。

1.1 安装固件烧录软件

² 请ATMEL官方网址下载AT91-ISP下载软件。

软件下载地址:http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3883

在打开的网页中,下载下图中红色框所示软件。

² 安装下载好的Install AT91-ISP v1.13.exe软件

双击Install AT91-ISP v1.13.exe运行,选择默认设置,安装好以后,桌面上生成如下两个图标。

1.2 擦除芯片并进入编程模式

² 使用USB线连接JLINK与PC机,以提供JLINK工作电源。

² 短接图中A的两个过孔约5秒。断开A位置的两个过孔的短接。然后拔掉JLINK与P C间的USB线(注意先后顺序)。

² 短接图中,B处的两个过孔。

² 使用USB线连接JLINK与PC机,至少超过10秒后,拔掉USB线,停止给JLINK供电(说明:请确保此过程中,图中B处一直处于可靠的端接状态)。

² 断开图中B处的短接。

1.3 更新固件

² 双击桌面上的SAM-PROG v2.4图标 ,运行SAM-PROG v2.4烧录软件,按下图所示进行设置。

² 将JLINK V8通过USB线与PC机连接。此时,SAM-PROG v2.4软件中的Write Flash按钮将变为有效。(注意,先打开SAM-PROG v2.4再连接JLINK 与PC机)。

² 点击Write Flash 按钮,烧录固件,待烧录完成后,Active Connection:将变为1。

² 拔掉JLINK与PC机之间的USB线。

至此,JLINK V8的固件已经更新完毕,正常情况下,连接电脑与JLINK V8时,JLINK V的指示灯将闪烁,然后常绿。请参照JLINK V8用户手册说明,使用JLINK V8进行调试仿真。

AXD+H-JTAG环境搭建总结相关推荐

  1. Unix NetWork Programming——环境搭建(解决unp.h等源码编译问题)(转载)

    原文地址:http://blog.csdn.net/a649518776/article/details/6724121 下面开始用简单但典型的客户端和服务器端程序说明如何进行网络编程.这一小节讲的是 ...

  2. TI Davinci DM6446开发攻略——开发环境搭建

    TI DAVINCI DM6446的开发环境搭建不像三星S3C2410,S3C2440,ATMEL的AT91SAM9260之类的单核ARM那么简单,因为DM6446还有DSP端的开发环境,以及双核之间 ...

  3. CC3200 —— No.1 环境搭建(更新于2020年5月1日)

    之前写过一次CC3200环境搭建的教程,但是由于是两年前了,当时使用的CCS还是8.0的版本,如今很多软件都已经更新,于是打算重新再更新一下搭建的过程. 软件准备 首先是查看官网最新发布的CC3200 ...

  4. Eclypse-Z7 + Zmod ADC 1410 基础环境搭建(SDK部分)

    Eclypse-Z7 + Zmod ADC 1410 基础环境搭建(SDK部分) 背景 思路 官方Zmod ADC demo简介 软硬件平台 SDK 工程 1.从vivado导出硬件到SDK ①在vi ...

  5. TI CC3200 IAR 开发环境搭建

    最近有个项目需要搞一下WIFI,基于稳定性和开发周期考虑,选择了CC3200,这款芯片的价格不是一般的贵,如果那位仁兄有便宜的渠道还望联系一下,不慎感谢! 那么首先来张实际照片~小小的一块板子 + 一 ...

  6. 高通平台开发环境搭建、编译、烧录(android5.1以上系统)

    高通平台开发环境搭建.编译.烧录(android5.1以上系统) 以MSN8937为例 1. 安装Ubuntu(12.04LTS以上稳定版本)     安装过程中必须以根用户登录或使用sudo获取ro ...

  7. 【PB03F 超详细-环境搭建】蓝牙5.2安信可PB-03F-Kit开发板二次开发环境搭建

    标题 本博文介绍安信可PB-03F-Kit开发板的基本情况.开发环境搭建,以及以点亮LED为例介绍程序编写和固件烧录的操作流程. 目录 标题 0.硬件介绍 PB03模组介绍 PB-03F-Kit开发板 ...

  8. ubuntu + oepncv + PCL + realsenseSDK + ROS + OpenVino开发环境搭建

    目的 本文主要介绍ROS机器人操作系统中主要开发环境的搭建过程. 注意:以下操作尽量在系统原本的空间中,不要在conda建立的虚拟空间中操作. 环境搭建找到正确的路线后,几乎是分分钟就能完成的事,但是 ...

  9. 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 安装平台 1 平台 目前Tensor ...

  10. Ubuntu Tensorflow object_detection API 目标检测环境搭建

    Ubuntu 16.04下安装TensorFlow Object Detection API(对象检测API) Ubuntu 16.04下搭建TensorFlow运行环境(用Anaconda)     ...

最新文章

  1. c语言if.while.for,C语言操纵语句输入输出ifwhilefor.ppt
  2. 及时输出_如何降低开关电源输出纹波和噪声
  3. pcb地线应该不应该做成环路_干货|图文详解EMC的PCB设计技术
  4. 常用FTP命令 1. 连接ftp服务器
  5. Swift中文教程(九) 类与结构
  6. OPPO首部5G手机亮相 10倍混合光学变焦技术惊艳MWC
  7. 中专计算机总结论文,中专计算机毕业论文...doc
  8. 在TOMCAT中使用JNDI连接数据源
  9. 地理人必备的宝藏网站
  10. CPU,GPU,TPU,NPU都是什么?
  11. oracle remap schema,impdp的remap_schema选项的另一个schema是否要重建
  12. python k折交叉验证,python中sklearnk折交叉验证
  13. 数据挖掘-关联分析频繁模式挖掘Apriori、FP-Growth及Eclat算法的JAVA及C++实现
  14. 工厂模式 五种写法总结
  15. java输出字符串排列组合代码
  16. Java Exchanger
  17. 音频文件格式有哪些?误删音频文件如何恢复?
  18. 湖北武汉资料员培训资料员在建筑工程中的作用建筑七大员培训
  19. 图扑软件荣获第十一届中国创新创业大赛全国赛优秀奖!
  20. 飞凌嵌入式 OKA40i-C 开发板调试笔记(1)编译+烧录系统

热门文章

  1. [Ext JS 7]基于NPM的开发
  2. mysql 提交修改_MySQL客户端、服务器端工具、sql_mode、存储引擎修改、事务的提交和回滚、隔离级别...
  3. 扩展欧几里得算法(双六游戏)
  4. MATLAB信号处理之信号的采样
  5. Linux下的touch命令
  6. python dbf 修改_在Python中将数据写入dbf时出错
  7. python调用os.system启动anaconda环境_在Mac中PyCharm配置python Anaconda环境过程图解
  8. javascript 无法修改 数组中对象_谈谈JavaScript中对象建立(Object)
  9. python输出一首诗_Python:如何打印我的简单诗
  10. 【编程语言】Python-Pandas库中的交叉表