0

我已经配置了 spi_gpio 驱动程序,它的工作正常,因为在这个链接Spidev do not write/read 同时使用 ioctl,我知道 spi 协议工作正常,现在我想使用该 spi 协议与 AT45DB321D 4M 串行闪存通信. 通过查看 AT45DB321D 的数据表,我发现 mtd_dataflash.c 与我的设备相同。

我的功法对吗……?

如果是这样,我如何将此驱动程序与 spi 映射以与 AT45DB321D 串行闪存通信......?通过提供有用的文档来指导我解决这个问题是建议。

(我正在使用 uclinux 的 cortex-m3 LPC1788 开发吟游诗人)

已编辑:我可以通过以下代码并使用 /dev/spidev0.1 读取设备 ID

int ret = 0;
int fd;
unsigned char buff[10],buf[]={ 0x9F }, str[4];
ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits);
if (ret == -1)
    pabort("can't set bits per word");

ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits);
if (ret == -1)
    pabort("can't get bits per word");

/*
 * max speed hz
 */
ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed);
if (ret == -1)
    pabort("can't set max speed hz");

ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed);
if (ret == -1)
    pabort("can't get max speed hz");
write(fd,buf,1);
read(fd, buff,10);
LPC178X_CS_HIGH;
sprintf(str,"%02X%02X%02X\n",buff[0],buff[1],buff[2]);
printf("Devce ID: ");
puts(str);

我的问题是如何将数据写入闪存 AT45DB321D 存储器,请帮助...?

4

1 回答 1

0

有用的文档和建议总是来自内核源代码。阅读 SPI 框架是如何工作的,看看其他开发人员做了什么。例如,您可以看到Atmel 9260如何注册mtd_dataflash。总线基础结构使用 modalias 字段来匹配设备和驱动程序。其他字段特定于您的硬件。

于 2013-08-22T08:53:45.113 回答