久久久精品2019中文字幕神马_欧美亚洲一区三区_欧美大人香蕉在线_精品88久久久久88久久久_中文字幕一区二区三区在线播放 _精品国产一区二区三区久久影院_欧洲av在线精品_粉嫩av一区二区三区_亚洲欧美一区二区三区极速播放_国产亚洲精品久久

首頁 > 汽車

基于DWC_ether_qos的以太網(wǎng)驅(qū)動開發(fā)-LWIP的堆(內(nèi)存池)未對齊導(dǎo)致問題的案例分享

來源:面包芯語 時(shí)間:2023-09-09 13:12:32

一.前言

內(nèi)存未對齊訪問問題這個(gè)已經(jīng)是老生常談的問題了, 由于LWIP的堆管理中也用到了地址(指針)強(qiáng)制轉(zhuǎn)換所以也會遇到這個(gè)問題。對于老手比較容易發(fā)現(xiàn),對于新手可能會比較疑惑。所以也單獨(dú)分享一個(gè)案例吧,權(quán)當(dāng)一個(gè)小的check list的case。

二.問題

Lwipopts.h中MEM_ALIGNMENT可以配置堆對齊大小,有問題時(shí)是配置為1


(資料圖片僅供參考)

#define MEM_ALIGNMENT 1U

異常時(shí)打印寄存器如下,當(dāng)然不同平臺異常時(shí)如何獲取上下文信息方式不一樣,不在本文討論范圍內(nèi),我這里是RISC-V環(huán)境。

看到打印的mepc是0x20006C88,異常原因是地址未對齊。

所以是在運(yùn)行0x20006C88時(shí)進(jìn)入了異常,當(dāng)然這個(gè)地方不一定是原始問題所在點(diǎn),異常可能是跑了很久才出現(xiàn)的。

所以先在這里打個(gè)斷點(diǎn)試試

可以看到是pbuf.c的代碼中,所以可以懷疑是內(nèi)存池或者堆的問題。

我們運(yùn)行發(fā)現(xiàn)斷點(diǎn)并不能觸發(fā),之前就已經(jīng)異常了,所以只能跟代碼逐漸縮小范圍確認(rèn)問題的。一般采用的方式是,逐步斷點(diǎn)或者打印或者刪除代碼,逐步縮小范圍的方法。

可以借鑒一些二分的思想,加快定位。

這里還是從pbuf開始,先找到相關(guān)代碼上層函數(shù)處,斷點(diǎn)

b pbuf_init_alloced_pbuf

看到異常前是可以停下來的

看到此時(shí)p的值是0x28201406

查看如下匯編代碼可知

sw zero,0(a0)即對應(yīng)代碼p->next = NULL;

sw是word操作指令,但是地址a0不是word對齊,所以會產(chǎn)生異常

再si單步確實(shí)進(jìn)入異常

所以問題確認(rèn)了。

因?yàn)槎咽欠峙涞囊粔K區(qū)域,每一塊區(qū)域的開始地址對齊值就是上面設(shè)置的對齊大小,分配區(qū)塊后作為其他模塊使用,比如pbuf使用,前面部分作為管理結(jié)構(gòu)體

struct pbuf 操作,所以實(shí)際是將一個(gè)區(qū)塊地址強(qiáng)制轉(zhuǎn)為了結(jié)構(gòu)體指針。

此時(shí)訪問結(jié)構(gòu)體成員,編譯器是自動按照自然對齊生成匯編指令的,因?yàn)榫幾g器并不知道你的對齊要求,所以如果系統(tǒng)不支持對應(yīng)的指令非對其訪問就有問題,但是有些系統(tǒng)對應(yīng)的匯編指令的行為支持不對齊訪問那么就沒有問題。

當(dāng)然出于可靠性設(shè)計(jì),建議不要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,比如MISRA標(biāo)準(zhǔn)里的規(guī)范就是如此。

如果代碼要做到兼容性可靠性非常好就要注意這個(gè)問題,此時(shí)不能使用強(qiáng)制類型轉(zhuǎn)換,而是使用字節(jié)序手動拼接得到成員的值。

但是出于靈活性考慮,很多協(xié)議棧的設(shè)計(jì)都是直接使用強(qiáng)制類型轉(zhuǎn)換的,所以這時(shí)用戶就需要注意,比如這里我們可以配置#define MEM_ALIGNMENT 4U

來保證上述分配出來的地址p是4字節(jié)對齊的,所以按照偏移,其成員也是4字節(jié)對齊的,sw指令操作的就是4字節(jié)對齊的成員,就不會有問題。

三.總結(jié)

以上分享一個(gè)簡單的案例,目的是提醒下要注意類似問題,尤其有指針強(qiáng)制類型轉(zhuǎn)換的要注意對齊問題。問題不難,也不復(fù)雜,但是可以作為check list的case可以作為檢查項(xiàng)目。

