我們在設計調試程序時,往往需要知道一個函數或一個變量它在MCU中具體所在的地址以及所占用的空間大小,這時候就需要查看map文件。
那么什么是map文件呢?map文件是編譯器編譯工程后生成的一個文件,文件會有很多信息,比如函數地址及所占空間大小、變量地址及所占用空間大小、棧頂指針、整個工程所占用的flash和RAM空間大小等等。在進行代碼分析時,map文件是非常重要的。下面小編就來教大家如何查看GD32 Keil和IAR工程的map文件。
一、Keil工程:
Keil工程中打開map文件非常簡單,將工程正常編譯后,雙擊工程名即可打開map文件:

二、IAR工程: IAR工程一般默認是不生成map文件的,我們需要進行一些設置。
1、首先打開工程option選項:

然后在Linker——List中勾選Generate Linker map file

點擊OK后,將文件進行重新編譯,就可以在output文件夾下看到map文件了哦。

關鍵字:GD32 Keil IAR工程 map文件
引用地址:
如何查看GD32 Keil和IAR工程的map文件
推薦閱讀最新更新時間:2025-03-26 07:29
【STM32H7教程】第6章 STM32H7工程模板建立(IAR8)
6.1 初學者重要提示 IAR的工程創建過程還是比較重要的,務必實際上手操作一遍。 6.2 第1步,創建工程文件夾 創建一個文件夾,里面包含如下文件(直接將跑馬燈例子的Project文件里面內容全部刪除,然后整個工程復制進來即可)。 Doc文件夾 用于記錄例程的修改記錄和例子簡介。 Libraries文件夾 在第一章詳細介紹從官網的下載方法。 Project文件夾 這個是本章的重點,在這個文件夾里面再建立兩個文件夾,EWARMv8文件夾用于存放IAR工程,MDK-ARM(uV5)文件夾里面用于存放MDK工程,方便以后創建MDK的工程。 User文件夾 這個是要用戶提供的,開發板已經都提供
[單片機]
GD32如何替換STM32?
GD32F103是GD早期的產品,GD32E103和GD32F303是對GD32F103的升級和優化,所以4者是兼容的,雖然內核不同,但是通用外設幾乎很少涉及到內核部分,在時間急迫的情況下可以使用ST的庫開發。 一、相同點 1)外圍引腳PIN TO PIN兼容,每個引腳上的復用功能也完全相同。 2)芯片內部寄存器、外部IP寄存器地址和邏輯地址完全相同,但是有些寄存器默認值不同,有些外設模塊的設計時序上和STM32有差異,這點差異主要體現在軟件上修改,詳情見下文。 3)編譯工具:完全相同例如:KEIL 、IAR 4)型號命名方式完全相同,所以替代只需找尾綴相同的型號即可,例如:STM32F103C8T6 與 GD32E103C
[單片機]
使用keil3編程測試程序運行時間
時間是跟晶振頻率有關,默認的晶振頻率是24MHz;此處的晶振頻率一定要與開發板的晶振頻率保持一致。 注意:修改后一定要重新進行編譯后,再進行測試 1、設置晶振頻率的位置: 2、 在24MHz的晶振頻率下,程序運行到斷點的時間是0.045s 3、我們將晶振頻率改為12MHz后,再全速執行到斷點處,時間為24MHz的2倍了。
[單片機]
如何使用keil 5 編寫 51單片機 工程
目前我們通常編寫51程序使用的是keil4,而好多編寫STM32等單片機程序的使用keil5。那么如何在keil5中兼容51和STM32程序編寫,省去切換版本的繁瑣呢? 很簡單只需兩步就可以完成。 下面這個方法針對已破解keil5的stm32等一系列。這個肯定是最常見的,因為破解keil5然后編寫32工程的教程一大把。 1、首先下載編寫51的相關東西。 可以在官網上下載,例如百度keil官網。 點擊右上角的DOWNLOADS進入相關的下載界面,下載你需要的安裝包。MDK5、c51、c166等,這里只需要下載c51的。 當然也可以在下面這個百度網盤鏈接里下載: 51相關: 鏈接:http://pan.baid
[單片機]
STM32 KEIL MDK 本地時間和Unix timestamp相互轉換
//時間測試,將unix timestamp 和本地時間進行轉換 //0x5a603bfe 北京時間 2018/1/18 14:17:34 /* 下面打印是的格林威治標準時間 年:118 月:0 日:18 時:6 分:17 秒:34 格林威治標準時間比北京時間晚8個小時 */ void time_test(void) { //將unix timestamp 轉為本地時間 struct tm *gm_date; time_t seconds=0x5a603bfe;//unix timestamp gm_date = localtime(&seconds); printf( 年:%d rn ,gm_date-
[單片機]
Keil C51 的printf
在Keil C51 中使用printf ,首先需要重新實現 putchar(char c)函數。此函數在 char putchar (char c) { ES=0; SBUF = c; while(TI==0); TI=0; ES=1; return 0; } 我們先分析一下上面這個程序哈, 關閉串口中斷 發送單字節數據 等待發送完畢 清除TI標志 開啟串口中斷 在main函數里可以直接使用printf函數進行輸出了。 但是,我一直存在這樣一個疑惑: void main() { unsigned char test1 = 55; printf( the
[單片機]
Keil C51使用教程---代碼效率(七)
C51程序編譯生成匯編代碼的效率,是由許多因素共同決定的,對于Keil C51,主要受以下兩種因素影響: 第一節 存儲模式的影響 存儲模式決定了缺省變量的存儲空間,而訪問各空間變量的匯編代碼的繁簡程度決定了代碼率的高低。 例如:一個整形變量i,如放于內存18H、19H空間,則++i的操作編譯成四條語句: INC 0x19 MOV A,0x19 JNZ 0x272D INC 0x18 0x272D: 而如果放于外存空間0000H、0001H則++i的操作編譯成九條語句: MOV DPTR,0001 MOVX A,@ DPTR INC A MOVX @ DPTR,A JNz #5 MOV OPTR,#0000 MOVX A
[單片機]
Keil C51軟件使用詳解
第一節 Keil C51編譯器的控制指令 C51編譯器的控制指令分為三類:源文件控制類,目標文件控制類及列表控制類。 1. 源文件控制類 NOEXTEND:C51源文件不允許使用ANSI C擴展功能。 DEFINE(DF):定義預處理(在C51命令行)。 2. 目標文件(Object)控制類: COMPACT LARGE SMALL 選編譯模式 DEBUG(DB) 包含調試信息,以供仿真器或dSCope51使用。 NOAMAKE(NOAM) 禁止AutoMake信息記錄 NOREGPARMS 禁止用寄存器傳遞參數 OBJECTEXTEND(OE) Object文件包含附加變量類型信息 OPTIMIZE(OT) 指
[單片機]