Andes Workshop http://forum.andestech.com/ |
|
如何使vector table對齊16 bytes http://forum.andestech.com/viewtopic.php?f=25&t=676 |
Page 1 of 1 |
Author: | cindy [ Fri Feb 22, 2013 6:15 pm ] |
Post subject: | 如何使vector table對齊16 bytes |
vector table的size是可變的, 在ESZ裡設定,一般情況設在4 bytes就好, 可以省code size。 下面這個例子裡,每個vector佔16byte。 這個程式中,nop在compile過後變成2byte的nop,造成vector的位置錯誤。 Code: j _start ! (0) Trap Reset nop nop nop j OS_Trap_DebugException ! (1) Trap DebugException nop nop nop j OS_Trap_GeneralException ! (2) Trap GeneralException nop nop nop 這裡有2個建議, (1) 將vector的size改成4 bytes,不需要用nop填充空間。 也可以省code size。 (2) 如果真的要用16 byte的vector,可以用下列的語法。 Code: .align 4
exception_vector: .align 4 j _start ! (0) Trap Reset .align 4 j OS_Trap_DebugException ! (1) Trap DebugException .align 4 j OS_Trap_GeneralException ! (2) Trap GeneralException .align 4 |
Page 1 of 1 | All times are UTC + 8 hours [ DST ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |