RISC-V系列MCU不支持非對(duì)齊訪問(wèn)?
//?static?const?uint32_t?s_keys[32];
//?uint8_t?rseq[16];
f->key[4]?=?s_keys[((keyid?+?1)?&?0x0000001F)]?^?(*(uint32_t?*)&hdr->rseq[1]);

如上面代碼,rseq是16字節(jié)數(shù)據(jù)。運(yùn)行上面代碼的時(shí)候,直接就是mcause = 4的hardfault,即非對(duì)齊load address錯(cuò)誤。網(wǎng)上搜了一下,好像說(shuō)RISC-V還是像CORTEX-M系列那樣,能訪問(wèn),只是速度一樣會(huì)很慢。但是現(xiàn)在直接hardfault了。不允許非對(duì)齊訪問(wèn)不是ARM7年代的問(wèn)題了?現(xiàn)在移植代碼,有不少這些非對(duì)齊訪問(wèn)。非常麻煩。是不是編譯器參數(shù)修改一下就可以非對(duì)齊范圍?

您好,內(nèi)核不支持非對(duì)齊訪問(wèn),但編譯器會(huì)按照字節(jié)訪問(wèn)依次訪問(wèn)hdr->rseq[1],hdr->rseq[2],hdr->rseq[3],hdr->rseq[4]后組成一個(gè)字返回。附件為測(cè)試?yán)?,你可以看一下?/p>

icon_rar.gifCH32V307 Test.zip

image.png


image.png

image.png

這是我的程序編譯出來(lái)的匯編代碼,在0x632那行hardfault了。


您好,若方便,可將工程程序發(fā)過(guò)來(lái)看一下(lzs@wch.cn),這邊結(jié)合程序整體看一下


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频