HK32F030M是航順一款入門級(jí)經(jīng)濟(jì)型32位MCU,使用ARM? Cortex?-M0內(nèi)核,最高工作頻率32 MHz,內(nèi)置16 KByte Flash、448 Byte EEPROM和2 KByte SRAM。由于其超高的性價(jià)比,在工業(yè)、醫(yī)療、消費(fèi)電子等行業(yè)得到廣泛應(yīng)用。
HK32F030M使用過程中如果設(shè)計(jì)有軟件循環(huán)設(shè)計(jì)延時(shí),有可能會(huì)出現(xiàn)延時(shí)不準(zhǔn)確的現(xiàn)象。
原因是由于芯片設(shè)計(jì)時(shí),在存儲(chǔ)設(shè)備和MCU之間設(shè)計(jì)了4個(gè)word的高速buffer,存儲(chǔ)慢的數(shù)據(jù)先把數(shù)據(jù)存放到buffer。通過buffer可以減少進(jìn)程間通信需要等待的時(shí)間,在此期間MCU可以干其他的事情,但是當(dāng)循環(huán)指令小于4個(gè)word(最大8條指令)時(shí),有可能代碼存放于高速buffer,造成循環(huán)代碼的取指時(shí)間不固定。對(duì)于這種情況,請參考以下解決方案:
建議在DelayMs函數(shù)中,增加循環(huán)體中指令數(shù)量,讓代碼的取指不會(huì)命中高速buffer。
由于Nop的指令只有16bit,buffer是32位取指,所以為了一致性,建議加偶數(shù)個(gè) nop。
修改前
修改后
來源: 航順芯片
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
16885瀏覽量
349918 -
芯片設(shè)計(jì)
+關(guān)注
關(guān)注
15文章
993瀏覽量
54772 -
EEPROM
+關(guān)注
關(guān)注
9文章
1008瀏覽量
81334 -
航順芯片
+關(guān)注
關(guān)注
1文章
102瀏覽量
22769
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論