0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

keil常見(jiàn)問(wèn)題及解決措施

掌芯元器 ? 2024-08-30 13:22 ? 次閱讀

一、代碼及進(jìn)入調(diào)試之前相關(guān)錯(cuò)誤及解決

1.1 未定義錯(cuò)誤(identifier "XXXX" is undefined)

出現(xiàn)此類錯(cuò)誤主要有以下幾方面的原因及解決辦法如下:

未包含相關(guān)函數(shù)的頭文件,添加對(duì)應(yīng)頭文件即可。

變量的使用在變量定義之前,在C語(yǔ)言中,編譯是從上到下進(jìn)行的,故而無(wú)法找到變量定義,從而報(bào)錯(cuò),因此在編程之時(shí)需要注意,不要把程序調(diào)用的內(nèi)容放在定義之前。

引入頭文件錯(cuò)誤、未在keil工程中添加頭文件路徑,導(dǎo)致在編譯的時(shí)候找不到對(duì)應(yīng)的頭文件。

1.2 無(wú)法下載程序,識(shí)別不到目標(biāo)板

出現(xiàn)此類錯(cuò)誤主要有以下幾方面的原因及解決辦法如下:

當(dāng)下載程序失敗可從以下幾個(gè)方面進(jìn)行查找,通過(guò)此電腦右鍵 -> 管理 -> 查看是否存在下載器相關(guān)的設(shè)備,如:AT_LINK,ST_LINK。若沒(méi)有則需要安裝相應(yīng)調(diào)試器版本的驅(qū)動(dòng)。

檢查調(diào)試器和單片機(jī)下載口的接線。

檢查單片機(jī)供電和開(kāi)發(fā)板本身。

選擇正確的下載器類型,如:CMSIS_DAP

1.3 keil報(bào)錯(cuò)last line of file ends without a newline

打開(kāi)錯(cuò)誤提示中出現(xiàn)的文件,將光標(biāo)放置在文章最后,點(diǎn)擊回車即可,可以多點(diǎn)幾下。避免此類錯(cuò)誤可以在編寫(xiě).c和.h文件時(shí)直接在文件末尾添加幾個(gè)空行。

1.4 變量重復(fù)定義

編譯時(shí)出現(xiàn)變量在2個(gè)或多個(gè)文件中重復(fù)定義有兩個(gè)原因,一是該變量確實(shí)重復(fù)定義了,二是頭文件重復(fù)包含。針對(duì)此類原因?qū)Υa進(jìn)行檢查即可。PS:在編程時(shí)一定注意頭文件的包含,養(yǎng)成良好的編程習(xí)慣?。?!

1.5 keil報(bào)錯(cuò):function "xxx" was referenced but not defined

出現(xiàn)此類問(wèn)題多是頭文件或源文件中“xxx”變量定義為靜態(tài)變量,只要去掉變量定義時(shí)的static即可。

1.6 ErrorNo space in execution regions...

出現(xiàn)此類問(wèn)題的原因是程序大小或數(shù)據(jù)大小超出分配內(nèi)存空間導(dǎo)致的,可重新分配內(nèi)存空間或優(yōu)化代碼。還有一種可能是未激活keil導(dǎo)致的,注冊(cè)激活keil即可。

keil破解激活可參考此篇文章:Keil5最新注冊(cè)機(jī)到2032_keil5注冊(cè)機(jī)-CSDN博客

二、調(diào)試相關(guān)

2.1 退出調(diào)試,軟件卡死

