|
现象:
在使用ULINKpro下载或调试STM3240G-EVAL评估板时,提示以下错误信息:Trace HW not present。ULINK和ULINK-ME正常工作,没有任何错误。跳线JP1和JP2设定正确。
原因: 当使用ULINKpro调试STM3240G-EVAL评估板时,高速SWV和ETM会有一些问题。ULINK和ULINK-ME没有受影响,是因为他们将SWV数据输出到SWO引脚是以相对比较低的数据速率。该问题可能在于STM3240G-EVAL评估板的ETM信号跟踪数据长度。该信号跟踪的数据长度应该尽可能的短一些。
解决方法: 由于ULINKpro可以通过SWO端口捕捉SWV跟踪信息,也可以通过4位ETM Trace端口捕捉SWV和ETM跟踪信息,因此有两种解决方法:
使用SWO跟踪端口: 在 µVision项目中: 1. 选择Options for Target (ALT-F7),然后选择Debug选项卡。 2. 请确保您正在通过使用STM32F4xx_SWO.ini文件使能调试硬件。在此文件中必须设置DBG_SLEEP、DBG_STOP、DBG_STANDBY和TRACE_IOEN。TRACE_MODE应设置成Asynchronous。 3. 单击Setting按钮,然后单击Trace选项卡。在Trace Port中选择Serial Wire Output - Manchester选项。 4. 如果Core Clock频率是168.000000,只需要取消勾选Autodetect复选框,然后设置SWO Clock Prescaler的值为2。或者,直接设置 Core Clock频率为 84.000000。 5. 单击OK,然后再次单击OK保存更改。 ULINKpro应该可以正确连接,并且捕捉STM3240G-EVAL输出的SWO跟踪信息。
使用4位ETM跟踪端口: 必须将CPU的时钟频率降到60 MHz。这需要修改system_stm32f4xx.c文件。代码行145-155定义了常量PLL_M、PLL_N、PLL_P和PLL_Q。下面是不同时钟频率的设置: | | 60 MHz | 120 MHz | 168 MHz | | PLL_M | 25 | 25 | 25 | | PLL_N | 240 | 240 | 336 | | PLL_P | 4 | 2 | 2 | | PLL_Q | 5 | 7 | 7 |
根据上表的60 MHz设置修改这些#define的值,重新编译源文件并下载到Flash。 在 µVision项目中: 1. 选择Options for Target (ALT-F7),然后选择Debug选项卡。 2. 请确保您正在通过使用STM32F4xx_TP.ini文件使能调试硬件。在此文件中必须设置DBG_SLEEP、DBG_STOP、DBG_STANDBY和TRACE_IOEN。TRACE_MODE应设置成Synchronous: TRACEDATA Size 4。 3. 单击Setting按钮,然后单击Trace选项卡。在Trace Port中选择Sync Trace Port with 4-bit Data选项。 4. 设置 Core Clock频率为 60.000000。 5. 单击OK,然后再次单击OK保存更改。 ULINKpro应该可以正确连接,并且捕捉STM3240G-EVAL输出的ETM跟踪信息。 |