FPGA|CPLD|ASIC论坛
直播中

zuoshuai

7年用户 10经验值
擅长:679576
私信 关注
[问答]

调用alt_write_flash_block函数死机怎么办

本人在调试niosII 程序时用到alt_write_flash_block()对片上flash进行块写操作,代码如下,每写四次之后程序就死机了~~~想不出是什么原因造成的,求高手指导~~~

  1. void flash_write_NUM(void)

  2. {
  3.                alt_flash_fd * fd;
  4.                 flash_region * regions;
  5.                 int num_regions;
  6.                 alt_u32 i;
  7.                 alt_u8  flash_data_buff[3];
  8.                 fd=alt_flash_open_dev(ONCHIP_FLASH_DATA_NAME);
  9.                 if(fd!=NULL)
  10.                 {
  11.                         if(!alt_get_flash_info(fd, ®ions, &num_regions))
  12.                         {
  13.                                 i=0;
  14.                                  while(i<100)
  15.                                  {
  16.                                   alt_read_flash(fd, regions->offset+0x7800+3*i, &flash_data_buff, 3);
  17.                                   if((flash_data_buff[0]==0xFF)&&(flash_data_buff[1]==0xFF)&&(flash_data_buff[2]==0xFF)) break;
  18.                                   i++;
  19.                                   }
  20.                                  if(i==100)
  21.                                  {
  22.                                         flash_data_buff[LASERNUMPTRL]=(alt_u8)NUM;

  23.                                         flash_data_buff[LASERNUMPTRH]=(alt_u8)(NUM>>8);

  24.                                         flash_data_buff[LASERNUMPTRV]=(alt_u8)(NUM>>16);

  25.                                         alt_write_flash(fd, regions->offset+0x7800, &flash_data_buff, 3);
  26.                                   }
  27.                                  else
  28.                                  {
  29.                                          flash_data_buff[LASERNUMPTRL]=(alt_u8)NUM;
  30.                                          flash_data_buff[LASERNUMPTRH]=(alt_u8)(NUM>>8);
  31.                                          flash_data_buff[LASERNUMPTRV]=(alt_u8)(NUM>>16);


回帖(1)

zuoshuai

2020-6-29 18:50:48
                                 alt_write_flash_block(fd, regions->offset+0x7800,0x7800+3*i, &flash_data_buff, 3);   //此处死机
                                 }
                        }
                }
                alt_flash_close_dev(fd);
       }
剩余未显示代码。。。。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分