This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Disassembly file with functions and their instructions only.

Is there a possibility to use *fromelf* or any other tool to generate a disassembly file from elf file but with function names and their instructions only?

Something similar to the following format:

myFunction
0x060058d8:       2201 ." MOVS r2,#1
0x060058da:       2801 .( CMP r0,#1
0x060058dc:       d100 .. BNE 0x60058e0 ; myFunction + 8
0x060058de:       2202 ." MOVS r2,#2
0x060058e0:       8808 .. LDRH r0,[r1,#0]

Parents
  • How does this differ markedly from what it does now?

        .text_6
        QUADSPI_Valid_WriteBuffer
            0x200001e8:    e92d4ff8    -..O    PUSH     {r3-r11,lr}
            0x200001ec:    4682        .F      MOV      r10,r0
            0x200001ee:    4689        .F      MOV      r9,r1
            0x200001f0:    0014        ..      MOVS     r4,r2
            0x200001f2:    f05f0b00    _...    MOVS     r11,#0
            0x200001f6:    2500        .%      MOVS     r5,#0
            0x200001f8:    2600        .&      MOVS     r6,#0
            0x200001fa:    2700        .'      MOVS     r7,#0
            0x200001fc:    f05f0800    _...    MOVS     r8,#0
            0x20000200:    2000        .       MOVS     r0,#0

    Most people would probably run a script against the output to reformat, trim or crop the content, perhaps in Perl or AWK?

    Heck, if you're a C programmer, it's the sort of thing you should be able to code pretty quickly.

    20000034        SUB16   QUADSPI_Valid_WriteEnable_PH:   ; Xref 200000DE 2000012A 20000166 200001CC
    20000034                                                ;      20000204 2000026C 200002C8 20000606
    20000034 B510                   push    {r4, lr}
    20000036 2000                   movs    r0, #0
    20000038 49FC                   ldr     r1, [pc, #1008] ; ($2000042C=$00000048)
    2000003A 4449                   add     r1, r9
    2000003C 6008                   str     r0, [r1, #0]
    2000003E 60C8                   str     r0, [r1, #12]
    20000040 6148                   str     r0, [r1, #20]
    20000042 6188                   str     r0, [r1, #24]
    20000044 F44F 5000              mov.w   r0, #8192       ; $2000
    20000048 6208                   str     r0, [r1, #32]
    2000004A 2000                   movs    r0, #0
    2000004C 6108                   str     r0, [r1, #16]
    2000004E 6248                   str     r0, [r1, #36]
    20000050 61C8                   str     r0, [r1, #28]
    20000052 F44F 7080              mov.w   r0, #256        ; $100
    20000056 6288                   str     r0, [r1, #40]
    20000058 2000                   movs    r0, #0
    2000005A F000 FD06              bl      QUADSPI_SetFIFOThreshold
    2000005E 2000                   movs    r0, #0
    20000060 F000 FD0D              bl      QUADSPI_SetDataLength
    20000064 2006                   movs    r0, #6
    20000066 49F1                   ldr     r1, [pc, #964]  ; ($2000042C=$00000048)
    20000068 4449                   add     r1, r9
    2000006A 62C8                   str     r0, [r1, #44]
    2000006C 4608                   mov     r0, r1
    2000006E F000 FC89              bl      QUADSPI_ComConfig_Init
    20000072 BF00                   nop
    20000074        LOC     loc_20000074:                   ; Xref 2000007C
    20000074 2020                   movs    r0, #32
    20000076 F000 FD77              bl      QUADSPI_GetFlagStatus
    2000007A 2801                   cmp     r0, #1
    2000007C D0FA                   beq.n   loc_20000074
    2000007E 2200                   movs    r2, #0
    20000080 2102                   movs    r1, #2
    20000082 4608                   mov     r0, r1
    20000084 F000 FCAE              bl      QUADSPI_AutoPollingMode_Config
    20000088 2001                   movs    r0, #1
    2000008A F000 FD14              bl      QUADSPI_AutoPollingModeStopCmd
    2000008E 2000                   movs    r0, #0
    20000090 F000 FCF5              bl      QUADSPI_SetDataLength
    20000094 F04F 6000              mov.w   r0, #134217728  ; $8000000
    20000098 49E4                   ldr     r1, [pc, #912]  ; ($2000042C=$00000048)
    2000009A 4449                   add     r1, r9
    2000009C 6008                   str     r0, [r1, #0]
    2000009E 2000                   movs    r0, #0
    200000A0 6248                   str     r0, [r1, #36]
    200000A2 F04F 7080              mov.w   r0, #16777216   ; $1000000
    200000A6 6108                   str     r0, [r1, #16]
    200000A8 2005                   movs    r0, #5
    200000AA 62C8                   str     r0, [r1, #44]
    200000AC 4608                   mov     r0, r1
    200000AE F000 FC69              bl      QUADSPI_ComConfig_Init
    200000B2 BF00                   nop
    200000B4        LOC     loc_200000B4:                   ; Xref 200000BC
    200000B4 2008                   movs    r0, #8
    200000B6 F000 FD57              bl      QUADSPI_GetFlagStatus
    200000BA 2800                   cmp     r0, #0
    200000BC D0FA                   beq.n   loc_200000B4
    200000BE 2008                   movs    r0, #8
    200000C0 F000 FD5C              bl      QUADSPI_ClearFlag
    200000C4 2002                   movs    r0, #2
    200000C6 F000 FD59              bl      QUADSPI_ClearFlag
    200000CA BF00                   nop
    200000CC        LOC     loc_200000CC:                   ; Xref 200000D4
    200000CC 2020                   movs    r0, #32
    200000CE F000 FD4B              bl      QUADSPI_GetFlagStatus
    200000D2 2801                   cmp     r0, #1
    200000D4 D0FA                   beq.n   loc_200000CC
    200000D6 BD10                   pop     {r4, pc}
    

Reply
  • How does this differ markedly from what it does now?

        .text_6
        QUADSPI_Valid_WriteBuffer
            0x200001e8:    e92d4ff8    -..O    PUSH     {r3-r11,lr}
            0x200001ec:    4682        .F      MOV      r10,r0
            0x200001ee:    4689        .F      MOV      r9,r1
            0x200001f0:    0014        ..      MOVS     r4,r2
            0x200001f2:    f05f0b00    _...    MOVS     r11,#0
            0x200001f6:    2500        .%      MOVS     r5,#0
            0x200001f8:    2600        .&      MOVS     r6,#0
            0x200001fa:    2700        .'      MOVS     r7,#0
            0x200001fc:    f05f0800    _...    MOVS     r8,#0
            0x20000200:    2000        .       MOVS     r0,#0

    Most people would probably run a script against the output to reformat, trim or crop the content, perhaps in Perl or AWK?

    Heck, if you're a C programmer, it's the sort of thing you should be able to code pretty quickly.

    20000034        SUB16   QUADSPI_Valid_WriteEnable_PH:   ; Xref 200000DE 2000012A 20000166 200001CC
    20000034                                                ;      20000204 2000026C 200002C8 20000606
    20000034 B510                   push    {r4, lr}
    20000036 2000                   movs    r0, #0
    20000038 49FC                   ldr     r1, [pc, #1008] ; ($2000042C=$00000048)
    2000003A 4449                   add     r1, r9
    2000003C 6008                   str     r0, [r1, #0]
    2000003E 60C8                   str     r0, [r1, #12]
    20000040 6148                   str     r0, [r1, #20]
    20000042 6188                   str     r0, [r1, #24]
    20000044 F44F 5000              mov.w   r0, #8192       ; $2000
    20000048 6208                   str     r0, [r1, #32]
    2000004A 2000                   movs    r0, #0
    2000004C 6108                   str     r0, [r1, #16]
    2000004E 6248                   str     r0, [r1, #36]
    20000050 61C8                   str     r0, [r1, #28]
    20000052 F44F 7080              mov.w   r0, #256        ; $100
    20000056 6288                   str     r0, [r1, #40]
    20000058 2000                   movs    r0, #0
    2000005A F000 FD06              bl      QUADSPI_SetFIFOThreshold
    2000005E 2000                   movs    r0, #0
    20000060 F000 FD0D              bl      QUADSPI_SetDataLength
    20000064 2006                   movs    r0, #6
    20000066 49F1                   ldr     r1, [pc, #964]  ; ($2000042C=$00000048)
    20000068 4449                   add     r1, r9
    2000006A 62C8                   str     r0, [r1, #44]
    2000006C 4608                   mov     r0, r1
    2000006E F000 FC89              bl      QUADSPI_ComConfig_Init
    20000072 BF00                   nop
    20000074        LOC     loc_20000074:                   ; Xref 2000007C
    20000074 2020                   movs    r0, #32
    20000076 F000 FD77              bl      QUADSPI_GetFlagStatus
    2000007A 2801                   cmp     r0, #1
    2000007C D0FA                   beq.n   loc_20000074
    2000007E 2200                   movs    r2, #0
    20000080 2102                   movs    r1, #2
    20000082 4608                   mov     r0, r1
    20000084 F000 FCAE              bl      QUADSPI_AutoPollingMode_Config
    20000088 2001                   movs    r0, #1
    2000008A F000 FD14              bl      QUADSPI_AutoPollingModeStopCmd
    2000008E 2000                   movs    r0, #0
    20000090 F000 FCF5              bl      QUADSPI_SetDataLength
    20000094 F04F 6000              mov.w   r0, #134217728  ; $8000000
    20000098 49E4                   ldr     r1, [pc, #912]  ; ($2000042C=$00000048)
    2000009A 4449                   add     r1, r9
    2000009C 6008                   str     r0, [r1, #0]
    2000009E 2000                   movs    r0, #0
    200000A0 6248                   str     r0, [r1, #36]
    200000A2 F04F 7080              mov.w   r0, #16777216   ; $1000000
    200000A6 6108                   str     r0, [r1, #16]
    200000A8 2005                   movs    r0, #5
    200000AA 62C8                   str     r0, [r1, #44]
    200000AC 4608                   mov     r0, r1
    200000AE F000 FC69              bl      QUADSPI_ComConfig_Init
    200000B2 BF00                   nop
    200000B4        LOC     loc_200000B4:                   ; Xref 200000BC
    200000B4 2008                   movs    r0, #8
    200000B6 F000 FD57              bl      QUADSPI_GetFlagStatus
    200000BA 2800                   cmp     r0, #0
    200000BC D0FA                   beq.n   loc_200000B4
    200000BE 2008                   movs    r0, #8
    200000C0 F000 FD5C              bl      QUADSPI_ClearFlag
    200000C4 2002                   movs    r0, #2
    200000C6 F000 FD59              bl      QUADSPI_ClearFlag
    200000CA BF00                   nop
    200000CC        LOC     loc_200000CC:                   ; Xref 200000D4
    200000CC 2020                   movs    r0, #32
    200000CE F000 FD4B              bl      QUADSPI_GetFlagStatus
    200000D2 2801                   cmp     r0, #1
    200000D4 D0FA                   beq.n   loc_200000CC
    200000D6 BD10                   pop     {r4, pc}
    

Children
No data