操作人员在使用IAR软件调试单片机的时候,经常会碰到“IAR调试器怎么连接目标板,IAR调试器连接后无法下载程序怎么办”这些状况。表面上看起来是调试设备连不上,但是实际上,这些问题可能和驱动程序、电源供电、排线接口、复位办法、芯片型号、闪存加载器、读保护以及工程下载位置都有关系。IAR软件本身虽然带着编译、下载和调试环境,但是程序最后能不能写进去,还是要看硬件线路和调试设置是不是刚好对得上。
一、IAR调试器怎么连接目标板
在连接调试器的时候,操作人员不应该一上来就连续点击下载按钮。大家最好先把硬件连接、驱动程序、芯片型号以及接口模式这些基础工作确认好,这样就能省去后面很多没有效果的排查时间。
1、确认调试器和目标板供电
操作人员要先去看目标板有没有正常通电,也要看调试器能不能测到板子上的电压。像J-Link或者ST-LINK这些调试器,它们通常都需要识别到板子的电平信号,如果目标板没有通电,或者地线没有接好,再或者是接口电压不稳定,IAR软件里就会弹出连接失败、目标没有响应、没办法暂停芯片这类提示语。大家不能只看USB灯亮不亮,因为USB灯亮着只能代表调试器接通了电脑,这并不代表目标板已经进入了可以调试的状态。
2、选择正确的调试器驱动
操作人员需要鼠标点击进入【Project】→【Options】→【Debugger】这个界面,然后在Driver选项里选择手头实际使用的调试设备,比如J-Link或者ST-LINK等。在厂商的使用说明书里也能看到这个一样的步骤,在使用J-Link的时候,必须在驱动选项里选好J-Link,而且往后下载代码的时候,还要依靠对应的闪存加载程序。
3、确认SWD或JTAG接口方式
如果目标板上只留出了SWD引脚,操作人员就千万不要在软件设置里勾选JTAG模式。SWD模式一般最少需要连接四个引脚,也就是时钟线、数据线、地线和参考电压线,很多板子还会额外连一根复位线。而JTAG接口需要的信号线就更多了。要是把接口模式选错了,IAR软件可能只能识别到调试器这个盒子,但是没办法真正连接到里面的目标芯片。
二、IAR调试器连接后无法下载程序怎么办
如果调试器已经连上了,但是程序就是写不进去,这说明电脑到调试器这一段是没有大问题的,毛病更有可能出在芯片访问、闪存设置、下载位置、复位办法或者芯片被锁死这几个方面。在这个时候,操作人员要先盯着报错的字看,然后再顺着线路一层一层地找原因。
1、先看是否是Flash Loader问题
如果软件弹出了闪存加载错误、校验失败或者擦除失败这类英文报错,操作人员就要重点去查闪存加载程序是不是适合当前的芯片。IAR的调试环境可以加载一个闪存驱动来完成代码下载,不同的芯片和不同的存储结构,都需要搭配对应的下载设置。如果这个工程是从别的芯片型号那里复制过来的,最容易出现编译没问题、连接也正常,但是一点击下载就报错的情况。
2、检查下载地址和链接脚本
大家可以打开【Project】→【Options】→【Linker】→【Config】界面,去确认一下点icf文件里面的ROM起始位置是不是和板子实际的下载区域一样。如果工程里带有引导程序,那应用程序一般就不会从闪存默认的开头位置开始运行,这个时候下载位置、中断向量表位置还有引导程序的跳转位置全都要一起修改。要是地址写错了,可能会遇到下载校验不通过的报错,也可能会遇到虽然下载成功了,但是板子重新上电后却不运行的情况。
3、调整复位连接方式
有的目标板在通电之后会很快进入省电模式,然后把调试接口给关掉,或者是程序跑起来之后把调试引脚占用了,这样用普通的连接办法就会失败。操作人员可以在调试器的设置里面,尝试改用复位下连接、硬件复位或者类似的复位模式。在IAR的ST-LINK设置里面,也分成了系统复位、硬件复位这些不同的方式,选用不同的方式,会直接影响到调试器能不能在芯片刚启动的早期把控制权夺过来。
三、下载失败还要排查哪些细节
很多下载失败的情况不是单单一个原因造成的,而是硬件、工程和软件版本全堆在一起引起的。操作人员在排查的时候,最好把整条线拆成三段来看,也就是“电脑到调试器、调试器到目标板、目标板到芯片闪存”,大家千万不要把所有选项一起瞎改。
1、更新或重装调试器驱动
如果大家使用的是J-Link,可以去检查一下驱动软件的版本。官方提供的驱动安装包里面包含了软件、手册和固件更新,用户可以用它来维护自己的调试器环境。如果电脑里的驱动太老了,或者动态链接库版本很乱,再或者是IAR自带的驱动和系统里安装的驱动打架了,都容易让连接和下载变得不正常。
2、检查RESET脚和调试接口硬件
目标板上的复位引脚要是被外面的电路死死拉住,或者电容电阻参数不对,再或者是排线太长、没有接共同的地线、接口接触不良,这些都会让下载变得很不稳定。要是自己做的板子,大家还要检查排线的针脚顺序,特别是电源、地、数据、时钟和复位这几根线千万不能接反。那种能连上一次、下一次又失败的情况,很多时候不是IAR软件设置的问题,而是硬件连接的质量太差了。
3、用最小工程测试下载
操作人员不要直接拿着写满了业务代码的完整工程去反复测试。大家可以新建一个同样芯片的最小IAR工程,里面只放最基本的启动文件、链接脚本和空的main循环。如果这个简单的工程可以下载进去,说明调试器和硬件板子基本是好的,问题大多出在原先工程的链接位置、启动文件或者保护设置里面。如果连最小工程都放不进去,那就得优先去查驱动、接口、供电和芯片有没有坏。
总结
在连接目标板的时候,操作人员首先要确认好板子的电源、调试器的驱动、排线接口、芯片的型号以及复位的方式。如果在连接后还是没办法把程序写进去,大家就要把精力重点放在检查闪存加载器、配置文件里的链接地址、芯片有没有被锁、复位模式、驱动版本以及硬件接口上。能抓到调试器并不代表能认出芯片,能连上芯片也不代表能顺利写入闪存。大家把连接、擦除、下载、校验和复位这几个步骤拆开来一个个检查,最后找出问题总归会比在那里反复点击下载按钮要容易得多。