相關(guān)稿件

基于DWC_ether_qos的以太網(wǎng)驅(qū)動開發(fā)-LWIP的堆(內(nèi)存池)未對齊導(dǎo)致問題的案例分享

宗茂林(宗茂)

云杰:黃金1920多接1929空驗(yàn)證,后市將看跌1904

您好?我被偷拍私密視頻后被人傳播了?我有他偷拍的聊天記錄?但

2023美網(wǎng):中國新銳正當(dāng)時(shí)

廣東廣州:幼蛇頻頻出沒 小貓“大戰(zhàn)”眼鏡蛇

從“跳水大爺” 到安全志愿者

安徽豆粉云信息科技有限公司_關(guān)于安徽豆粉云信息科技有限公司介紹

高盛策略師:美國經(jīng)濟(jì)衰退可能性正在上升

華為智慧屏V5 Pro即將上市:98英寸巨幕影院

賠835.4萬 巴奴火鍋為子品牌超島涉事羊肉買單

《幽靈行者2》初代超過250萬份 發(fā)行商宣布

周杰倫天津演唱會發(fā)生意外?經(jīng)紀(jì)公司凌晨回應(yīng)

周末天氣多變,防雨水突襲?

通報(bào):山西一人搶救無效死亡!

公告精選:商品代雞苗售價(jià)大漲 民和股份8月銷售收入環(huán)比增加41%

滴滴出行虧損1.4億元 單量持續(xù)增加

中國8月狂賣192萬輛汽車創(chuàng)同期史高 自主品牌破100萬

張寶成是誰 張寶成

長春到沈陽高鐵幾小時(shí)

長春到沈陽高鐵啥時(shí)候開通的

馬蒂諾:如果梅西能出戰(zhàn)玻利維亞,我認(rèn)為他不會提前回到俱樂部

外媒:日本二季度GDP下修為年率增4.8%

信科移動:9月7日公司高管李秉成增持公司股份合計(jì)5800股

智力英文單詞怎么寫(智力英文)

一次開藥1800片?江西通報(bào)三起超量開藥類違規(guī)案例

華商記者幫|長安天然氣公司要求商戶整改安裝電磁閥 商戶們覺得其下屬子公司的“一口價(jià)”報(bào)價(jià)有些貴

茶坊鎮(zhèn)東紅村扶貧互助資金協(xié)會(關(guān)于茶坊鎮(zhèn)東紅村扶貧互助資金協(xié)會簡述)

一高校食堂檔口因不漲價(jià)被罰?校方:中止外包

若你成風(fēng)(關(guān)于若你成風(fēng)簡述)


