This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Interrupt vector table and bios.o

I'm trying to make sense of the mapfile produced by IAR.  Namely, it looks like the bios.o object sits in interrupt vector space?

<<<<<<<<<<<<<<<<

"A1": place at 0x00000000 { ro section .intvec };
"P1": place in [from 0x00000000 to 0x000fffff] { ro };
"P2": place in [from 0x20000000 to 0x2003ffff] { rw, block CSTACK, block HEAP };

Section Kind  Address    Size Object
------- ----  -------    ---- ------
"A1":                    0x3c
.intvec const 0x00000000 0x3c NextKEY_prm4f.orm4f [2]
            - 0x0000003c 0x3c

"P1":                    0x624ff

.text ro code 0x0000003c 0x4338 BIOS.o [16]

<<<<<<<<<<

I thought the 130 interrupt vectors on the TM4C129 occupied addresses 0x00000000 to 0x00000208? 

So... my question is:  Does the bios.o file somehow get dynamically built with the interrupt handler addresses from our application, or am I misunderstanding the mapping of interrupt vectors?

  • I think you will find that NextKEY_prm4f.orm4f (whatever that is from, I don't recognize it) does not contain a full interrupt table.


    This is from one of my mapfiles

    "A1": place at start of [0x00000000-0x0003ffff] { ro section .intvec };
    "P1": place in [from 0x00000000 to 0x0003ffff] { ro };
    "P2": place in [from 0x20000000 to 0x20007fff] { rw, block HEAP };

    Section Kind Address Size Object
    ------- ---- ------- ---- ------
    "A1": 0x2ac
    .intvec const 0x00000000 0x26c startup.o [1]
    .intvec ro code 0x0000026c 0x40 vector_table_M.o [7]
    - 0x000002ac 0x2ac

    "P1": 0x85f4

    Robert