此問(wèn)題主要針對(duì)5.38之后的版本,在此之前的版本不會(huì)出現(xiàn)此類現(xiàn)象。此問(wèn)題是keil的軟件本身的BUG導(dǎo)致。只能待官方解決,但此BUG在我們的使用過(guò)程中是可以避免的。那我們?cè)撊绾伪苊饽兀恐灰谖覀兺顺稣{(diào)試界面之前,取消所有斷點(diǎn)即可,但是在實(shí)際使用中發(fā)現(xiàn)有時(shí)候沒(méi)有斷點(diǎn)也會(huì)出現(xiàn)此類現(xiàn)象,那是為什么呢?因?yàn)樵谕顺鲋斑M(jìn)行過(guò)單步調(diào)試,導(dǎo)致雖然沒(méi)有設(shè)置斷點(diǎn),但是軟件認(rèn)為存在斷點(diǎn)導(dǎo)致的,保險(xiǎn)起見(jiàn),每次退出調(diào)試之前,點(diǎn)擊菜單欄的殺死所有斷點(diǎn)選項(xiàng)即可。

e857a204-668f-11ef-89ff-92fbcf53809c.png

2.2 keil里無(wú)法進(jìn)行 go to 的跳轉(zhuǎn)

問(wèn)題:no browse information available in’工程目錄’ check-[target-options][output][browse information] then rebuild the target!

解決:選中工程目錄下的target1 -> 點(diǎn)擊右鍵,-> option for target ‘target1’-> 在彈出的對(duì)話框中選擇output選項(xiàng)卡 -> 勾選Browse information 選項(xiàng) -> 重新編譯工程即可

2.3 keil無(wú)法跳轉(zhuǎn)到函數(shù)和變量定義

問(wèn)題:無(wú)法跳轉(zhuǎn)到定義,提示錯(cuò)誤 “no browse info for symbol in this context“

解決:把工程移到不包含中文的路徑下進(jìn)行編譯使用。檢查編譯器版本和工程版本是否一致,若不一致則在keil中選擇一致的編譯器版本,重新編譯即可。若還不行記得勾選[Use Micro LIB]。

2.4 keil無(wú)法下載個(gè)別文件

問(wèn)題:“xxx.s” could not be opened/could not load file“***.axf”

解決:上述問(wèn)題出現(xiàn)的原因是MDK查找路徑太長(zhǎng),我們縮短相關(guān)文件路徑即可。

2.5 Debug模式,某些語(yǔ)句不能設(shè)置斷點(diǎn)

解決:上述問(wèn)題出現(xiàn)的原因是編譯優(yōu)化太高導(dǎo)致的,我們將keil的優(yōu)化等級(jí)改為default或者最低即可,這樣每一個(gè)運(yùn)行的地方都可以打斷點(diǎn)。

2.6 Cannot access target. Shutting down debug session.

