六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦硬件知識(shí) > 硬件知識(shí) > J-LINK如何進(jìn)行硬件仿真

J-LINK如何進(jìn)行硬件仿真

時(shí)間: 文輝886 分享

J-LINK如何進(jìn)行硬件仿真

  J-LINK究竟是如何進(jìn)行硬件仿真的呢?以下就是學(xué)習(xí)啦小編做的整理,希望對(duì)你們有用!

  J-LINK進(jìn)行硬件仿真

  代碼比較簡(jiǎn)單,所以不需要硬件調(diào)試,我們直接就一次成功了。如果代碼工程比較大,難免存在一些bug,這時(shí)就有必要通過(guò)硬件調(diào)試來(lái)解決問(wèn)題了。

  串口只能下載代碼,并不能實(shí)時(shí)跟蹤調(diào)試,而利用調(diào)試工具,比如JLINK、ULINK、STLINK等就可以實(shí)時(shí)跟蹤程序,從而找到你程序中的bug,使你的開(kāi)發(fā)事半功倍。這里我們以JLINKV8為例,說(shuō)說(shuō)如何在線調(diào)試STM32。

  JLINKV8支持JTAG和SWD,同時(shí)STM32也支持JTAG和SWD。所以,我們有2種方式可以用來(lái)調(diào)試,JTAG調(diào)試的時(shí)候,占用的IO線比較多,而SWD調(diào)試的時(shí)候占用的IO線很少,只需要兩根即可。

  JLINKV8的驅(qū)動(dòng)安裝比較簡(jiǎn)單,我們?cè)谶@里就不說(shuō)了。在安裝了JLINKV8的驅(qū)動(dòng)之后,我們接上JLINKV8,并把JTAG口插到ALIENTEK戰(zhàn)艦STM32開(kāi)發(fā)板上,打開(kāi)之前新建的工程,點(diǎn)擊,打開(kāi)OptionsforTarget選項(xiàng)卡,在Debug欄選擇仿真工具為Cortex-M3

  J-LINK,如圖所示:

  

  上圖中我們還勾選了Runtomain(),該選項(xiàng)選中后,只要點(diǎn)擊仿真就會(huì)直接運(yùn)行到main函數(shù),如果沒(méi)選擇這個(gè)選項(xiàng),則會(huì)先執(zhí)行startup_stm32f10x_hd.s文件的Reset_Handler,再跳到main函數(shù)。

  然后我們點(diǎn)擊Settings,設(shè)置J-LINK的一些參數(shù),如圖所示:

  

  我們使用J-LINKV8的SW模式調(diào)試,因?yàn)槲覀僇TAG需要占用比SW模式多很多的IO口,而在ALIENTEK戰(zhàn)艦STM32開(kāi)發(fā)板上這些IO口可能被其他外設(shè)用到,可能造成部分外設(shè)無(wú)法使用。所以,我們建議大家在調(diào)試的時(shí)候,一定要選擇SW模式。MaxClock,可以點(diǎn)擊AutoClk來(lái)自動(dòng)設(shè)置,圖4.3.2中我們?cè)O(shè)置SWD的調(diào)試速度為10Mhz,這里,如果你的USB數(shù)據(jù)線比較差,那么可能會(huì)出問(wèn)題,此時(shí),你可以通過(guò)降低這里的速率來(lái)試試。

  單擊OK,完成此部分設(shè)置,接下來(lái)我們還需要在Utilities選項(xiàng)卡里面設(shè)置下載時(shí)的目標(biāo)編程器,如圖所示:

  

  我們選擇J-LINK來(lái)調(diào)試CortexM3,然后點(diǎn)擊Settings,設(shè)置如圖所示:

  

  這里要根據(jù)不同的MCU選擇FLASH的大小,因?yàn)槲覀冮_(kāi)發(fā)板使用的是STM32F103ZET6,其FLASH大小為512KB,所以我們點(diǎn)擊Add,并在ProgrammingAlgorithm里面選擇512K型號(hào)的STM32。然后選中ResetandRun選項(xiàng),以實(shí)現(xiàn)在編程后自動(dòng)啟動(dòng),其他默認(rèn)設(shè)置即可。設(shè)置完成之后,如上圖3所示。

  在設(shè)置完之后,點(diǎn)擊OK,然后再點(diǎn)擊OK,回到IDE界面,編譯一下工程。再點(diǎn)擊,開(kāi)始仿真(如果開(kāi)發(fā)板的代碼沒(méi)被更新過(guò),則會(huì)先更新代碼,再仿真,你也可以通過(guò)按,只下載代碼,而不進(jìn)入仿真。特別注意:開(kāi)發(fā)板上的B0和B1都要設(shè)置到GND,否則代碼下載后不會(huì)自動(dòng)運(yùn)行的!),如圖所示:

  

  因?yàn)槲覀冎肮催x了Runtomain()選項(xiàng),所以,程序直接就運(yùn)行到了main函數(shù)的入口處,我們?cè)赿elay_init()處設(shè)置了一個(gè)斷點(diǎn),點(diǎn)擊

  ,程序?qū)?huì)快速執(zhí)行到該處。如圖所示:

  

1688985