Linker & Overlap

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Linker & Overlap

2,728 次查看
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,235 次查看
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,235 次查看
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,235 次查看
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 项奖励
回复