⑴ 單片機 編譯好的代碼太大 燒寫不進去 怎麼辦
程序的大小和生成的hex大小沒關系。而是看你的code區佔用了多少,你的單片機有多大的code區,另外內存通常是運行中存儲數據的。比8k的flash大的單片機太多了。
code代碼區data片內xdata片外
⑵ 51單片機燒錄程序時提示程序末地址超過存儲容量怎麼解決小弟剛學單片機,求幫助,感激不盡。
你這種情況要分兩種,一種就是總程序已經大於4KB大小。這個只能換用更大存儲空間的片子。如果不是的話,就是第二種可能,你編程的時候地址空間沒有被充分利用,這個就是發生在你的一些跳轉,判斷語句上,這個你要檢查你的程序語句,是不是調的空間過大,以至於到最後程序計數器指針PC到了最後一個空間,你的程序還沒有執行完。要讓程序緊湊,不要在編程時空下太大空間,這樣存儲器空間利用率會很低的。
⑶ 單片機》在不影響功能的前提下,如何最大限度地減少程序所佔空間
不用C寫,改用匯編,如果是匯編寫的就按下面方法:
1,把重復的程序段寫成子程序供調用
2,改變演算法,
3,精簡表格數據
4,多用散轉演算法,少用直判跳轉
5,.....
最後: 換一個容量大點的單片機.