解決方法如下:勾選target選項(xiàng),工程路徑不包含中文即可。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7581

    瀏覽量

    135539
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1208

    瀏覽量

    166442
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4694

    瀏覽量

    68074
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    吳鑒鷹總結(jié)的Keil編譯常見(jiàn)問(wèn)題

    吳鑒鷹總結(jié)的Keil編譯常見(jiàn)問(wèn)題
    發(fā)表于 12-20 13:04

    Keil編譯常見(jiàn)問(wèn)題

    Keil編譯常見(jiàn)問(wèn)題
    發(fā)表于 01-26 14:08

    使用keil5常見(jiàn)問(wèn)題有哪些?如何解決這些問(wèn)題?

    使用keil5常見(jiàn)問(wèn)題有哪些?如何解決這些問(wèn)題?
    發(fā)表于 11-30 06:51

    繼電保護(hù)/繼電器常見(jiàn)問(wèn)題及處理措施

    繼電保護(hù)/繼電器常見(jiàn)問(wèn)題及處理措施        一、觸點(diǎn)松動(dòng)回開(kāi)裂   觸點(diǎn)是繼電器完成切換負(fù)荷的電接
    發(fā)表于 12-08 09:17 ?846次閱讀

    繼電器常見(jiàn)問(wèn)題及處理措施

    繼電器常見(jiàn)問(wèn)題及處理措施   一、觸點(diǎn)松動(dòng)回開(kāi)裂        觸點(diǎn)是繼電器完成切換負(fù)荷的電接觸零件,
    發(fā)表于 12-08 10:02 ?937次閱讀

    Keil編譯常見(jiàn)問(wèn)題

    吳鑒鷹總結(jié)的Keil 編譯常見(jiàn)問(wèn)題,吳鑒鷹總結(jié)的Keil 編譯常見(jiàn)問(wèn)題。
    發(fā)表于 07-22 15:31 ?10次下載

    吳鑒鷹總結(jié)的Keil編譯常見(jiàn)問(wèn)題(一)

    吳鑒鷹總結(jié)的Keil編譯常見(jiàn)問(wèn)題,例如:.error: #18: 6.error: #18: expected a ")" 如果是出現(xiàn)在c 文件中 多半是因?yàn)樯倭艘粋€(gè)")"或者錯(cuò)誤行有編譯器不識(shí)別的字符 如果出現(xiàn)在頭文件中錯(cuò)誤行又是一個(gè)函數(shù)聲明多半是因?yàn)樵诤瘮?shù)聲明中
    發(fā)表于 07-22 15:31 ?0次下載

    keil編譯有哪些常見(jiàn)問(wèn)題?

    本文檔的主要內(nèi)容詳細(xì)介紹的是keil編譯有哪些常見(jiàn)問(wèn)題?
    發(fā)表于 08-24 16:04 ?17次下載

    功率繼電器的測(cè)量方法_功率繼電器常見(jiàn)問(wèn)題及處理措施

    本文首先闡述了功率繼電器的四種測(cè)量方法,另外還詳細(xì)介紹了功率繼電器常見(jiàn)問(wèn)題及處理措施
    發(fā)表于 03-19 14:52 ?4229次閱讀

    使用激光切割機(jī)出現(xiàn)的常見(jiàn)問(wèn)題和原因、解決措施

    使用激光切割機(jī)出現(xiàn)的常見(jiàn)問(wèn)題和原因、解決措施
    的頭像 發(fā)表于 09-15 16:02 ?2w次閱讀

    灰塵網(wǎng)絡(luò)常見(jiàn)問(wèn)題

    灰塵網(wǎng)絡(luò)常見(jiàn)問(wèn)題
    發(fā)表于 04-28 15:08 ?8次下載
    灰塵網(wǎng)絡(luò)<b class='flag-5'>常見(jiàn)問(wèn)題</b>

    C語(yǔ)言常見(jiàn)問(wèn)題

    C語(yǔ)言常見(jiàn)問(wèn)題
    發(fā)表于 03-21 14:57 ?0次下載

    OpenSSL安裝常見(jiàn)問(wèn)題

    OpenSSL安裝常見(jiàn)問(wèn)題
    的頭像 發(fā)表于 07-07 11:17 ?806次閱讀
    OpenSSL安裝<b class='flag-5'>常見(jiàn)問(wèn)題</b>

    pcb設(shè)計(jì)常見(jiàn)問(wèn)題和改善措施

    pcb設(shè)計(jì)常見(jiàn)問(wèn)題和改善措施? 隨著現(xiàn)代電子技術(shù)的不斷發(fā)展,硬件設(shè)計(jì)的要求也越來(lái)越高。作為硬件設(shè)計(jì)的基礎(chǔ),PCB設(shè)計(jì)在整個(gè)電子產(chǎn)品的生產(chǎn)過(guò)程中占據(jù)著至關(guān)重要的地位。然而,在實(shí)際的PCB設(shè)計(jì)過(guò)程中
    的頭像 發(fā)表于 08-29 16:40 ?2506次閱讀

    火電機(jī)組DCS常見(jiàn)問(wèn)題與建議措施

    電子發(fā)燒友網(wǎng)站提供《火電機(jī)組DCS常見(jiàn)問(wèn)題與建議措施.doc》資料免費(fèi)下載
    發(fā)表于 11-03 10:16 ?0次下載
    火電機(jī)組DCS<b class='flag-5'>常見(jiàn)問(wèn)題</b>與建議<b class='flag-5'>措施</b>