為什么基于Cortex-M3/M4的STM32芯片組織的用戶代碼移植到基于Cortex-M0/M0+的STM32芯片時為何可能會發生非對齊錯誤?
這是因為基于Cortex-M3/M4的STM32芯片對數據訪問的對齊要求不那么嚴格,即使非對齊訪問也可以支持,當然可能會犧牲訪問效率。而對于Cortex-M0/M0+的芯片則明確不支持對數據的非對齊訪問。顯然,我們設計代碼時盡量遵循對齊訪問便于移植。
因為內核的差異導致我們在應用上的誤解或誤用,這也是常有的事情。我這里剛好就最近某STM32用戶咨詢的問題稍作整理,順便做個簡單分享。
下面是部分Cortex-M內核的NVIC特性差異對照表,有興趣的話可以看看。
該表格是我從The Definitive guide to ARM Cortex-M0 and ARM Cortex-M0+
Processors文檔里提取而來,分享給大家算是借花獻佛。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
芯片
+關注
關注
456文章
50886瀏覽量
424185 -
mcu
+關注
關注
146文章
17171瀏覽量
351439 -
STM32
+關注
關注
2270文章
10904瀏覽量
356342 -
Cortex
+關注
關注
2文章
202瀏覽量
46513
發布評論請先 登錄
相關推薦
STM32F407 ADC結果無法右對齊怎么辦?
從例程里面復制的main到自己建立的模板里面就出現了這樣的問題,這個“ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;”已經設為右對齊,可是串口出來的數據還是0xXXX0,四個四位數(最右始終為0),明顯是左
發表于 09-10 09:34
將STM32F103的程序移植到STM32F107VC上,用不了該怎么辦
做畢業設計,小白一枚,把DW1000測距的代碼從STM32F103上移植到STM32F107VC上,改了啟動文件和宏定義,也改了時鐘,程序可
發表于 01-08 09:37
uboot移植遇到壞塊該怎么辦?
nand flash 應該也沒什么問題才對, 而且視頻教程上也是燒寫到 nand flash上的。 猜想:是因為 nand flash 壞塊的原因嗎?2、如果 uboot.bin 大于4K ,還能繼續燒寫到 nor flash上嗎?如果不能,應該怎么辦? 期待你們的解答,謝謝!輸出的
發表于 09-29 10:10
將代碼移植到nucleoSTM32F072RBT6上出現錯誤
之前在使用nucleo STM32F091RCT6進行項目實驗時,代碼編譯鏈接無報錯。最近需要將代碼移植到nucleo
發表于 12-23 06:18
sx1278驅動移植時報錯怎么辦?如何解決
sx1278驅動移植時報錯怎么辦?如何解決?為什么會同時調用stm32f10x.h和stm32f103xe.h這兩個頭文件呢?
發表于 02-21 07:23
求助,請問RISC-V系列MCU不支持非對齊訪問嗎?
的hardfault,即非對齊load address錯誤。網上搜了一下,好像說RISC-V還是像CORTEX-M系列那樣,能訪問,只是速度一樣會很慢。但是現在直接hardfault了。不允許
發表于 06-20 06:37
STM32 進入Stop模式后電流還是很大怎么辦?
STM32 進入Stop模式后電流還是很大怎么辦?STM32 進入停止模式后電流還是很大,可能椒幾百個uA,怎么辦?通常做法有如下幾點:MCU外圍管腳配置檢查外圍有無閉合回路SWDIO
發表于 12-08 20:51
?16次下載
STM32的Flash寫了保護怎么辦?STM32如何設置讀保護和解除讀保護?
STM32的Flash寫了保護怎么辦?STM32如何設置讀保護和解除讀保護? 一、STM32的Flash寫了保護怎么辦? 當
工控主板發生故障該怎么辦?
工控主板發生故障該怎么辦?前幾天有個客戶問了我這個問題,大部分情況下出現的故障并不可怕,主要是用戶粗心大意造成的。那今天小編就來講解一下工控主板一般會出現故障的主要原因及判斷方法:
評論