iam当前使用NIOS II和Quartus II v12.0
由于NiosII使用C语言,它将被允许打开文件,但命令fopen("filename","readmode");不可使用,因为它不在Nios的stdio.h上,所以我的疑问是,如何在Nios中打开文件?我需要使用一个新图书馆吗?我必须将我的代码块stdio.h更改为我的Nios代码块吗?
谢谢你。
我刚刚看了一眼Nios II软件开发人员手册,发现它使用了Newlib C库,而开发人员手册引用了fopen(),所以我只能假设你不正确。Newlib是开源的,所以你可以自己调查。
即便如此,Newlib库在任何情况下都不会实现文件系统——stdio不是文件系统;相反,它为任何流I/O设备提供了一个标准接口。文件系统本身通常由操作系统或第三方库提供。
即使您有一个文件系统,在任何情况下,您仍然必须通过Newlib系统调用存根在它和stdio之间提供底层接口。
NiosII只定义处理器体系结构,任何文件系统硬件都是完全专有的,因此在任何情况下都不可能提供开箱即用的文件系统支持——它必须适应您的硬件。
您打算在哪种设备上创建文件系统?您可以使用第三方库,如EFSL或ELM-FatFs。您可以单独使用它们,也可以通过实现适当的系统调用将它们集成到stdio中。
我使用了DE2-115 DVD中的演示项目,并获得了FAT库,现在我可以打开文件了。