图1
开发工具:Xilinx SDk 14.4(基于Eclipse,ISE suite 14.4组件之一)
开发板:Xilinx ZYNQ-7000 zc702 rev 1.0(注意:这个板子的版本说明也是至关重要的,因为我还发现了rev c版本,比rev 1.0少了个开关)
问题描述:
当对开发板进行Hello_world测试,用SDK通过JTAG对开发板调试,出现以下错误(截图如上)
could not find a ARM device on the board.Please check if the target is in:
1. Split JTAG mode – No operation are possible with ARM DAP
2. Non JTAG bootmode – Bootro may need time to enable DAP.Please try again
Troubleshooting hints:
1. Check whether board is connected to the system properly.
2. In case of zynq board,check whether Digilent/xilinx cable switch settings are correct.
3. If you are using Xilinx Platform cable USB,ensure that status LED is green.
=============================
由于这款板子是比较新的产品(ZYNQ-7000系类),关于开发基本流程、错误处理等资料比较少(其实更应该说本鸟比较菜),这么一个基本的板子测试都搞不定,最后在赖学长的帮助下,花了一个下午终于解决了,在此对学长表示感谢(浪费了他一下午)!
我犯的一个致命错误是,拿到一个开发板尤其是一个比较复杂的板并且从未涉及到的板子,首要任务就是到官网找相关资料,比如datasheet,userguide等等。userguide等文档很有可能会(如果是正规公司或者说这个公司不坑)一步一步教你如何入手,比如基本开发流程、用到的工具等等,这样会少走好多弯路。
学长从xilinx官网上果然找到了userguide,上面用的开发环境是ISE 14.1 suite 的PlanAhead工具,演示用的板子是Xilinx ZYNQ-7000 zc702 rev c ,本以为这样按部就班,完全按照UG的说明来就可以顺利通过,可是最后仍是出现Unable to connect to ps7_cortexa9错误。我们猜测是不是UG上的板子版本号、PlanAhead版本号与本机上的不同导致的,于是另从官网下载了PlanAhead 14.4的示例,里面用的板子正好是Xilinx ZYNQ-7000 zc702 rev 1.0,于是发现:
图2
用SDK14.4 对板子进行JTAG调试时,对应的开关与跳线设置必须是上图的设置。尤其注意SW16中的四个拨动开关必须同时拨到右侧。SW16可能是开发板的启动设置,datasheet说明如下:
图3
也就是说SW16全是0,才是JTAG调试模式,这样SDK下载.elf文件就不会报错了。
综上:
1、SDK run configuration前,确保开关与跳线如图2中红圈所示;
2、USB UART、JTAG都与PC机相连。
心得:
1、查阅官方文档,开发工具说明
2、相信学长
附件下载http://download.csdn.net/detail/sky_hiter/6410023
附件中的ctt有PlanAhead的开发流程,bd有ZC702的结构图解。