在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 總線錯誤和段錯誤相關(guān)概念

            總線錯誤和段錯誤相關(guān)概念

            作者: 時間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
            在UNIX上編程時,經(jīng)常會遇到如下兩個常見的運行時錯誤:

            buserror總線錯誤

            本文引用地址:http://www.biyoush.com/article/201612/330343.htm

            segmentationfault段錯誤

            總線錯誤

            總線錯誤幾乎都是由于未對齊的讀或?qū)懺斐傻?。它之所以稱為總線錯誤,是因為出現(xiàn)未對齊的內(nèi)存訪問請求時,被堵塞的組件就是地址總線。對齊的意思就是數(shù)據(jù)項只能存儲在地址是數(shù)據(jù)項大小的整數(shù)倍的內(nèi)存位置上。在現(xiàn)代的計算機(jī)架構(gòu)中,尤其是RISC架構(gòu),都需要數(shù)據(jù)對齊,因為與任意的對齊有關(guān)的額外邏輯會使整個內(nèi)存系統(tǒng)更大且更慢。通過迫使每個內(nèi)存訪問局限在一個cache行或一個單獨的頁面內(nèi),可以極大地簡化如cache控制器或內(nèi)存管理單元這樣的硬件。

            我們表達(dá)“數(shù)據(jù)項不能跨越頁面或cache邊界”規(guī)則的方法多少有些間接,因為我們用地址對齊這個術(shù)語來陳述這個問題,而不是直截了當(dāng)說是禁止內(nèi)存跨頁訪問,但它們說的是同一回事。例如,訪問一個8字節(jié)的double數(shù)據(jù)時,地址只允許是8的整數(shù)倍。所以一個double數(shù)據(jù)可以存儲于地址24、8008、32768,但不能存儲于地址1006,頁和cache的大小是經(jīng)過精心設(shè)計的,這樣只要遵守對齊規(guī)則就可以保證一個原子數(shù)據(jù)項不會跨越一個頁或cache塊的邊界。

            段錯誤

            段錯誤通常是由于解除引用一個未初始化或非法值的指針引起的。以發(fā)生頻率為序,最終可能導(dǎo)致段錯誤的常見編程錯誤是:

            1、壞指針錯誤:在指針賦值之前就用它來引用內(nèi)存;或者向庫函數(shù)傳遞一個壞指針(如果調(diào)試器顯示系統(tǒng)程序中出現(xiàn)了段錯誤,很可能并不是系統(tǒng)程序引起的段錯誤,問題可能就出現(xiàn)在自己的代碼中);或者指針被釋放后還繼續(xù)訪問它的內(nèi)容。

            2、改寫錯誤:越過數(shù)組邊界寫入數(shù)據(jù),在動態(tài)分配的內(nèi)存空間以外寫入數(shù)據(jù),或改寫一些堆管理數(shù)據(jù)結(jié)構(gòu)(在動態(tài)分配的內(nèi)存之前的區(qū)域?qū)懭霐?shù)據(jù)就很容易發(fā)生這種情況)。

            3、指針釋放引起的錯誤:釋放同一塊內(nèi)存兩次,或釋放一塊未曾使用malloc分類的內(nèi)存,或釋放一個無效的指針。一個極為常見的與釋放內(nèi)存有關(guān)的錯誤就是在for(p=start;p;p=p->next)這樣的循環(huán)中迭代一個鏈表,并在循環(huán)體內(nèi)使用free(p)這樣的語句。這樣,在下一次循環(huán)迭代時,程序就會對已經(jīng)釋放的指針進(jìn)行解除引用操作,從而導(dǎo)致不可預(yù)料的結(jié)果。



            關(guān)鍵詞: 總線錯誤段錯

            評論


            技術(shù)專區(qū)

            關(guān)閉