我用例程程序移植到我的工程中后,在程序上电时候能够成功编程特定的扇区,在程序的其他地方也能成功,可是就是在串口接收完毕后,调用例程里面的代码就死在擦除函数里面了,如下代码:
IAP_Entry = (void(*)())IAP_ENTER_ADR; /* 初始化函数指针IAP_Entry */
__disable_irq(); /* 在IAP操作前必须关闭所有中断 */
parIdRead(); /* 读器件ID */
codeIdBoot(); /* 读Boot版本号 */
sectorPrepare(15,15); /* 准备扇区1 */
sectorErase(15,15); /* 擦除扇区1 */
BEEPON();
for (i=0; i<0x3FFFFF; i++);
BEEPOFF();
blankChk(10,10) ; /* 查空扇区1 */
sectorPrepare(10,10); /* 选择扇区1 */
ramCopy(0x00001000*10, (uint32_t)iap_flash_data, 4096); /* 写数据到扇区1 */
ucErr = dataCompare(0x00001000*10, (uint32_t)iap_flash_data, 4096); /* 比较数据 */
应该是在擦除后听到蜂鸣器的声音,可是没有,为什么啊,找不出原因来了,其他情况下调用本函数可以成功呢?郁闷中,请各位高手指点迷津啊。。。
谢谢。
|