STM32使用J-Link仿真相关汇总
扫描二维码
随时随地手机看文章
目录:
一、SWD实时仿真接线
二、仿真设置
三、仿真时问题的解决
1、仿真时添加变量或数组
2、程序下载
3、尽量不要由J-Link给线路板供电
4、仿真器与线路板连接需可靠
5、使用J-Link时,Keil软件出现无响应
----------------------------------------
所有的操作基于WIN XP,stm32使用J-Link(SWD模式)。
另可参见系统、软件、数码/Keil编译软件的使用汇总(三、Keil5.12编译报错的处理)。
----------------------------------------------------------------------------------------------------------------
一、SWD实时仿真接线
--------------------------------------------------------------------------------------------------
二、仿真设置
J-LINK的SWD仿真时,对单片机口线的设置
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //关闭JTAG,否则“增加”PBin(3)键失效
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
//设置为GPIO_Remap_SWJ_Disable,表现为程序执行到KEY_Init()函数会停住,有时会
//报“CPU_REG_SET():Register 0 is already marked as valid.”
//设置为GPIO_Remap_SWJ_JTAGDisable即可解决此问题。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
----------------------------------------------------------------------------------------------------------------
三、仿真时问题的解决
1、仿真时添加变量或数组
1)连接上J-Link仿真器,出现数组显示为变量,只要在此处设置断点,再仿真到相应的数组位置即可解决此问题。
2)点变量或数组右键可快速添加到Watch中。
2、程序下载
1)程序下载完成后,J-LINK使单片机处于复位状态,只要start debug,然后再stop debug即可。如下图。
或者勾选“Reset and Run”
2)在试验时“编程到FLASH时写选项字节”前面切记不要打钩,这是读保护、写保护。
3、尽量不要由J-Link给线路板供电,内部有短接。
4、仿真器与线路板连接需可靠
5、查看仿真器是否连接上
如果勾选2处不能烧写,可按下图
5、使用J-Link时,Keil软件出现无响应
J-Link连接上线路板,中途线路板断电,极容易出现无响应。拔去J-Link连接电脑的USB线再插上。
----------------------------------------------------------------------------------------------------------------