共2条
1/1 1 跳转至页
UCOS 请教移植UCOS,异常向量表的问题!

问
LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
DCD 0xb9205f80
LDR PC, [PC, #-0xff0]
LDR PC, FIQ_Addr
ResetAddr DCD ResetInit
UndefinedAddr DCD Undefined
SWI_Addr DCD SoftwareInterrupt
PrefetchAddr DCD PrefetchAbort
DataAbortAddr DCD DataAbort
Nouse DCD 0
IRQ_Addr DCD 0
FIQ_Addr DCD FIQ_Handler
"至于在保留的异常向量位置填数据0xb9205f80"是为了使向量表中所有的数据32位累加和为0."
不知道这里所指的"数据32位"指的是哪些数据?
答 1: re LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
DCD 0xb9205f80
LDR PC, [PC, #-0xff0]
LDR PC, FIQ_Addr
这8个语句对应的机器码的累加和为0(每个语句的机器码都为32位)
答 2: 多谢指教! 答 3: 关于异常向量在保留的异常向量位置填数据0xb9205f80是为了使向量表中多有的数据32位累加和位0。这个向量在ARM文件中标识为保留,该位置被boot装载程序用作有效的用户程序关键字。当向量表中所有的数据累加和为0,且ISP外部硬件条件不满足时,boot装载程序将执行用户程序。 答 4: 为什么要其垒加和为0呢?为什么要其垒加和为0呢?
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
DCD 0xb9205f80
LDR PC, [PC, #-0xff0]
LDR PC, FIQ_Addr
ResetAddr DCD ResetInit
UndefinedAddr DCD Undefined
SWI_Addr DCD SoftwareInterrupt
PrefetchAddr DCD PrefetchAbort
DataAbortAddr DCD DataAbort
Nouse DCD 0
IRQ_Addr DCD 0
FIQ_Addr DCD FIQ_Handler
"至于在保留的异常向量位置填数据0xb9205f80"是为了使向量表中所有的数据32位累加和为0."
不知道这里所指的"数据32位"指的是哪些数据?
答 1: re LDR PC, ResetAddr
LDR PC, UndefinedAddr
LDR PC, SWI_Addr
LDR PC, PrefetchAddr
LDR PC, DataAbortAddr
DCD 0xb9205f80
LDR PC, [PC, #-0xff0]
LDR PC, FIQ_Addr
这8个语句对应的机器码的累加和为0(每个语句的机器码都为32位)
答 2: 多谢指教! 答 3: 关于异常向量在保留的异常向量位置填数据0xb9205f80是为了使向量表中多有的数据32位累加和位0。这个向量在ARM文件中标识为保留,该位置被boot装载程序用作有效的用户程序关键字。当向量表中所有的数据累加和为0,且ISP外部硬件条件不满足时,boot装载程序将执行用户程序。 答 4: 为什么要其垒加和为0呢?为什么要其垒加和为0呢?
共2条
1/1 1 跳转至页