簡體   English   中英

如何獲取特定源文件行的指令adr-GCC 4.71-Arm Cortex-M4

[英]How to get instruction adr for particular source file line - gcc 4.71 - Arm Cortex-M4

我正在使用gcc 4.71工具鏈來為STM32F4(ARM Cortex-M4)微控制器編譯我的c程序。 在我的程序被編譯並鏈接后(我有.elf文件),我想為每個源代碼行提取第一條指令的地址。 目前,我正在嘗試通過解析反匯編文件來執行此操作-例如,在下面的示例中,main.c中的第41行得到adr 0x8000c44。

還有其他更便捷的方法,如何使用某些gcc工具獲取此信息嗎?

樣本反匯編文件:

c:\\ a_test2 / main.c:41

8000c44:b580 push {r7,lr}

我用來編譯和鏈接的命令行:

c:\\ Yagarto471 \\ bin \\ arm-none-eabi-gcc.exe -c -mcpu = cortex-m4 -mthumb -ffunction-sections -fdata-sections -Wall -Wextra -Wno-unused-parameter -Wno-unknown-pragmas -Wno未使用的變量-Wno未使用但可設置的變量-std = gnu89 -g -ggdb3 -fverbose-asm -Wa,-ahlms = app.lst -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DUSE_STM32F4_DISCOVERY -DUSE_USB_OTSE_VALUE MD -MP -MF app.d -I。 -Iinc-保存溫度-c main.c -o main.o

c:\\ Yagarto471 \\ bin \\ arm-none-eabi-g ++ -mcpu = cortex-m4 -mthumb -Tstm32f4xx.ld -g -Wl,-Map = Map.map,-cref,-no-warn-mismatch- Wl,-gc-sections -nostartfiles startup \\ startup_stm32f4xx.o startup \\ stm32f4_discovery.o startup \\ system_stm32f4xx.o startup \\ stm32f4xx_rcc.o startup \\ stm32f4xx_gpio.o startup \\ stm32f4xx_timoo startup \\ misc。 \\ syscalls.o main.o sys.o intr.o vars.o debug.o lib.o -o stm32f4_temp.elf

gdb是執行所需操作的好工具。

arm-none-eabi-gdb -batch -ex'file stm32f4_temp.elf'-ex'disassemble main'

您將獲得每個指令的地址信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM