首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]niosii中flash读写问题

[求助]niosii中flash读写问题

niosii中flash programmer成功后,用函数

alt_flash_fd* fd;

fd = alt_flash_open_dev("/dev/ext_flash");

返回的fd始终为0,就不能用alt_write_flash();alt_read_flash();函数对flash进行读写了!

请问各位大侠是什么原因,能否帮忙解决一下!非常感谢!

fd = alt_flash_open_dev("/dev/ext_flash");

返回的fd返回为0,表示没有找到flash硬件,你能够下程序到flash中硬件连接应该没有问题,多半是设置问题

[此贴子已经被作者于2008-1-20 15:07:40编辑过]

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm
谢谢版主!请问是哪方面的设置问题?nios2中的设置问题,还是quartus中的设置问题呀?

我觉得应该是nios中的设置问题。因为能够下载下去程序,说明硬件的连接应该是对的。

你使用的是hal sdk的软件,建议你再看看nios中的software中的说明,比如头文件或其他设置,看看怎么通过hal中的api来读写flash。

这里有一个flash的测试程序,也是基于hal sdk的,希望对你有用。

#include <stdio.h>
#include <sys/alt_flash.h>
#include "system.h"
#include <unistd.h>
#define DATA_OFFSET 0x300000

int main(void)
{
alt_flash_fd* flash_handle;
FILE *uart;
char write_data = 0;
char read_data = 0;
write_data = 100;
uart = fopen(UART_NAME,"w");
flash_handle = alt_flash_open_dev(CFI_FLASH_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);
}
}

[此贴子已经被作者于2008-1-24 13:11:57编辑过]

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm
返回列表