Linker & Overlap

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Linker & Overlap

2,690件の閲覧回数
SeanW
Contributor II
I am have CodeWarrior MPC55xx version 2.2, build 71004.
 
I have some warnings which I believe is being caused by the way I set up my interrupt vector table.
 
#pragma section const_type ".isrvectbl"
 
const uint32_t IntcIsrVectorTable[] = {
 /* Interrupt Table */   (uint32_t)&dummy, (uint32_t)&emios_ch0_ISR , /* Rest of ISRs continue on here...
 /* for all 309 ISRs */  
};
 
You can see that all un-used interrupt vectors have a dummy function associated with them. I then compile and get the following:
 
1)
" No liner command file input for section '.isrvectbl' in file '<PATH\IntcIsrVectors.o'
  Output section '.isrvectbl' will be created."
 
2)
"Overlap of the .__bam_botarea section and .isrvectbl section."
"Overlap of the .init section and .isrvectbl section."
"Overlap of the .init_vle section and .isrvectbl section."
 
What am I doin wrong?
 
ラベル(1)
タグ(1)
0 件の賞賛
返信
3 返答(返信)

1,197件の閲覧回数
SeanW
Contributor II
Thank you.  I don't understand how this linker file works. Would you be more specific?
 
I know that there can be 280 ISR vectors for the MPC5567. How do I allocate the memory for these vectors?
 
Generated Linker File:
 
SECTIONS
{
    .__bam_bootarea LOAD (0x00000000): {} > resetvector
 
/* would I instert here .__IsrVectorTable () */
 
    GROUP : {
      .init LOAD (0x00000020) : {}
      .init_vle (VLECODE) LOAD (_e_init) : {
        *(.init)
        *(.init_vle)
      }
    } > init
   
0 件の賞賛
返信

1,197件の閲覧回数
CrasyCat
Specialist III
Hello
 
Assume you have a block of memory defined as follows in your .lcf  MEMORY block
   exception_table: org = 0x00001000,   len = 0x00001000
and you want to allocate your vector table there.
You need to write
 
SECTIONS
{
    .__bam_bootarea LOAD (0x00000000): {} > resetvector
   .isrvectbl   LOAD (0x00001000): {} > exception_table
 
    GROUP : {
      .init LOAD (0x00000020) : {}
      .init_vle (VLECODE) LOAD (_e_init) : {
        *(.init)
        *(.init_vle)
      }
    } > init
  
CrasyCat
0 件の賞賛
返信

1,197件の閲覧回数
CrasyCat
Specialist III
Hello
 
You need to explicitly place the section .isrvectbl in your application linker command file.
This section should be specified in the SECTIONS block.
 
CrasyCat
0 件の賞賛
返信