主题中讨论的其他器件:HALCOGEN
尝试 使用 EMIF 写入/读取 NOR 闪存 S29GL128P、但只能读取0xFFFF 而不是写入的实际数据、以下是我的步骤
- Halcogen 设置
- 使能 EMIF 接口、但 由于冲突而禁用了引脚 EMIF_NOE、EMIF_nDQM[0]和 EMIF_RNW
- 已选择 ASYNC1、已选择 NOR 闪存
- 将时序字段保留为默认值
- 将以下行添加到链接器文件 HL_sys_link.c 中
/*用户代码开始(3)*/
EMIF_1 (RX):origin=0x60000000 length=0x00000100
/*用户代码结束*/ - 这是主代码
int main (空)
{
/*用户代码开始(3)*/_enable_IRQ_interrupt_();
_mpuInit_();
_mpuEnable_();
EMIF_ASYNC1Init ();uint16_t * base_addr =(uint16_t *) 0x60000000;
uint16_t data1 = 0x1234;
uint16_t READ_BACK_DATA = 1947;
*((uint16_t *) base_addr + 0x555)= 0x00AA;/*写入解锁周期1 */
*((uint16_t *) base_addr + 0x2AA)= 0x0055;/*写入解锁周期2 */
*((uint16_t *) base_addr + 0x555)= 0x00A0;/*写入程序设置命令*/
*((uint16_t *) 0x60000000)= data1;/*写入要编程的数据*/
__delay_cycles (150000);
READ_BACK_DATA =*((uint16_t *) 0x60000000);/*用户代码结束*/
返回0;
}
Question:
- 是否有遗漏的代码/HALCOGEN 设置需要添加?
- 根据 NOR 闪存 S29GL128P 的产品说明书、应在写入程序数据后执行轮询算法。 该轮询算法涉及对 DQ 引脚的监控。 但在 HL_EMIF.c、HL_emif.h 或 HL_reg_EMIF.h 中找不到 DQ 引脚 在用户空间中从何处访问这些 DQ 引脚?
提前感谢!
