日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单片机的程序有多大?

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机的程序有多大? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前一直很奇怪一個問題,每次寫好單片機程序之后,用燒錄軟件進行燒錄時,能看到燒錄文件也就是hex的文件大小:

我用的單片機芯片是STM32F103C8T6,程序儲存器(flash)只有64K。

從上圖可以看出,hex有128K。

我有兩點疑問,

1. 只是一個很簡單的平衡小車程序而已,有128K,這么大嗎?

2. 就算有128K,能下載到只有64K容量的單片機中去?

這可能是一道送命題!

下面開始我們的探索之旅,以STM32開發為例。

在keil中進行程序編譯之后,在界面部分:

很多朋友估計看到這界面,也只關心2個點:

第一、自己編寫的程序是否正確生成了hex!

第二、自己編寫的程序有沒有錯誤,有沒有警告!


在圖中紅線部分:

有4個:Code、RO-data、RW-data、ZI-data。
Code:表示所要執行的代碼,程序中所有的函數都位于此處。
RO-data:表示只讀數據,程序中所定義的全局常量數據和字符串都位于此處。
RW-data:表示已初始化的讀寫數據,程序中定義并且初始化的全局變量和靜態變量位于此處。
ZI-data:表示未初始化的讀寫數據,程序中定義了但沒有初始化的全局變量和靜態變量位于此處。


從描述中可以得出:

1. 下載到單片機FLASH的程序是:Code+RO-data+RW-data(上圖中數據為字節數,kb=byte/1024);

hex=(39546+5862+12428)/1024=56.48

2. 運行在RAM中的數據是:RW-data+ZI-data;

原來window下顯示的hex大小,并非是我們下載到單片機中的hex大小。

關于為什么顯示不同,這又是一個十分有趣的問題,有興趣的朋友可以一起探討下。

最后,貌似C8T6這個芯片的資源差不多被榨干了,要考慮換芯片了。

-END-

猜你喜歡

誰更了解你,是女朋友嗎。不,是這些推薦算法。

為什么我們應該支持華為

晶振,數字電路的心臟~

?最 后??

?

若覺得文章不錯,轉發分享,也是我們繼續更新的動力。

5T資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、單片機、等等

在公眾號內回復「更多資源」,即可免費獲取,期待你的關注~

長按識別圖中二維碼關注

總結

以上是生活随笔為你收集整理的单片机的程序有多大?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。