最近需要在之前使用的f4系统上(移植了ucos)存点临时信息,感觉很简单,没啥问题。结果尝试了两天愣是没有写成功,后来为了测试flash函数,单独建个工程测试flash(没有移植 ucos)没有问题,读写都正常。但是相同的函数移植到我原来使用的工程(ucos)里就写失败。后来发现在原来的工程里 如果在 创建任务之前 写flash都正常,一旦创建了任务 或者调用了OSTimeDlyHMSM(0, 0, 1, 100 );系统延时函数,再写flash就失败。怀疑是写flash被打断于是在写flash时加了临界代码,结果还是不行。通过断点调试发现在进入flash写函数时会自动进入系统的延时函数中。
OS_ENTER_CRITICAL();
STMFLASH_Write(INST_infor_adress, INST_infor, 2);
OS_EXIT_CRITICAL(); |