进行代码调试的时候,发现一个问题。官方instaspin_foc的lab05b中,初始化时,HAL_setupPie中的PIE_setDefaultIntVectorTable。VectorTable是从INT1开始初始化的。但是按我的理解,这里不是FlashCallbackVar吗?那FlashCallbackVar就指定了回调,而且回调的是PIE_illegalIsr,这样在进行Flash_API操作的时候不会有问题吗?能否帮忙解答一下。多谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
进行代码调试的时候,发现一个问题。官方instaspin_foc的lab05b中,初始化时,HAL_setupPie中的PIE_setDefaultIntVectorTable。VectorTable是从INT1开始初始化的。但是按我的理解,这里不是FlashCallbackVar吗?那FlashCallbackVar就指定了回调,而且回调的是PIE_illegalIsr,这样在进行Flash_API操作的时候不会有问题吗?能否帮忙解答一下。多谢。
查看一些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擦除出问题。
在您给出的代码中的注释中是有说明的
//
// Do not write over first 3 32-bit locations (these locations are
// initialized by Boot ROM with boot variables)
//