国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

迅為i.MX6ULL開發(fā)板IAR JLNK調(diào)試SDK程序

發(fā)布時(shí)間:2021-3-29 14:32    發(fā)布者:落風(fēng)
在1.2.2章節(jié)我們安裝了SDK程序(安裝位置:G:\nxp),在1.2.3章節(jié)我們安裝了IAR開發(fā)工具,接下來我們打開IAR開發(fā)工具,如圖 1所示

在本章節(jié)我們主要是講解如何通過IAR+JLINK調(diào)試i.MX6ULL的IAR工程,關(guān)于IAR工具的具體使用,大家可以網(wǎng)上查找相關(guān)的文檔。
然后我們點(diǎn)擊“file->open->workspace”,如圖 2所示:

然后會(huì)打開“Open Workspace”對話框,我們這里以sdk里面的hello_world工程為例,來學(xué)習(xí)一下通過JLINK來調(diào)試i.MX6ULL的程序。該工程的目錄在sdk安裝位置的“boards\evkmcimx6ull\demo_apps\hello_world\iar”目錄下面,因?yàn)槲覀兊膕dk安裝到了G盤的nxp文件夾下,所以hello_world工程的絕對路徑是“G:\nxp\boards\evkmcimx6ull\demo_apps\hello_world\iar”(大家可以根據(jù)自己sdk安裝的位置,選擇對應(yīng)的目錄)。我們在“Open Workspace”對話框里選擇hello_world工程的目錄,最終在改目錄下選擇“hello_world.eww”(IAR工程文件的后綴名是eww),然后點(diǎn)擊“打開”按鈕,如圖 3所示


Hello_world工程打開后的界面如圖 4所示:

我們可以看到該工程提供了四種編譯方式,如圖 5所示:

我們這里使用默認(rèn)的“ddr_debug”方式編譯該工程。
我們可以點(diǎn)擊工具欄上的“Make”按鈕,編譯該工程,如圖 6所示:

從上圖的編譯結(jié)果輸出信息,我們可以看到編譯成功。

然后我們連接JLNIK V9下載器到i.MX6ULL終結(jié)者開發(fā)板的JTAG接口,如圖 7所示:

由于i.MX6ULL芯片的JTAG接口和SAI(聲卡)是復(fù)用的,所以我們使用JTAG接口的時(shí)候需要修改下開發(fā)板(V1.0的底板需要去掉底上的電阻R183;V1.1的底板需要去掉聲卡芯片旁邊的跳線帽(J50))。

然后我們連接開發(fā)板的調(diào)試串口到PC電腦上,并在電腦上打開串口終端,串口終端的波特率設(shè)置成115200,8位數(shù)據(jù)位,無奇偶校驗(yàn),1位停止位,不選擇流控,如圖 8所示:

設(shè)置完成串口終端,我們打開串口終端,如圖 9所示:

然后我們給開發(fā)板上電,接著我們在IAR工程界面的菜單欄點(diǎn)擊“Debug without Loading”圖標(biāo),如圖 10所示:

如果JLINK和開發(fā)板的JTAG接口連接正確的話,會(huì)進(jìn)入到調(diào)試界面,如圖 11所示:

從上圖我們可以看到hello_world的程序已經(jīng)開始運(yùn)行,程序的指針在main函數(shù)入口處停止,等待我們執(zhí)行調(diào)試。
IAR進(jìn)入調(diào)試模式以后,在菜單欄上調(diào)試相關(guān)的快捷圖標(biāo)會(huì)變成有效狀態(tài)(鼠標(biāo)可以點(diǎn)擊),與調(diào)試相關(guān)的幾個(gè)快捷圖標(biāo)如圖 12所示:

從上圖,我們可以看到一共有7個(gè)快捷圖標(biāo),他們分別是:

Step Over:單步執(zhí)行(沒點(diǎn)擊一次,程序相應(yīng)的運(yùn)行一行)

Step Into:如果程序指針當(dāng)前指向的是一個(gè)函數(shù)調(diào)用,如果點(diǎn)擊此圖標(biāo),則會(huì)進(jìn)入到當(dāng)前指向的這個(gè)函數(shù)內(nèi)部

