在线时间0 小时
UID264279
ST金币0
蝴蝶豆0
注册时间2011-2-23
新手上路
- 最后登录
- 1970-1-1
|
发表于 2011-2-23 12:15:58
|
显示全部楼层
a0a.1 0b0c
回复:NVIC
回复第 1 楼 jijune于2010-12-28 01:46:34发表:
在库函数中NVIC部分中有一个函数为:NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset)中定义输入参数Offset:向量表基地址的偏移量,如果该参数设定为FLASH时,该参数值必须高于0x08000100;如果该参数设定为RAM则必须高于0x100。而且它同时必须是256的整数倍。而后下面接着给出了一个例子:
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
不明白的地方是1:明明文字描述中说offset值必须得高于0x08000100,而在这里却设的是0x0,难道说0x0要比0x08000100高吗?这个“高”是怎么理解的呀?
2:在例程中有一个SysTick中有一段对NVIC的设定如下
程序(一)
void NVIC_Configuration(void)
{
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif
}
可否帮我解释一下VECT_TAB_RAN是什么意思?它即设定了FLASH的向量表的位置和偏移,又设定了ARM的,这里到底是要做什么?
还有程序关于NVIC的设定为
程序(二)
void NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_IbutStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel=EXIT2_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannePreemptionPruirity=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
NVIC_InitStructure.NVIC_IRQChannelCmd=NABLE;
NVIC_Init(&NVIC_InitStructure);
}
想问的是:什么时候将设为NVIC设为程序(一)的形式,什么时候又将其设为程序(二)的形式。
thank you!我是一只小菜鸟,不要嘲笑我哈哈
+问 |
|