RM新时代网站-首页

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

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

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

變量位置不同會(huì)死機(jī)?郭天祥老師視頻的遺留問(wèn)題分析答案

聚沃科技 ? 2024-02-26 09:12 ? 次閱讀
wKgaomXb5PyAJi8cAAr3J2Otupw085.png

wKgZomXb5QKAECMPAAkQGcyy6b4811.png

在郭天祥老師視頻里有一個(gè)問(wèn)題分享,是EXMC初始化里的一個(gè)變量定義和初始化位置不同會(huì)導(dǎo)致程序死機(jī),最終定位到程序是進(jìn)入hardfault死機(jī),但暫時(shí)沒(méi)有后續(xù)分析了,這里我們來(lái)繼續(xù)分析一下。

死機(jī)的程序是這樣的:

wKgZomXb5QiAO5QpAABAwKR0WCs524.png

這段代碼是定義和初始化exmc的結(jié)構(gòu)體參數(shù),我們來(lái)詳細(xì)看下結(jié)構(gòu)體中的定義,其中有一個(gè)關(guān)鍵是這里有兩個(gè)指針成員,分別是讀和寫(xiě)的結(jié)構(gòu)體參數(shù)指針。

wKgZomXb5Q2AeC0OAABR9iP3hUk323.png

那我們看下結(jié)構(gòu)體成員初始化函數(shù),其中除了對(duì)成員變量賦值了默認(rèn)參數(shù)外,還對(duì)讀寫(xiě)時(shí)序參數(shù)結(jié)構(gòu)體指針的成員也賦值了默認(rèn)參數(shù):

wKgaomXb5ROAOfffAABluphjhp0417.png

所以這里就是重點(diǎn),此時(shí)這個(gè)結(jié)構(gòu)體剛定義完成,因?yàn)槭蔷植孔兞渴嵌x在棧里的,所以初值都是隨機(jī)值,這個(gè)隨機(jī)值實(shí)際可以解釋為??臻g上次釋放的局部變量值。

當(dāng)對(duì)一個(gè)隨機(jī)值的指針進(jìn)行賦值會(huì)發(fā)生什么?三個(gè)結(jié)果:

1、隨機(jī)值是非法地址,立刻觸發(fā)hardfault;

2、隨機(jī)值是程序?qū)嶋HRAM地址范圍外的可寫(xiě)地址,意外操作了寄存器或者無(wú)效地址,一次無(wú)效操作或開(kāi)啟意外功能;

3、隨機(jī)值是程序已使用的RAM地址,破壞了這段內(nèi)存,程序不會(huì)立刻觸發(fā)hardfault,會(huì)在CPU使用到該區(qū)域時(shí)才出現(xiàn)異常。

那我們應(yīng)該如何調(diào)用這個(gè)EXMC的結(jié)構(gòu)體初始化呢?其實(shí)這里有定義三個(gè)結(jié)構(gòu)圖,另外兩個(gè)就是讀寫(xiě)的時(shí)序結(jié)構(gòu)體的實(shí)體,我們定義后先將這兩個(gè)結(jié)構(gòu)體變量賦值到exmc模式結(jié)構(gòu)體成員的兩個(gè)指針,此時(shí)指針才有了正確地址,調(diào)用結(jié)構(gòu)圖初始化后就可以把這兩個(gè)結(jié)構(gòu)體一起完成初始化。

wKgZomXb5RiAH0HrAAATjr3T7fk244.png

這里的分析很考驗(yàn)大家C語(yǔ)音指針、CPU內(nèi)存的理解功底,還有什么疑難雜癥歡迎大家提供素材。上面分析的正確初始化順序在紅楓派開(kāi)發(fā)板例程中應(yīng)用,歡迎大家應(yīng)用到項(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)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6035

    文章

    44554

    瀏覽量

    634629
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304796
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    403

    瀏覽量

    24326
  • EXMC
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    5191
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    天祥老師視頻資料

    天祥《十天學(xué)會(huì)單片機(jī)》視頻的源程序和相關(guān)資料
    發(fā)表于 11-10 09:50

    我有天祥老師的ARM視頻

    本帖最后由 eehome 于 2013-1-5 09:46 編輯 我有天祥老師的ARM9整套教程,可是我上傳附件的大小僅為10mb,那套視頻就已經(jīng)3g多了,我如何上傳呢?
    發(fā)表于 11-17 21:27

    誰(shuí)要天祥視頻課件資料

    誰(shuí)要天祥視頻課件資料
    發(fā)表于 02-22 16:44

    誰(shuí)有天祥老師arm9完整視頻以及輔助資料?

    誰(shuí)有天祥老師arm9完整視頻以及輔助資料的好心人動(dòng)動(dòng)手指發(fā)給俺一份不勝感激522066863@qq.com
    發(fā)表于 05-24 10:55

    天祥Altium Designe視頻

    `天祥Altium Designe視頻如圖:網(wǎng)盤(pán)下載地址在附件里面,論壇不給我直接放網(wǎng)址`
    發(fā)表于 06-14 15:28

    天祥Altium Designe視頻

    `天祥Altium Designe視頻如圖:網(wǎng)盤(pán)下載地址在附件里面,論壇不給我直接放網(wǎng)址`
    發(fā)表于 06-14 15:35

    天祥 十天學(xué)通單片機(jī)課后答案

    這是天祥老師的十天學(xué)會(huì)單片機(jī)的課后答案,分享給在學(xué)單片機(jī)的兄弟姐妹,另外我還有視頻,但太大傳不上來(lái),想要的可以留下郵箱
    發(fā)表于 08-27 14:06

    天祥老師講的視頻,入門(mén)可以看看

    這是天祥老師講的視頻 相當(dāng)好入門(mén)可以看看啦
    發(fā)表于 04-14 16:45

    天祥的教學(xué)視頻分享

    在這里分享一下天祥的教學(xué)視頻,關(guān)于視頻中的51開(kāi)發(fā)板如果大家手頭上沒(méi)有相關(guān)的開(kāi)發(fā)板就可以直接去淘寶上買(mǎi)一下,應(yīng)該不會(huì)太貴,在100塊以?xún)?nèi)吧。重點(diǎn)還是自己要堅(jiān)持學(xué)下去,不要到難的地方就
    發(fā)表于 09-26 01:25

    誰(shuí)有天祥老師的單片機(jī)視頻,求分享!

    誰(shuí)有天祥老師的十天學(xué)會(huì)單片機(jī)視頻,急用,求分享!??!
    發(fā)表于 05-13 10:56

    天祥老師課件續(xù)

    天祥老師后續(xù)課件
    發(fā)表于 09-08 17:20

    天祥老師的十天學(xué)會(huì)單片機(jī)視頻教程

    天祥老師的十天學(xué)會(huì)單片機(jī)視頻教程,因內(nèi)存過(guò)大,文檔里都是百度云盤(pán)鏈接,請(qǐng)大家自行去下載,謝謝。
    發(fā)表于 04-28 11:31 ?914次下載

    天祥PIC單片機(jī)教學(xué)視頻

    PIC單片機(jī)教學(xué)視頻天祥老師錄制,主要是配合天祥老師
    發(fā)表于 11-03 10:37 ?0次下載

    天祥老師的51單片機(jī)教程課件下載

    天祥老師的51單片機(jī)教程課件下載
    發(fā)表于 12-07 10:09 ?0次下載
    RM新时代网站-首页