久久久精品2019中文字幕神马_欧美亚洲一区三区_欧美大人香蕉在线_精品88久久久久88久久久_中文字幕一区二区三区在线播放 _精品国产一区二区三区久久影院_欧洲av在线精品_粉嫩av一区二区三区_亚洲欧美一区二区三区极速播放_国产亚洲精品久久
日本在线不卡一区| 蜜桃久久久久久| 国产精品美女久久久久久久久久久 | 欧美日韩国产乱码电影| 精品午夜久久福利影院| 五月婷婷激情综合网| 亚洲激情自拍视频| 国产欧美视频一区二区| 2022国产精品视频| 精品国精品国产| 精品美女被调教视频大全网站| 欧美日本在线观看| 天天色天天操综合| 欧美大片在线观看一区| 欧美成人一区二区三区| 黄网站免费久久| 蜜臀av一级做a爰片久久| 欧美一级片在线观看| 日韩一级免费观看| 欧美人xxxx| 麻豆高清免费国产一区| 国产网站一区二区| 国产精品视频一二三区| 色综合久久88色综合天天6| 一本一道久久a久久精品| 一区二区三区精品| 午夜精品久久久久久久久| 欧美日韩成人综合天天影院| 精品制服美女久久| 亚洲美女屁股眼交| 天堂资源在线中文精品| 亚洲黄色小视频| 日韩免费看网站| 一本久久a久久免费精品不卡| 久久国产精品99精品国产| av一区二区久久| 日韩一区二区影院| 色呦呦日韩精品| 国产精品一区专区| 在线观看视频一区二区欧美日韩| 884aa四虎影成人精品一区| 欧美精品一区二区三区高清aⅴ| 粉嫩在线一区二区三区视频| 欧美日韩一区二区不卡| 久久精品网站免费观看| 欧美日韩一区二区在线观看| 成人久久视频在线观看| 正在播放一区二区| 色综合天天性综合| 久久久久国色av免费看影院| 一区二区视频在线| 久久久亚洲精华液精华液精华液| 欧美亚洲动漫另类| 国产精品久线在线观看| 蜜臀va亚洲va欧美va天堂| 亚洲视频网在线直播| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 美女网站在线免费欧美精品| 亚洲成av人片在www色猫咪| 国产传媒久久文化传媒| 奇米888四色在线精品| 欧美三片在线视频观看| 在线观看av一区| 欧美体内she精高潮| 在线观看日韩高清av| 在线免费精品视频| 7777精品伊人久久久大香线蕉经典版下载| 欧美性videosxxxxx| 欧美美女一区二区| 亚洲国产cao| 日本韩国精品在线| 国产精品看片你懂得| 日本一区二区三区在线观看| 17c精品麻豆一区二区免费| 91丨porny丨国产入口| 成人免费在线观看入口| 综合婷婷亚洲小说| 亚洲国产乱码最新视频| 美女一区二区视频| 韩国女主播一区二区三区| www.在线成人| 91精品国产高清一区二区三区 | 日韩电影一区二区三区四区| 激情小说亚洲一区| 成人不卡免费av| 日本一区二区三区久久久久久久久不 | 亚洲特黄一级片| 天天综合天天做天天综合| 国产尤物一区二区在线| 精品毛片乱码1区2区3区| 国产亚洲综合在线| 亚洲一区视频在线| 欧美精品一区二区三区久久久| 国产色婷婷亚洲99精品小说| 亚洲国产精品天堂| 成人a免费在线看| 日韩一卡二卡三卡四卡| 亚洲欧美日韩系列| 国产成人精品在线看| 日韩三级伦理片妻子的秘密按摩| 亚洲欧美激情小说另类| 成人avav影音| 国产日产欧美一区二区视频| 毛片av中文字幕一区二区| 欧美色图天堂网| 亚洲欧美日韩在线不卡| 99九九99九九九视频精品| 精品制服美女丁香| 欧美日韩在线播放三区四区| 久久亚洲一区二区三区四区| 久久av老司机精品网站导航| 日韩欧美国产综合一区| 免费观看久久久4p| 日韩亚洲欧美成人一区| 麻豆国产欧美一区二区三区| 91精品在线麻豆| 蜜桃av噜噜一区| 亚洲精品一区二区在线观看| 国产精品 欧美精品| 欧美国产精品中文字幕| 国产视频一区在线观看| 国产激情偷乱视频一区二区三区| 久久亚洲精精品中文字幕早川悠里| 国内一区二区在线| 国产精品狼人久久影院观看方式| 成人免费av资源| 亚洲国产日韩一级| 欧美精品高清视频| 精品亚洲成a人| 国产精品久久久久久久久动漫| av激情亚洲男人天堂| 亚洲成人黄色小说| 欧美一卡2卡三卡4卡5免费| 国产综合一区二区| 一区二区三区资源| 欧美一区二区三区免费大片| 国产最新精品精品你懂的| 综合中文字幕亚洲| 91精品国产麻豆国产自产在线| 国产尤物一区二区| 亚洲精品国久久99热| 精品少妇一区二区三区在线播放 | 国产日产精品一区| 欧美午夜精品一区二区蜜桃| 精品一区二区在线看| 自拍偷拍亚洲综合| 精品国产髙清在线看国产毛片| 国产精品自拍三区| 婷婷亚洲久悠悠色悠在线播放| 久久中文字幕电影| 欧美亚洲国产一区二区三区va| 国产福利91精品一区| 日本在线观看不卡视频| 最近日韩中文字幕| 久久久99精品免费观看不卡| 欧美日韩精品二区第二页| 不卡的av在线| 国产伦精品一区二区三区视频青涩 | 色欧美88888久久久久久影院| 精品亚洲国内自在自线福利| 亚洲尤物视频在线| 亚洲欧洲日韩在线| 欧美国产国产综合| 久久精品免视看| 亚洲精品一区二区三区在线观看| 欧美三级乱人伦电影| 色天天综合色天天久久| av亚洲产国偷v产偷v自拍| 国产**成人网毛片九色 | 中文字幕不卡在线观看| 久久精品免视看| 久久久美女艺术照精彩视频福利播放| 91精品一区二区三区在线观看| 欧美中文字幕一区二区三区 | 美女精品一区二区| 蜜桃久久精品一区二区| 久久精品久久综合| 国产一区二区在线观看视频| 久久99精品网久久| 国产精品综合二区| 国产成人激情av| 91麻豆成人久久精品二区三区| 色诱视频网站一区| 3atv在线一区二区三区| 欧美成人综合网站| 国产精品天美传媒| 亚洲精品亚洲人成人网| 亚洲精品亚洲人成人网| 五月综合激情婷婷六月色窝| 久久精品国产99| 菠萝蜜视频在线观看一区| 91色porny| 91精品国产麻豆国产自产在线| 欧美变态tickle挠乳网站| 国产午夜精品美女毛片视频| 亚洲精品国产一区二区精华液| 喷水一区二区三区| 94-欧美-setu| 26uuu精品一区二区三区四区在线| 国产精品天干天干在观线|