查看: 3997|回复: 6

[已解决] 关于操作DT256的Flash引起意外中断的问题(已解决)

[复制链接]

该用户从未签到

4

主题

16

帖子

0

注册会员

Rank: 2

积分
53
最后登录
2019-11-24
发表于 2013-7-3 10:56:02 | 显示全部楼层 |阅读模式
 求助论坛的各位大侠,高手。我在操作DT256的Flash时,单片机总是复位。在擦除Flash的时候不会出现复位的情况,当将数据写入Flash以后,单片机就会复位,不知道是什么原因引起的,希望各位大侠能够指教一二!
下面是Flash操作的代码
 
INT8U  Flash_Cmd(INT8U page,INT16U logicAddress,INT16U* pDataPtr,INT16U dataCounter,INT8U command)
{
  OS_CPU_SR cpu_sr;
  volatile INT8U rgPage;
  INT8U err= FLASH_OK;
  
  OS_ENTER_CRITICAL();
  DCMFix();
  rgPage= PPAGE;//保存当前页寄存器值
  
  if (dataCounter)
  {
    INT16U* address=(INT16U*)logicAddress;
    
    //取得FLASH的第几块
    if(page==0) FCNFG=0;
    else        FCNFG = 0x0F-(page>>4);
  PPAGE = page;//取得页值
  FSTAT = 0x30;  //write a 1 to FACCERR and PVIOL to clear
 
    do
    {
      *address++= *pDataPtr++;//按字的写入操作
      FCMD = command;             //set command type.
      FSTAT= 0x80;//写入缓冲区
      
      if (FSTAT&0x30)    //如果写的过程中有错误,则恢复页寄存器值,并出错返回
      {   
          err= FLASH_OP_ERROR;
          goto RESTOR;
      }
      
      while(!FSTAT_CBEIF);//缓冲区空
    }while (--dataCounter);
  }
  
  while(!FSTAT_CCIF);//FLASH写入完成
 
RESTOR:  
  PPAGE = rgPage;//恢复页寄存器值
  OS_EXIT_CRITICAL();
  
  return err;

 
我知道答案 目前已有6人回答
回复

使用道具 举报

该用户从未签到

8

主题

299

帖子

0

高级会员

Rank: 4

积分
653
最后登录
2018-12-14
发表于 2013-7-3 11:07:09 | 显示全部楼层

回复:关于操作DT256的Flash引起意外中断的问题

在写flash前 把watchdog和中断disable下 看看会不会还复位
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

16

帖子

0

注册会员

Rank: 2

积分
53
最后登录
2019-11-24
 楼主| 发表于 2013-7-3 12:55:33 | 显示全部楼层

回复:关于操作DT256的Flash引起意外中断的问题

   楼上可能没注意,在写之前有一句OS_ENTER_CRITICAL();就是将所有中断都关闭的。
回复 支持 反对

使用道具 举报

该用户从未签到

8

主题

299

帖子

0

高级会员

Rank: 4

积分
653
最后登录
2018-12-14
发表于 2013-7-3 13:13:00 | 显示全部楼层

回复:关于操作DT256的Flash引起意外中断的问题

watchdog 也在这里关了吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

16

帖子

0

注册会员

Rank: 2

积分
53
最后登录
2019-11-24
 楼主| 发表于 2013-7-3 13:51:27 | 显示全部楼层

回复:关于操作DT256的Flash引起意外中断的问题

 watchdog在程序中没有使能!
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

16

帖子

0

注册会员

Rank: 2

积分
53
最后登录
2019-11-24
 楼主| 发表于 2013-7-4 13:58:09 | 显示全部楼层

回复:关于操作DT256的Flash引起意外中断的问题(正解)

 问题已经解决,谢谢各位的关心!
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
42
最后登录
2019-6-2
发表于 2019-5-6 09:33:43 | 显示全部楼层
lowry 发表于 2013-7-4 13:58
 问题已经解决,谢谢各位的关心!

这位大哥 问题怎么解决的分享下!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-6 22:58 , Processed in 0.098241 second(s), 27 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表