這篇文章將為大家詳細講解有關(guān)IAR ITM機制中打印調(diào)試信息的途徑有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
在滕州等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站制作,滕州網(wǎng)站建設(shè)費用合理。
打印調(diào)試信息幾種途徑:
1.串口打?。?/strong>
將fputc映射到UART,通過USB-TLL轉(zhuǎn)接板打印調(diào)試信息。
STM32F103官方提供的代碼:
/** * @brief Retargets the C library printf function to the USART. * @param None * @retval None */ PUTCHAR_PROTOTYPE { /* Place your implementation of fputc here */ /* e.g. write a character to the USART */ USART_SendData(EVAL_COM1, (uint8_t) ch); /* Loop until the end of transmission */ while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET) { } return ch; }
1.通過Jlink仿真器打?。?/strong>
cortex-M3內(nèi)核支持ITM機制,可以通過Jlink打印調(diào)試信息。 ITM相關(guān)函數(shù)在core_cm3.h中有定義,需要將fputc重新映射到ITM,實現(xiàn)printf。
注意:
ITM需要使用SWD的仿真口(且需要連接SWO),而不是常用的Jlink仿真口。
需要激活I(lǐng)TM的Port0端口來捕獲信息
時鐘需要配置和開發(fā)板的時鐘一致
SWD接口如下:
fputc映射代碼如下:
/** * @brief Retargets the C library printf function to the USART. * @param None * @retval None */ PUTCHAR_PROTOTYPE { #ifdef DEBUG_USART1 /* Place your implementation of fputc here */ /* e.g. write a character to the USART */ USART_SendData(USART1, (uint8_t) ch); /* Loop until the end of transmission */ while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) { __NOP(); } return ch; #endif #ifdef DEBUG_ITM /* Place your implementation of fputc here */ /* e.g. write a character to the ITM */ ITM_SendChar((uint32_t)ch); return ch; #endif }
IAR配置如下:
使用SWD
仿真:
將數(shù)據(jù)邏輯斷點打在randomvalue變量處,使用Timeline窗口查看randomvalue。 打印隨機數(shù)變量 randomvalue到Terminal IO窗口,
關(guān)于“IAR ITM機制中打印調(diào)試信息的途徑有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。