找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4315|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32片內(nèi)外設(shè)--DBG之Keil SWO輸出

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:104126 發(fā)表于 2016-1-23 03:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1) 加入stdio.h,這樣你就可以調(diào)用printf函數(shù)了

2) 使能SWO輸出

使能SWO輸出。最簡單的辦法就是將如下的函數(shù)拷貝到你的工程里面,并且在mian函數(shù)初始化之后調(diào)用該函數(shù)。

void setupSWO(void)

{

uint32_t *dwt_ctrl = (uint32_t *) 0xE0001000;

uint32_t *tpiu_prescaler = (uint32_t *) 0xE0040010;

uint32_t *tpiu_protocol = (uint32_t *) 0xE00400F0;

CMU->HFPERCLKEN0 |= CMU_HFPERCLKEN0_GPIO;

GPIO->ROUTE |= GPIO_ROUTE_SWOPEN;

#if defined(_EFM32_GIANT_FAMILY)

GPIO->ROUTE = (GPIO->ROUTE &~(_GPIO_ROUTE_SWLOCATION_MASK)) | GPIO_ROUTE_SWLOCATION_LOC0;

GPIO->P[5].MODEL &= ~(_GPIO_P_MODEL_MODE2_MASK);

GPIO->P[5].MODEL |= GPIO_P_MODEL_MODE2_PUSHPULL;

#else

GPIO->ROUTE = (GPIO->ROUTE &~(_GPIO_ROUTE_SWLOCATION_MASK)) | GPIO_ROUTE_SWLOCATION_LOC1;

GPIO->P[2].MODEH &= ~(_GPIO_P_MODEH_MODE15_MASK);

GPIO->P[2].MODEH |= GPIO_P_MODEH_MODE15_PUSHPULL;

#endif

CMU->OSCENCMD = CMU_OSCENCMD_AUXHFRCOEN;

while(!(CMU->STATUS & CMU_STATUS_AUXHFRCORDY));

CoreDebug->DHCSR |= 1;

CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;

*dwt_ctrl = 0x400113FF;

*tpiu_prescaler = 0xf;

*tpiu_protocol = 2;

ITM->LAR = 0xC5ACCE55;

ITM->TCR = 0x10009;

}

3) 配置Keil的工程選項

打開Keil的工程配置,選擇Debug頁面,選擇仿真器為Cortex-M/R J-Link/J-Trace,并點擊仿真器選項邊上的setting選項,打開具體的設(shè)置窗口。

在打開的窗口中,切換到Trace頁面,選中Enable,并且設(shè)置Core Clock為14MHz,分頻選項為CoreClock/16。詳情如下:

4) 在初始化SWO函數(shù)之后的地方,使用printf函數(shù)進(jìn)行輸出。例如printf("Hello world")。

5) 在你的工程里面,需要添加如下的函數(shù):

struct __FILE { int handle; };
FILE __stdout;
FILE __stdin;

int fputc(int ch, FILE *f) {
ITM_SendChar(ch);
return(ch);
}

6) 編譯你的代碼,并且進(jìn)入Debug狀態(tài)

7) 打開Keil的printf-view窗口, 通過 View -> Serial Windows ->Debug(printf) View

8) 點擊運(yùn)行之后,在Debug (printf) View里即可查看


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表