Step Out:與Step Into想對應(yīng),如果我們通過Step Into進(jìn)入到某個(gè)函數(shù)內(nèi)部去執(zhí)行了,此時(shí)想返回到之前的函數(shù),并繼續(xù)執(zhí)行此前函數(shù)的嚇一跳命令,我們可以點(diǎn)擊此圖標(biāo)

Next Statement:右擊某一行選“Set Next Statement”,可以不執(zhí)行中間程序,執(zhí)行點(diǎn)直接到此行,用于不執(zhí)行某些代碼

Run to Cursor:程序調(diào)試的時(shí)候運(yùn)行到光標(biāo)處(我們可以在任意一行程序鼠標(biāo)單擊一下,使光標(biāo)定位到該行,然后點(diǎn)擊“Run to Cursor”,程序就會(huì)運(yùn)行到光標(biāo)所在的行,并停住)

Go:執(zhí)行程序,程序遇到斷點(diǎn)會(huì)停止,如果沒有設(shè)置斷點(diǎn),程序就會(huì)一直繼續(xù)執(zhí)行

Stop Debugging:結(jié)束調(diào)試模式


在調(diào)試模式下控制程序執(zhí)行主要通過上面的7個(gè)快捷圖標(biāo)來實(shí)現(xiàn)。

下面我們來看一下怎么給程序設(shè)置斷點(diǎn)。IAR工程里面給程序設(shè)置斷點(diǎn)很簡單,我們在普通編譯模式或者調(diào)試模式下,只需要鼠標(biāo)點(diǎn)擊每行最左側(cè)的灰色空白區(qū)域,就可以為該行添加斷點(diǎn),如圖 13所示:

斷點(diǎn)添加完成后,如圖 14所示:

從上圖我們可以看到添加斷點(diǎn)的行,在該行的最左側(cè)會(huì)有一個(gè)“紅色的實(shí)點(diǎn)”。

取消斷點(diǎn)的方式和添加斷點(diǎn)的方式一樣,我們只需要鼠標(biāo)單擊斷點(diǎn)的“紅色實(shí)點(diǎn)”,就可以取消添加的斷點(diǎn)。

接下來我們演示下通過JLINK調(diào)試i.MX6ULL的程序,我們在編譯完成hello_world工程以后(點(diǎn)擊菜單欄的Make快捷圖標(biāo)),然后點(diǎn)擊菜單欄的“Debug without Downloading”快捷圖標(biāo),進(jìn)入調(diào)試模式,如圖 15所示:

然后進(jìn)入調(diào)試模式,程序指針跳轉(zhuǎn)到main函數(shù)的入口處,等待調(diào)試運(yùn)行,如圖 16所示:

然后我們在調(diào)用PRINTF函數(shù)的一行添加一個(gè)斷點(diǎn),如圖 17所示:

然后我們點(diǎn)擊調(diào)試快捷圖標(biāo)中的“Stop Over”開始單步執(zhí)行,程序數(shù)顯會(huì)執(zhí)行到“BOARD_InitPins();”一行,如圖 18所示:

然后我們繼續(xù)點(diǎn)擊“Step Over”快捷圖標(biāo),程序運(yùn)行到“BOARD_BootClockRUN();”該行,如圖 19所示;

我們可以看到上圖中程序指針指向的該行“BOARD_BootClockRUN()”是一個(gè)函數(shù)調(diào)用,接下來我們演示一下“Step Into”快捷圖標(biāo)進(jìn)入到函數(shù)內(nèi)部執(zhí)行的功能。我們點(diǎn)擊調(diào)試快捷圖標(biāo)中的“Step Into”快捷圖標(biāo),可以看到程序指針進(jìn)入到BOARD_BootClockRUN函數(shù)內(nèi)部,如圖 20所示:

