|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
再请教大家一个powerpc异常向量表的问题,我用的是E300核,开发板是mpc8313,自己写bootloader(参考uboot),首先要设置中断向量表,E300比较奇怪,没有象E500内核使用IVPR和IVORn寄存器保存中断向量。每个中断向量的入口地址是IVPR+IVORn。IVPR提供中断向量的基址,IVORn提供中断向量的偏移。在linux底下用下面这个宏: #define SET_IVOR(vector_number, vector_label) \ li r26,vector_label@l; \ mtspr SPRN_IVOR##vector_number,r26; \ sync 但是在uboot底下。 #define START_GOT \ .section ".got2","aw"; \ .LCTOC1 = .+32768 #define END_GOT \ .text #define GET_GOT \ bl 1f ; \ .text 2 ; \ 0: .long .LCTOC1-1f ; \ .text ; \ 1: mflr r14 ; \ lwz r0,0b-1b(r14) ; \ add r14,r0,r14 ; #define GOT_ENTRY(NAME) .L_ ## NAME = . - .LCTOC1 ; .long NAME #define GOT(NAME) .L_ ## NAME (r14) GOT_ENTRY(_start_of_vectors) GOT_ENTRY(_end_of_vectors) 用got段Global Offset Table,全局向量表来保存,异常函数入口地址,我想问下,这个got全局向量表原理是什么?是怎么保存函数入口地址的?~ |
|