TI中文支持网
TI专业的中文技术问题搜集分享网站

F28027F,官方instaspin_foc里面lab05b中HAL_setupPie功能疑问

进行代码调试的时候,发现一个问题。官方instaspin_foc的lab05b中,初始化时,HAL_setupPie中的PIE_setDefaultIntVectorTable。VectorTable是从INT1开始初始化的。但是按我的理解,这里不是FlashCallbackVar吗?那FlashCallbackVar就指定了回调,而且回调的是PIE_illegalIsr,这样在进行Flash_API操作的时候不会有问题吗?能否帮忙解答一下。多谢。

Susan Yang:

PIE_setDefaultIntVectorTable表条目在启动时初始化为PIE_illegalIsr。因此,请确保为所有已启用的中断附加自己的处理程序。

另外需要在调用FlashAPI例程之前禁用中断,或确保将ISR定位/加载到RAM中。

,

user5032391:

查看一些C2000的例程,通常PIE VectorTable中的Reset、INT1和INT2是不会做初始化指向的,是从INT3开始指向。

我今天做了一些测试。当我给INT1、INT2指向如下PIE_RESERVED之后(与instaspin_foc中的PIE_illegalIsr相同),进行Flash擦除会导致CPU reset。当我让INT1和INT2指向NULL之后,没有了回调,才能正常执行Flash擦除动作。所以我的问题是instaspin_foc里面初始化pie_vector_table的时候为什么给INT1、INT2指定到PIE_illegalIsr,会不会导致Flash擦除出问题。

,

user5032391:

所以意思是这里做了INT1、INT2的初始化,并且指向了PIE_illegalIsr。后面真正使用Flash_API的回调的时候,需要重新指向自己的回调?否则就会跑到PIE_illegalIsr里面。那不是很麻烦,为什么干脆不做INT1、INT2的初始化,需要使用Flash_API回调的时候再由开发者自行添加,不需要回调的时候一直保持NULL就行了。这样只是进行Flash擦写也不会误回调到PIE_illegalIsr。

,

Susan Yang:

在您给出的代码中的注释中是有说明的

//// Do not write over first 3 32-bit locations (these locations are// initialized by Boot ROM with boot variables)//

,

user5032391:

你们提供的例程里面是初始化了的。

赞(0)
未经允许不得转载:TI中文支持网 » F28027F,官方instaspin_foc里面lab05b中HAL_setupPie功能疑问
分享到: 更多 (0)