Board logo

标题: 读写FLASH的问题 [打印本页]

作者: my_zjf_    时间: 2007-5-9 21:36     标题: 读写FLASH的问题

我在程序中读写flash,用debug模式可以正确读写flash,当把程序烧入到flash中,然后启动这段程序,运行结过就是读写flash出错,请问这是什么问题?

有谁遇到吗?

我的读写flash的代码如下:

#include <stdio.h>
#include <sys/alt_flash.h>
#include "system.h"

#define DATA_OFFSET 0x300000

void main(void)
{
  alt_flash_fd* flash_handle;
  FILE *uart;
 
  char write_data = 0;
  char read_data = 0;
 
  write_data = 100;
 
  uart = fopen(UART_0_NAME,"w"); 
  flash_handle = alt_flash_open_dev(CFI_FLASH_0_NAME);
      fprintf(uart, "open flash device...\n");
      usleep(10000); 
     
  if (flash_handle)
  {
    fprintf(uart, "open flash device successed!!!\n");
      usleep(10000);       
    alt_write_flash(flash_handle, DATA_OFFSET, &write_data, 1);
      fprintf(uart, "wirte_data = %d\n", write_data);
      usleep(10000);
    alt_read_flash(flash_handle, DATA_OFFSET, &read_data, 1);
      fprintf(uart, "read_data = %d\n", read_data);
      usleep(10000);
     
    if(read_data == write_data)
    {
      fprintf(uart, "flash write and read successed!!!\n");
      usleep(10000);
    }
    else
    {
      fprintf(uart, "flash write or read failed!!!\n");
      usleep(10000);
    } 
    alt_flash_close_dev(flash_handle);
      fprintf(uart, "close flash device...\n");
      usleep(10000);    
  }
  else
  {
    fprintf(uart, "open flash device failed!!!\n");
      usleep(10000); 
  } 
}

我想这个问题解决了,我读写文件系统的问题就会解决,帮忙分析下啊!


作者: my_zjf_    时间: 2007-5-10 14:04

难道没有人遇到吗?


作者: pennyllin    时间: 2007-5-13 20:18

顶一下,希望有高手来作答,我也同问!
作者: my_zjf_    时间: 2007-5-17 14:00

顶上去,为什么am29lv320/160是这样的,而别的不是这样的.
作者: oceanx    时间: 2007-5-17 15:20

程序在哪里运行的?RAM or FLASH

你的程序如果是在FLASH中运行,在烧写的时候,既要去读FLASH中的程序,又要去写FLASH,FLASH在擦除时是不能读的!

正确的做法应当是把烧写这部分程序拷贝到RAM里面运行。


作者: my_zjf_    时间: 2007-5-18 13:11

在sdram里运行






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0