目前采用GPMC并行总线将FPGA与AM335X进行关联,kernel采用的是老牌的3.2版本,通过修改 board-xxxx.c里头进行GPIO配置。硬件方面采用的是16位数据线ad[15-0] 以及地址线 a[11-0],参考nand方式omap_init_gpmc进行设备初始化,然后就是编写驱动,硬件采用片选CS3,驱动中gpmc配置的设备类型是nor flash , 具体配置位:
GPMC_CONFIG1 0x00001200
GPMC_CONFIG2 0x00000B00
GPMC_CONFIG3 0x00000200
GPMC_CONFIG4 0x00000B03
GPMC_CONFIG5 0x010A000B
GPMC_CONFIG6 0x00000080
GPMC_CONFIG7 0x00000840
写入并且能正常的读取出Config ,但是写数据的时候却发现CS3以及OEN等pin脚没有任何波形输出。其实有一点不是很理解通过总线地址的方式去写入数据
目前怀疑的可能性有两个1: 我写入数据的函数有问题,暂时是直接通过写io_base方式写入的,未采用EDMA。写数据的方式函数为:
void __iomem* reg_addr;
reg_addr=gpmc->io_base+GPMC_CS0_OFFSET+(cs*GPMC_CS_SIZE)+idx;
writew(val,reg_addr);
其次就是配置问题。因此,请帮忙解惑。
yongqing wang:
参考一下这个帖子:www.xuebuyuan.com/2147979.html
JUN HU:
回复 yongqing wang:
你好,已经尝试过你发的贴子的寄存器配置以及内存申请代码,可以获取到内存地址,但是读写内存地址却是没有任何波形输出,这边采用了Am3354,GPMC与MMC1共用数据线0–3,经过调试发现一个问题,共用的数据线控制模式更改不了。
yongqing wang:
回复 JUN HU:
你是用官方的板子吗?还是自己设计的
JUN HU:
回复 yongqing wang:
不是官方的板子,所以不知道怎么回事。
yongqing wang:
回复 JUN HU:
找个正常的官方的板子先试一下?
JUN HU:
回复 yongqing wang:
官方的板子在哪里可以买到。
yongqing wang:
回复 JUN HU:
TI的官网就可以啊
yongqing wang:
回复 yongqing wang:
或者淘宝找一下吧