This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
I'm developing for a powerpc target and am writing a interrupt handler in my
c file with inline assembly. I'm placing the code in a section called
"vect" which is put in a particular place memory.
Sits alone at the end of my main C file:
__asm__ ("
.global _isr
.section .vect
_isr:
[ISR handler]
");
Lnk file:
vect : org = 0xFFF00500, len = 255
For some reason when I disassemble either the C file's object or my main.elf
file with the "-D" (disassemble-all) with objdump the section doesn't show
up. And GDB doesn't place the instructions at that address either.
I can however use:
objdump --section=.vect -s main.elf
It then shows that my handler is in section .vect at the correct address.
Any idea why it doesn't show up with -D?
If I write a C function defined as:
extern void C_Isr(void) __attribute__((section(".vect")));
Then -D does disassemble section .vect and the code is placed in the correct
location via GDB. Of course I also get the unwanted instructions that are
associated with a C function prior to my isr code.
Any thoughts are greatly appreciated,
Dan
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |