私は spi_gpio ドライバー用に構成しましたが、このリンクのように、Spidev は ioctl を使用して同時に書き込み/読み取りを行わないため、正常に動作しています。 . AT45DB321Dのデータシートを見て、mtd_dataflash.cが私のデバイスと同じであることを発見しました。
私のゴングは正しいですか...?
もしそうなら、AT45DB321Dシリアルフラッシュと通信するためにこのドライバーをspiでマップするにはどうすればよいですか...? 役立つドキュメントを提供することで、これを解決するように案内してください。
(私は uclinux で cortex-m3 LPC1788 開発 bard を使用しています)
編集:次のコードと /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 メモリにデータを書き込む方法です。何か助けてください...?