能回复,我发现个问题,
移植过程中:下面的代码;
*(portNVIC_SYSPRI2) |= portNVIC_PENDSV_PRI;
*(portNVIC_SYSPRI2) |= portNVIC_SYSTICK_PRI;
这几个变量是:
#define portNVIC_SYSPRI2 ( ( volatile uint32_t *) 0xe000ed20 )
#define portMIN_INTERRUPT_PRIORITY ( 255UL )
#define portNVIC_PENDSV_PRI ( portMIN_INTERRUPT_PRIORITY << 16UL )
#define portNVIC_SYSTICK_PRI ( portMIN_INTERRUPT_PRIORITY << 24UL )
这里的意思是将PendSV和SysTick的优先级设置为最小,
设置的方式为对应的位置(<<16和<<24)设置为全1;
思路没错,
但是:根据文档;(不知道怎么插入图片)
Nano100的TRM的122也的描述;
这个移位的位置,应该是bit22和bit30,而不应该是bit16和bit24;
所以这个源码的那个位置应该是错误的;
我指出的这个地方应该再检查一下;
|