精彩BUG人生 2 不對齊的精彩

2021-05-24 01:30:44 字數 613 閱讀 1508

說到對齊,不少學習c語言的同學自然會想到資料結構中成員的對齊,比如,常有面試題目是會問:

struct {

char a;

short b;

int c;

占用幾個位元組?這個不恰當的例子確實是和對齊有些相關,但有幾個人遇到不對齊的麻煩了呢?

昨天發現乙個奇怪的現象:點燈測試**正常,加入了乙個函式塊就不正常了,**塊如下:

uint8_t pid = 0;

uint8_t tid = 0;

void foo1(void)

***;

void foo2(void)

yyy;

通過嘗試,注釋掉 foo1()就正常,反之就不正常,不知緣由!

無奈之下,就又拿起來openocd+jtag,發現cpu出現了 hard fault 異常,原因是 unaligned 發生,最後查得原因是:當啟動**在做 拷貝資料段資料時,指令發現資料未對齊,發生了cpu異常,注釋掉的**,正好造成資料段資料對齊了,所以有那個怪現象。

以後知道了,要靠按照塊來注釋**時,資料也要注釋掉,因為它也有可能造成錯誤。

這是一塊 cortex-m3的板子,以後接觸新cpu最好把它與其他cpu差異弄弄清楚,再開始。

人生這樣才精彩

人生這樣才精彩 收藏 1.至少挑戰一次自己的極限,並且堅持到成功。不管是考試得第一名,或者游泳游過不曾穿越的河流,或者在講台上當眾演講,你至少要成為一次主角,至少要讓成功證明你一次,這樣,在漫長而平淡的一生之中,你都始終相信自己是最棒的,自己有權在這個世界好好生活。阿甘正傳 裡只知道往前跑的阿甘和 ...

我人生中bug

如果不是因為2014年那場病,我估計現在都不會談戀愛。2014年應該是我人生中挺重要的乙個轉折的點。2014年3月份我們學校進行了高考前的體檢,在體檢前我的身體一直不好,不知道是什麼情況,因為準備高考了,全部的心思都放在學習上,其他不管。在體檢前幾天我的心裡總有一種不好的預感,會發生一點什麼事來著。...

生活無處不bug

人生很難沒有bug問題,所以就得學會debug。我就舉我遇到過的幾個例子吧。1 廁所反味bug 把師傅們都找來了,結果沒有找到根本原因,絕望。後通過上網查詢,尋找可能點,終於通過排除法找到問題的根本在於馬桶的後面有乙個小孔,堵住了就沒有味道了。2 暖氣不熱bug 採用常用方法找問題根本,比如放氣,結...