然后我們把光標(biāo)定位到“if (CLOCK_GetMux(kCLOCK_Pll1SwMux) == 0)”該行,然后點(diǎn)擊調(diào)試快捷圖標(biāo)中的“Run to Cursor”,延時(shí)下該圖標(biāo)的功能,點(diǎn)擊完改圖標(biāo),程序指針直接運(yùn)行到了

“if (CLOCK_GetMux(kCLOCK_Pll1SwMux) == 0)”該行,并停在了該行,等待我們繼續(xù)點(diǎn)擊調(diào)試快捷圖標(biāo),如圖 21所示:

然后我們點(diǎn)擊調(diào)試快捷圖標(biāo)中的“Step Out”快捷圖標(biāo),演示下跳出“BOARD_BootClockRUN”函數(shù),并繼續(xù)運(yùn)行該函數(shù)后面的程序,運(yùn)行結(jié)果如圖 22所示:

然后我們點(diǎn)擊調(diào)試快捷圖標(biāo)中的“Go”快捷圖標(biāo),演示下該圖標(biāo)的功能。我們在“PRINTF(“hello world.\r\n”);”一行添加了一個(gè)斷點(diǎn),運(yùn)行結(jié)果如圖 23所示:

從上圖我們可以看到“Go”快捷圖標(biāo)的功能是程序繼續(xù)運(yùn)行,如果遇到斷點(diǎn),就停止,否則一直往下執(zhí)行。

上圖中的程序最后進(jìn)入while(1)主循環(huán),在while(1)主循環(huán)里面主要實(shí)現(xiàn)接收串口數(shù)據(jù),并把接收到的串口數(shù)據(jù)通過串口再次發(fā)送出去。為了驗(yàn)證“Go”快捷圖標(biāo)在沒有遇到斷點(diǎn)的情況下會(huì)一直執(zhí)行,我們繼續(xù)點(diǎn)擊“Go”快捷圖標(biāo),繼續(xù)運(yùn)行程序,我們可以看到串口終端打印輸出了“hello world.”字符串,如圖 24所示:

然后我們在串口調(diào)試終端輸入任意的字符,可以看到串口調(diào)試中斷會(huì)打印出我們輸入的字符,運(yùn)行結(jié)果如圖 25所示:

我們在調(diào)試完程序,可以通過調(diào)試快捷圖標(biāo)中的“Stop Debugging”快捷圖標(biāo)退出調(diào)試模式,運(yùn)行結(jié)果如圖 26所示:


本文地址:http://m.qingdxww.cn/thread-763596-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 利用SAM E54 Xplained Pro評(píng)估工具包演示CAN轉(zhuǎn)USB橋接器以及基于CAN的主機(jī)和自舉程序應(yīng)用程序
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 视频成人永久免费下载 | 欧美精品一区二区三区在线播放 | 老师让我她我爽了好久老 | 国内精品免费久久久久妲己 | 国产麻豆果冻传媒 | 四虎精品免费久久 | 亚洲黄色片网站 | 美国美女一级毛片免费全 | 亚洲区一区 | 欧日韩不卡在线视频 | 日本在线观看www免费 | 亚洲三级视频 | 99re精彩视频| 七月婷婷精品视频在线观看 | 亚洲欧美日韩一区成人 | 久久综合久久网 | 日本三级黄网站 | 亚洲专区在线播放 | 色拍999| 国产精品亚洲一区二区麻豆 | 日本欧美一区二区三区高清 | 国产特黄特色a级在线视频 国产特黄特色a级在线视 | 99久久免费精品国产免费高清 | 欧美大片在线欧美大片 | 久久久久久久久a免费 | 亚洲视频免费播放 | 九色国产在视频线精品视频 | 国产h在线 | 看全色黄大色黄大片视频 | 黄床大片30分钟免费看 | 思思久久99热这里只有精品66 | 欧美一区欧美二区 | 中文字幕一区二区三区视频在线 | 亚洲卡一卡2卡三卡4麻豆 | eeuss免费影院 | 色久激情| 国产一级一片免费播放i | 啦啦啦中文在线影院观看 | 日本一在线中文字幕天堂 | 日日噜噜夜夜狠狠视频欧美人 | 亚洲网站免费观看 |