TI中文支持网
TI专业的中文技术问题搜集分享网站

AM3352的GPMC外接一个8位并口设备,linux下驱动操作映射内存的时候出现“Segmentation fault”

现基于am3352的linux3.2SDK,GPMC外接了一个8位并口设备,GPMC配置如下:

gpmc_cs_write_reg(cs,GPMC_CS_CONFIG1, 0x0);

gpmc_cs_configure(cs, GPMC_CONFIG_DEV_TYPE, GPMC_DEVICETYPE_NOR);
val = gpmc_cs_read_reg(cs,GPMC_CS_CONFIG1);

val |= GPMC_CONFIG1_READTYPE_SYNC;
val |= GPMC_CONFIG1_WRITETYPE_SYNC;
gpmc_cs_write_reg(cs, GPMC_CS_CONFIG1, val);
gpmc_cs_set_timings(cs, &uc_timing);
gpmc_cs_request(cs, SZ_16M, &mem_base_phys);

if (!request_mem_region(mem_base_phys,SZ_16M, "UC")) {
ret = -EBUSY;
goto ERR;
}

mmio = ioremap((mem_base_phys,SZ_16M);

offset = 0x800;
__raw_writeb(0XE2,mmio+offset); –> 此处出现Segmentation fault

那位大侠帮忙看看,GPMC操作漏了那些步骤??按道理ioremap后的内存是可以读写的,不知道为什么出现了Segmentation fault

yongqing wang:

这个好像是内存越位了

user6051027:

回复 yongqing wang:

这个内存地址是通过gpmc_cs_request获取,然后ioremap得到的,按理不应该出现段错误。

user6051027:

回复 yongqing wang:

这个跟我上面的操作步骤差不多,检查过步骤没有遗漏点,但不知道为什么这个地址会非法。

yongqing wang:

回复 user6051027:

把获取的地址打印出来看看是啥

user6051027:

回复 yongqing wang:

现在segment fault的问题解决了,但用示波器看不到GPMC引脚有数据输出,检查的引脚复用没有问题,不知道哪里出问题了,GPMC的nandflash是正常的。

赞(0)
未经允许不得转载:TI中文支持网 » AM3352的GPMC外接一个8位并口设备,linux下驱动操作映射内存的时候出现“Segmentation fault”
分享到: 更多 (0)