打印
[ZLG-ARM]

【求助】2132在ucos中通过命令写Flash程序死了,怎么解决?

[复制链接]
1982|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
worldsing|  楼主 | 2009-11-3 16:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在ucos中打算将数据存在Flash中,但是一但运行命令整个程序就死掉了,复位起不来,重新上电也不行,得重新用JTAG下载完后才能起来,但是一但命令又死掉了,程序是调用是周公书上写的API,程序如如下:

//----------------------ucos任务-------------------------------------------------
//
//--------------------------------------------------------------------------------
void task(void *pdata)
{
        OS_ENTER_CRITICAL();       //关中断
        R_save = VICIntEnable;
        VICIntEnClr = 0xffffffff;
        save_to_flash(cp, data_work, data_ref, &save_bit);       //实现保存到Flash中接口
        VICIntEnable = R_save;
        OS_EXIT_CRITICAL();        //关中断
        ...........................
        ...........................
}

//----------------------实现保存到Flash中-----------------------------------------
//                     调用周立功例4.63 API演示实验程序
//
//--------------------------------------------------------------------------------
int save_to_flash(uint8 *p, uint8 *data_work, uint8 *data_ref, uint8 * save_bit)
{
        IAP_Entry = (void(*)())IAP_ENTER_ADR;
        SelSector(7, 7);                                                                                // 选择扇区
        print("SelSector 7\n");
        EraseSector(7, 7);                                                                             // 擦除扇区
        print("EraseSector\n");
        SelSector(7,  7);                                                                                // 选择扇区
        print("SelSector\n");
        flash_err = RamToFlash(0x00007000,  (unsigned int)data_work, 256);    // 写数据到扇区
        print("RamToFlash\n");
        if(flash_err)
              printu("error");
       ...........................
       ...........................
}

不知道怎么解决?希望能得到周公等的解答,谢谢
在把例4.63 API演示实验程序下载到EasyARM2131上是没有问题的,会不会是ARM出界了呢?才5个TASK啊128字节 * 5不应该啊?

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

346

帖子

0

粉丝