為什么基于Cortex-M3/M4的STM32芯片組織的用戶代碼移植到基于Cortex-M0/M0+的STM32芯片時(shí)為何可能會(huì)發(fā)生非對齊錯(cuò)誤?
這是因?yàn)榛贑ortex-M3/M4的STM32芯片對數(shù)據(jù)訪問的對齊要求不那么嚴(yán)格,即使非對齊訪問也可以支持,當(dāng)然可能會(huì)犧牲訪問效率。而對于Cortex-M0/M0+的芯片則明確不支持對數(shù)據(jù)的非對齊訪問。顯然,我們設(shè)計(jì)代碼時(shí)盡量遵循對齊訪問便于移植。
因?yàn)閮?nèi)核的差異導(dǎo)致我們在應(yīng)用上的誤解或誤用,這也是常有的事情。我這里剛好就最近某STM32用戶咨詢的問題稍作整理,順便做個(gè)簡單分享。
下面是部分Cortex-M內(nèi)核的NVIC特性差異對照表,有興趣的話可以看看。
該表格是我從The Definitive guide to ARM Cortex-M0 and ARM Cortex-M0+
Processors文檔里提取而來,分享給大家算是借花獻(xiàn)佛。
-
芯片
+關(guān)注
關(guān)注
459文章
52160瀏覽量
436061 -
mcu
+關(guān)注
關(guān)注
146文章
17831瀏覽量
360307 -
STM32
+關(guān)注
關(guān)注
2289文章
11011瀏覽量
362333 -
Cortex
+關(guān)注
關(guān)注
2文章
203瀏覽量
47140
發(fā)布評論請先 登錄
STM32F407 ADC結(jié)果無法右對齊怎么辦?
將STM32F103的程序移植到STM32F107VC上,用不了該怎么辦
uboot移植遇到壞塊該怎么辦?
將代碼移植到nucleoSTM32F072RBT6上出現(xiàn)錯(cuò)誤
sx1278驅(qū)動(dòng)移植時(shí)報(bào)錯(cuò)怎么辦?如何解決
求助,請問RISC-V系列MCU不支持非對齊訪問嗎?
STM32 進(jìn)入Stop模式后電流還是很大怎么辦?

stm32h743外部RAM非字節(jié)對齊訪問,引起的hard fault

STM32-不同芯片的移植

評論