1. 程式人生 > >嵌入式STM32F103工程中,ucGUI圖片顯示與記憶體衝突

嵌入式STM32F103工程中,ucGUI圖片顯示與記憶體衝突

環境:win7-64位、keil5、STM32F103VEC6、RTOS系統、ucGUI-V3.9、螢幕(320x240)

現象描述:

0.原工程記憶體佔用:Program Size: Code=37434 RO-data=127570 RW-data=312 ZI-data=19936  

此時程式執行顯示正常。

1.先給這個工程新增一張圖片P1(320x240),暫時未呼叫。

此時工程記憶體佔用:Program Size: Code=37434 RO-data=281190 RW-data=312 ZI-data=19936  

程式功能執行不正常,硬體上跑的速度變慢,部分動態資料不顯示;硬體模擬後可以看到該動態資料所在陣列狀態錯誤。

2.再給工程新增一張圖片P2(320x240),暫時未呼叫

此時工程記憶體佔用:Program Size: Code=37434 RO-data=434810 RW-data=312 ZI-data=19936  

程式功能執行正常,顯示正常,硬體執行速度也比較正常

3.呼叫圖片P2

此時工程記憶體佔用:Program Size: Code=37450 RO-data=434810 RW-data=312 ZI-data=19936  

程式功能執行正常,顯示P2時,P2圖片顯示不完全,還有不應該存在的線條固定顯示

附keil5配置:

簡單分析:

(我這邊在IAR上也有個類似的專案,上面執行就很正常)

應該是記憶體分配存在的問題,由於IAR上執行正常,就仔細查不同,後來果然發現是記憶體分配不對,我這邊實際使用103的晶片,可是我按照105晶片進行記憶體分配,這兩個存在很大的差異。103為增強型,105為互聯型。此處改正後就執行正常了。

103對應的快閃記憶體分配地址

105對應的快閃記憶體分配地址