怎么做免流網站seo的優(yōu)點和缺點
一,啟動流程
????????1. 復位/上電
????????2. 根據 BOOT0/BOOT1 確定程序從哪個存儲位置執(zhí)行
????????????????
????????3. 初始化 SP 及 PC 指針
????????????????將 0X08000000 位置的棧頂地址存放在 SP 指針中
????????????????將 0x08000004 位置存放的向量地址裝入 PC 程序計數器
????????4. 初始化系統(tǒng)時鐘
????????5. 初始化用戶堆棧
????????6. 進入main函數
二,map文件
????????map 文件是 MDK 編譯代碼后,產生的集程序、數據及IO空間的一種映射列表文件。簡單來說就是包括了:各種 .c 文件、函數、符號等的地址、大小、引用關系等信息。
?
????????作用: 用于分析各 .c 文件占用 FLASH 和 RAM 的大小,方便優(yōu)化代碼。
map 文件大致可以分為五大部分,每部分的作用如下:
1. 模塊、段(入口)交叉引用(Section Cross References):描述了各文件之間函數的調用關系,有助于理解各個源文件如何相互關聯。
2. 移除未使用的模塊(Removing Unused input sections from the image):描述了工程中未用到
而被刪除的冗余程序段,有助于優(yōu)化代碼,降低內存負擔。
3. 映射符號表(Image Symbol Table):描述了各符號(程序段、數據)在存儲器中的地址、類型、大小等信息,對于理解程序的內存布局以及定位特定代碼或數據段非常有用。
4. 內存(映射)分布(Memory Map of the image):描述了各程序段(函數)在存儲器中的地址及占用大小,有助于分析程序的內存占用情況。
5. 映射組件大小(Image component sizes):給出了整個映像代碼(.o)占用空間的匯總信息,包括代碼、只讀數據、已初始化讀寫數據、未初始化讀寫數據等的大小,有助于了解程序的總體內存使用情況。
MAP文件的這五部分提供了對程序內存布局、函數調用關系、以及各模塊占用情況的全面分析,是STM32開發(fā)中重要的優(yōu)化和調試工具。
map 文件相關的一些基本概念
段(section):描述映像文件的代碼和數據塊
RO:Read-Only的縮寫,包括RO-data(只讀數據)和RO-code(代碼)
RW:Read-Write的縮寫,主要是RW-data,RW-data由程序初始化初始值
ZI:Zero-initialized的縮寫,主要是ZI-data,由編譯器初始化為0。
.text:與RO-code同義
.constdata:與RO-data同義
.bss:與ZI-data同義
.data:與RW-data同義