打印
[FPGA]

nios II 开发CFI型FLASH

[复制链接]
1614|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
巴布豆尔|  楼主 | 2013-8-27 19:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5月份买了黑金4代开发板,跟着做了些教程,感觉很好。前一段时间,自己做了个板子,但是在调试中,遇见了一些问题,请这里的高手们能给予赐教!!!
      我自己做的板子,FPGA用的是EP3C5E144C8N,软件用的是 Quartus II 11.0sp1 (32-bit)和Nios II 11.0sp1 Software Build Tools for Eclipse。

     关于FLASH的操作,我参考的是黑金的教程。
     部分程序代码如下:
     alt_flash_fd* fd;
     fd = alt_flash_open_dev("/dev/flash");      //我的工程里,在system.h中,flash 的name就是"/dev/flash"
     UART_TX(fd);                                              //UART_TX是个8位的串口发送函数,参考的是特权的。这个函数已经验证过了,是没有问题的。
     
     结果发现,串口发出来的值是0,也就是说,FLASH没有被打开。我这块的硬件电路也是参考的黑金,好像也没有什么特殊的,也选择了8位模式,其他引脚都和FPGA连接,除了几个空脚和电源啊,其实就是抄袭黑金的。

    再次把程序整到黑金的开发板上,UART_TX(fd);以后,是个非零的值,但是,好像有一定的随机性,但至少不为零,我就认为flash打开了(对FLASH没有后续操作了)。但是,这样也存在问题,那就是并不是每次运行程序,flash都能被打开,成功的概率50%。

    然后,我将程序进行了修改:
     alt_flash_fd* fd;
     fd = alt_flash_open_dev("/dev/flash");
     while(fd==0)
     {
       fd = alt_flash_open_dev("/dev/flash");
       UART_TX(fd);
     }

     用串口助手来检测,要么,串口助手的接收区什么都没有(应该是flash被打开了),要么,串口助手的接收区一直在刷00,(flash一直都打不开);

    最后,我得出了这个结论,flash如果不能被打开,那么必须重新运行整个程序,这样或许才可以打开FLASH。

    这里面,我的问题有2个:
    (1)为什么在我的板子上,flash一次都打不开,而在黑金开发板上,至少还能打开。(再次说明,硬件电路几乎是一样的)
    (2)即便是在黑金开发板上运行,怎么才能100%打开FLASH设备。

相关帖子

沙发
巴布豆尔|  楼主 | 2013-8-27 20:01 | 只看该作者
这个问题还在困扰着我呢。特别说明一下,这个问题还在困扰着我呢

使用特权

评论回复
板凳
zrjbw| | 2013-9-4 00:07 | 只看该作者
你好,请问一下,您的这个问题解决了吗?我今天调试时候不成功,写入0-99,读的值总是255,发现FLASH开启也是50%的概率。

使用特权

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

本版积分规则

3

主题

13

帖子

0

粉丝