工具/软件:TI-RTOS
尊敬的所有人:
我们将 AM3352 + SYS/BIOS RTOS 用于工业导航产品。 软件环境:SYS/BIOS ISDK v1.1.0.4,SYS/BIOS 内核 v6.35.04.50。
GPMC 都与 FPGA 和 NAND 闪存通信。
FPGA 选择 16位非多路复用 同步 NOR 模式(支持单次读取、单次写入、突发读取)、并使用 GPMC_CS2、GPMC_WAIT1引脚。
NAND 闪存选择8位 NAND 模式、并使用 GPMC_CS0、GPMC_WAIT0引脚。
GPMC 需要从 FPGA 读取大量数据、平均值约为500Mbps。 FPGA 与 GPMC 通信具有实时要求。 FPGA 以1ms 的间隔生成到 AM3352的 GPIO 中断、GPMC 必须响应 FPGA 并从 FPGA 读取数据。
我们使用 Micro MT29F1G08ABADAH4-IT NAND 闪存、并且需要使用 SYS/BIOS NAND 闪存驱动程序。 我通过 StarterWare nandReadWrite.c 示例实现 SYS/BIOS NAND 闪存驱动程序参考。 NAND 闪存驱动器在没有 FPGA 通信的情况下的基本功能正常。 现在、当 GPMC 都与 FPGA 通信时、我需要调试 NAND 闪存驱动程序的功能。
我大致阅读了 AM335x TRM、NAND 闪存数据表,StarterWare NAND 闪存库和 GPMC 驱动程序源代码、有一些疑问和问题需要 TI 专家的帮助。
1.读取、写入和擦除 NAND 闪存是否会影响 GPMC 与 FPGA 进行通信的实时性?
由于 NAND 闪存和 FPGA 都占用 GPMC 总线、NAND 闪存将长时间处于繁忙状态(读取:25us、写入:200-600us、擦除:700-3000us)。我担心、当 GPMC 与 NAND 闪存通信时、FPGA 访问 GPMC 的实时时间将不会满足。
2、NAND 闪存和 FPGA 的访问将占用 GPMC 总线和引脚资源、当 NAND 闪存和 FPGA 与 GPMC 通信时、如何独占访问这些资源? GPMC 硬件是否具有互斥功能? 或者需要软件做些什么?
3、对于最高级别、FPGA 访问任务的优先级为15;NAND 闪存访问任务的优先级低于 FPGA 访问任务的优先级。 在向 NAND 闪存发送命令、地址、数据的过程中、是否需要原子操作? 当 FPGA 访问中断 GPMC 向 NAND 闪存发送命令、地址、数据的过程时、我不确定 NAND 闪存访问是否有问题。
非常感谢。 最好的愿望!