首先,我们来了解一下这些问题的根源所在:之所以会存在大家一系列的JLINK无法下载、无法调试的问题,其根本原因ALIENTEK MiniSTM32开发板的一些连接外设的IO口和JLINK的调试口共用了。如图1所示:
图1 JTAG与外设IO口连接情况 从图1可以看出,JTAG模式的5个IO口,除了JTCK外,其他都和外设IO共用了。并且和重要外设LCD共用(LCD_D3和LCD_D4)。其次,JTDI与与PS_CLK(PS/2的时钟线)、KEY1共用,JTMS与PS_DAT(PS/2的数据线)、KEY0共用,同时该线也是SWD的IO线。正是因为这样的连接关系,所以在使用LCD(包括OLED)的时候,我们必须禁止JTAG,以使得LCD_D3和D4可以作为正常IO口用。此时,如果PA13没有用来做普通IO口用的话,是可以用JLINK 的SWD模式来仿真和调试的(SWD模式需要的SWDIO和SWDCLK,也就是PA13和PA14)。但是,一旦你使用了LCD,同时又用到了PS/2或者KEY0或则KEY1等外设的时候,JTAG和SWD模式就都必需被禁止才能正常使用(单独用KEY1,可以用SWD模式下载,注意仅仅是下载,而不能调试,因为Jlink的电平,会影响到KEY1的状态)。 因为ALIENTEK MiniSTM32开发板的大部分例程都需要用到LCD,会导致JTAG无法使用,所以我们多次强调大家不要用JTAG模式,而要选择SWD模式。SWD模式,仅仅会导致KEY0、KEY1以及PS/2口无法调试,注意这里是不能调试,但是是可以下载的,下载的前提:之前保存在STM32里面的程序,没有一直禁止SWD口(一个程序循环周期里面SWD使能的时间至少超过10ms)。一旦这个条件得到了满足,JLINK就可以通过SWD模式连接到板子上的STM32,并给其下载代码,调试代码(有KEY及PS/2的部分不能调试)。所以,一旦你的板子出现了连接不上的情况,一般就是当前保存在STM32上面的程序,没有满足这个条件。 好了,介绍了以上的知识之后,我们再来看看大家的问题吧。
问题一、在Options for Target’Target 1’选项卡里面,设置Cortex-M3 J-Link的时候,弹出如图2所示的错误信息:
开 23MmToSci.nvidMe nKeEpToN.EwIwwAL 板发
图2 设置Cortex-M3 J-Link提示错误
问题说明:图中红圈提示信息为SWD模式下,没有找到器件。说明我们虽然设置了SWD模式,但是还是未能找到STM32。这种情况,一般是由于STM32里面跑了把SWD模式给禁止的程序,可能是一直禁止(比如PS/2例程),可能是SWD开启时间太短(2.0早期版本的按键实验例程)。 解决办法:把B0接V3.3(B1默认接GND,以下类同,注意,此时仅仅能下载代码,并不能用JLINK仿真!因为STM32工作在ISP模式,不会执行用户代码!),再点击Auto Clk,一般就能发现到芯片了,如图3所示:
开 23MmToSci.nvidMe nKeEpToN.EwIwwAL图3 SWD模式下找到了STM32芯片
板发
问题2、在问题1里面,STM32芯片被正常的找到,但是当点击下载(按钮的时候,出现如图4所示的错误信息:
)/仿真()
图4 下载/仿真连接失败
问题分析:出现这个问题的原因,和问题一的原因基本一样,但是由于在下载或者仿真的时候,可能重试次数不如前者,导致无法正常连接到芯片,而前者可以连接到。所以出现了这样的问题。 解决办法:1,把B0接V3.3,再下载(注意,此时仅仅能下载代码,并不能用JLINK仿真!因为STM32工作在ISP模式,不会执行用户代码!)。2,通过串口下载一个没有禁止SWD模式的代码(如跑马灯例程)或者擦除芯片。然后再用SWD模式下载。
问题三、在下载/仿真的时候出现如图5所示的错误界面:
图5 下载仿真出错
问题分析:此界面提示在JTAG口没有找到Cortex M的器件,典型的是在开始使用的时候,忘记在Options for Target’Target 1’选项卡里面设置为SWD模式了。因为我们的开发板很多实例程序都禁止了JTAG,而使能的是SWD模式。 解决办法:1,去Options for Target’Target 1’选项卡里面设置JLINK工作在SWD模式下。2,同问题二的解决办法1。3,通过串口下载一个未禁止JTAG模式的程序(比如跑马灯实验)或者擦除芯片,再用JTAG下载。 大部分用户在使用的时候,碰到的基本上就是以上这三类问题了。如果大家碰到类似的问题,用上面提供的解决办法,一般都能解决。 另外,注意STM32的启动模式,在B0接V3.3,B1接GND的时候,STM32是工作在ISP模式的,此时尽管可以随便的下载代码到开发板,但是,并不能让下载进去的代码执行,如果需要让代码执行,请务必把B0接GND! 还有些程序虽然可以通过JLINK下载,但是不能用JLINK仿真(比如按键实验程序),碰到这样的程序,大家就用串口调试吧。 最后,再一次提醒大家:用SWD模式,别用JTAG模式!
开 23MmToSci.nvidMe nKeEpToN.EwIwwAL 板发
正点原子@ALIENTEK 2010-12-9
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务