Keil的軟件仿真和硬件仿真美男子玩編程關(guān)注共 4191字,需瀏覽 9分鐘 ·2021-04-16 23:40 點(diǎn)擊上方藍(lán)色字體,關(guān)注我們 一、軟件仿真 Keil有很強(qiáng)大的軟件仿真功能,通過(guò)軟件仿真可以發(fā)現(xiàn)很多將要出現(xiàn)的問(wèn)題,Keil的仿真可以查看很多硬件相關(guān)的寄存器,通過(guò)觀察這些寄存器值的變化可以知道代碼有沒(méi)有正常運(yùn)行。這樣可以避免頻繁下載程序,延長(zhǎng)單片機(jī)Flash壽命。 開(kāi)始仿真之前,先配置一些選項(xiàng)。 在工程設(shè)置里設(shè)置好芯片型號(hào)和晶振頻率。 第一步: 第二步: 在“Debug”選項(xiàng)卡中選擇“Use Simulator”,表示使用軟件仿真;選擇“Run to main()”則表示跳過(guò)匯編代碼,直接跳轉(zhuǎn)到main函數(shù)開(kāi)始仿真。設(shè)置下面的“Dialog DLL”項(xiàng)為“DARMSTM.DLL”和“TARMSTM.DLL”;parameter項(xiàng)為“-pSTM32F103C8”,用于設(shè)置支持STM32F103C8的軟硬件仿真。 第三步: 點(diǎn)擊開(kāi)始仿真,這個(gè)時(shí)候會(huì)多出來(lái)一個(gè)工具條,就是Debug工具條。 1:復(fù)位,其功能等同于硬件上按復(fù)位按鈕,相當(dāng)于實(shí)現(xiàn)了一次硬復(fù)位。按下該按鈕后,代碼會(huì)重新從頭開(kāi)始執(zhí)行。 2:執(zhí)行到斷點(diǎn)處,按按鈕用來(lái)快速執(zhí)行到斷點(diǎn)處,有時(shí)候并不需要觀看每步時(shí)怎么執(zhí)行的,而是想快速執(zhí)行到程序的某個(gè)地方看結(jié)果,這個(gè)按鈕就可以實(shí)現(xiàn)這樣的功能,前提是已在查看的地方設(shè)置了斷點(diǎn)。 3:停止運(yùn)行,此按鈕在程序一直執(zhí)行的時(shí)候變?yōu)橛行?,可以使程序停止下?lái)進(jìn)入到單步調(diào)試狀態(tài)。 4:執(zhí)行進(jìn)去,該按鈕用來(lái)實(shí)現(xiàn)執(zhí)行到某個(gè)函數(shù)里面去的功能,在沒(méi)有函數(shù)的情況下等同于執(zhí)行過(guò)去按鈕。 5:執(zhí)行過(guò)去,在碰到有函數(shù)的地方,通過(guò)該按鈕就可以單步執(zhí)行過(guò)這個(gè)函數(shù),而不進(jìn)入這個(gè)函數(shù)單步執(zhí)行。 6:執(zhí)行出去,該按鈕是進(jìn)入了函數(shù)單步調(diào)試的時(shí)候,有時(shí)候可能不必再執(zhí)行該函數(shù)的剩余部分了,通過(guò)該按鈕就直接一步執(zhí)行完函數(shù)余下的部分,并跳出函數(shù)回到函數(shù)被調(diào)用的位置。 7:執(zhí)行到光標(biāo)處,該按鈕可以迅速使程序運(yùn)行到光標(biāo)處,與執(zhí)行到斷點(diǎn)處按鈕功能類(lèi)似。 8:匯編窗口,通過(guò)該按鈕可以查看匯編代碼,這對(duì)分析程序很有用。 9:堆棧局部變量窗口,通過(guò)該按鈕可以顯示Call Stack+Locals窗口,顯示當(dāng)前函數(shù)的局部變量及其值,方便查看。 10:觀察窗口,MDK5提供2個(gè)觀察窗口(下拉選擇),該按鈕按下則彈出一個(gè)顯示變量的窗口。輸入想觀察的變量或表達(dá)式,即可查看其值,是很常用的調(diào)試窗口。 11:內(nèi)存查看窗口,MDK5提供4個(gè)內(nèi)存查看窗口,按下按鈕,則彈出一個(gè)內(nèi)存查看窗口,可以在里面輸入要查看的內(nèi)存地址,然后觀察這一片內(nèi)存的變化情況。 12:串口打印窗口,MDK5提供4個(gè)串口打印窗口。按下該按鈕,則彈出一個(gè)類(lèi)似串口調(diào)試助手界面的窗口,用來(lái)顯示從串口打印出來(lái)的內(nèi)容。 13:邏輯分析窗口,該圖標(biāo)下面有3個(gè)選項(xiàng),一般用第一個(gè),也就是邏輯分析窗口。通過(guò)SETUP按鈕新建一些IO口,于是可以觀察這些IO的電平變化情況,并以多種形式顯示出來(lái),比較直觀。 14:系統(tǒng)查看窗口,該按鈕可以提供各種外設(shè)寄存器的查看窗口(通過(guò)下拉選擇),選擇對(duì)應(yīng)外設(shè)即可調(diào)出該外設(shè)的相關(guān)寄存器表,并顯示這些寄存器的值,方便查看設(shè)置是否正確。 二、硬件仿真 硬件仿真則是程序下載到單片機(jī)中,進(jìn)行的仿真,是程序?qū)嶋H在單片機(jī)中運(yùn)行的情況。 需要選擇后面那個(gè)選項(xiàng),然后在下拉單里選擇自己的仿真器。然后后面步驟和軟件仿真一樣。 注:要在邏輯硬件仿真里使用邏輯分析儀之類(lèi)的工具,要開(kāi)“Trace” END 版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除。 往期推薦 通俗易懂 | 走進(jìn)PCB板里的金、銀、銅 世界上手速最快的仿人機(jī)器人誕生 秒殺全網(wǎng)!研發(fā)、運(yùn)營(yíng)必備實(shí)用工具網(wǎng)站 點(diǎn)擊閱讀原文,更精彩~ 瀏覽 89點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào) 評(píng)論圖片表情視頻評(píng)價(jià)全部評(píng)論推薦 RifidiRFID 軟件仿真程序Rifidi是一個(gè) RFID 的軟件仿真程序RFID,射頻識(shí)別(Radio Frequency IdRifidiRFID 軟件仿真程序Rifidi是一個(gè)RFID的軟件仿真程序RFID,射頻識(shí)別(RadioFrequencyIdentification)的英文縮寫(xiě),是一項(xiàng)利用射頻信號(hào)通過(guò)空間耦合(交變磁場(chǎng)或電磁場(chǎng))實(shí)現(xiàn)無(wú)接觸信息傳遞并OpenRocket模型火箭仿真軟件OpenRocket?是一款開(kāi)源的模型火箭仿真軟件,你可以用?OpenRocket?設(shè)計(jì)你的模型火箭OpenRocket模型火箭仿真軟件OpenRocket?是一款開(kāi)源的模型火箭仿真軟件,你可以用?OpenRocket?設(shè)計(jì)你的模型火箭,然后對(duì)其進(jìn)行模擬飛行,得到其性能參數(shù),以進(jìn)行性能改進(jìn)。正如其它開(kāi)源軟件一樣,OpenRocket提Palomino開(kāi)源飛行仿真軟件Palomino是一個(gè)基于OSG的開(kāi)源飛行仿真軟件,值得一提的他的架構(gòu),非常靈活,場(chǎng)景的控制用的是lua腳本,其他的開(kāi)發(fā)人員可以以自己的方式編寫(xiě)lua腳本,組建不一樣的場(chǎng)景,而不用修改很多c++的代碼Palomino開(kāi)源飛行仿真軟件Palomino是一個(gè)基于OSG的開(kāi)源飛行仿真軟件,值得一提的他的架構(gòu),非常靈活,場(chǎng)景的控制用的是lOpenModelicaModelica的建模和仿真環(huán)境OPENMODELICA是一個(gè)開(kāi)源的基于Modelica語(yǔ)言的建模和仿真環(huán)境,用于工業(yè)界和學(xué)術(shù)界研究。長(zhǎng)期由非贏利組織OpenSourceModelicaConsortium(OSMC)開(kāi)發(fā).ThegOpenModelicaModelica的建模和仿真環(huán)境OPENMODELICA是一個(gè)開(kāi)源的基于Modelica語(yǔ)言的建模和仿真環(huán)境,用于工業(yè)界和學(xué)術(shù)界研究仿真摩托艇模擬駕駛摩托艇,畫(huà)面上的感覺(jué)還算不錯(cuò),只是在駕駛之外更包含了模擬的成分,游戲內(nèi)容比較豐富仿真摩托艇仿真摩托艇0點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào)