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