目錄:
一、SWD實時仿真接線
二、仿真設置
三、仿真時問題的解決
1、仿真時添加變量或數組
2、程序下載
3、盡量不要由J-Link給線路板供電
4、仿真器與線路板連接需可靠
5、使用J-Link時,Keil軟件出現無響應
----------------------------------------
所有的操作基于WIN XP,stm32使用J-Link(SWD模式)。
另可參見系統(tǒng)、軟件、數碼/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,表現為程序執(zhí)行到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使單片機處于復位狀態(tài),只要start debug,然后再stop debug即可。如下圖。
或者勾選“Reset and Run”
2)在試驗時“編程到FLASH時寫選項字節(jié)”前面切記不要打鉤,這是讀保護、寫保護。
3、盡量不要由J-Link給線路板供電,內部有短接。
4、仿真器與線路板連接需可靠
5、查看仿真器是否連接上
如果勾選2處不能燒寫,可按下圖
5、使用J-Link時,Keil軟件出現無響應
J-Link連接上線路板,中途線路板斷電,極容易出現無響應。拔去J-Link連接電腦的USB線再插上。
----------------------------------------------------------------------------------------------------------------