32位微控制器ME32x系列的调试技巧

描述

概述 ME32x系列是内嵌ARM Cortex M0/M3核的32位微控制器。该系列控制器由敏矽微电子有限公司自主开发,并具有自主知识产权。敏矽微电子的微控制器包括有通用MCU和专用SOC系列,具有非常高的性价比,是MCU产品升级换代和国外产品替代的最佳选择。通用功能有高精度ADC,CAN接口,I2S音频接口,UART串口,SPI接口,I2C总线接口,看门狗定时器(WDT),通用计数器/定时器。特殊接口包括人机界面控制器(LCD驱动,电容触摸按键)和马达控制功能模块。

       调试端口 所有ME32x系列产品都支持ARMSWD 两线调试协议。由于调试端口与IO复用,调试端口管脚在系统初始化时为SWD调试功能SWD_CLK和SWD_IO(用户加密情况除外),调试管脚状态在BootLoader运行时不会改变。用户可以使用Jlink或Ulink仿真器与之连接,从而下载和调试用户程序。 调试技巧

3.1 如何确认硬件连接

理论上,仿真器与目标板只需要连接GND,SWD_CLK和SDW_IO三根线即可调试(建议nRST也连接)。如目标板没有电源,JLINK/ULINK仿真器是可以通过USB5V提供一个3.3V电源给目标板供电,前提是目标板是3.3V供电并且电源功耗所需要电流不超过USB能提供的电流:

JLINK缺省是输出3.3V

ULINK缺省是不输出3.3V电源,接口芯片电源要外供。要输出3,3V,需要把一个3针排插全部连在一起(ULINK标准版) 如果目标板系统接口是1.8V或5V,就只能使用ULINK,并且使用不输出3.3V电源设置,目标板需要自己供电,并且1.8V或5V 电源还需要接入仿真器的接口电源。 连接好电源及信号线后,可以检验一下你的工作结果: 打开一个对应的MCU 的工程,在OPTION窗口的Debug Tab,选择你的仿真器,再点击Setting按键                             

如果你能看到IDCCODE,那么恭喜你,你的硬件连接没有问题了。

3.2 程序下载失败

在确认硬件连接没有问题后,如果出现程序下载失败并且连续重试也一样(已确认对应Flash烧写算法已正确设置并且运行Flash算法的SRAM地址空间也正确设置,不同芯片设置不同,看下图),可能有以下原因:

SWD端口被用户程序复用,此时端口功能不再具有SWD功能 解决方法:MCUBoot引脚接地,重新上电或用Reset重启系统,这样系统会停留在Bootloader,同时SWD引脚功能恢复,即可下载。 SWD接口需要重启 解决方法:在OPTION->Debug->SettingTAB 窗口,选择设置Connect &Reset Options使用Reset,如下图

如nRST没有连接,也可以选择SYSRESETREQ Reset。

3.3 不能进入调试界面或总是从调试界面弹出

有时用户会发现,以前的工程可以下载,但不能进入调试界面进行调试,并且还可能导致SWD不工作,但换一个工程又可以调试。其原因是该工程上次调试有非法操作(如访问非法地址),并且非法操作被工程记录,每一次进入调试都会调用该操作,从而导致Keil从调试窗口弹出。 所以我们要做的事情就是把保留在工程的非法操作从工程中清除掉。 在工程Options->DebugTab,拿掉下面的勾选项目:

选择OK保存。 再在File->SaveAll 保存所有工程内容。 退出工程。 重新调入工程即可解决问题了。

Revision History

 

Revision Description Date
1.0 Initial Release. Dec. 2018


 

 

原文标题:ME32x系列MCU Keil调试技巧

文章出处:【微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分