Как mtd_dataflash.c с протоколом spi..?

Я настроил драйвер spi_gpio, и он работает нормально, как в этой ссылке не писать/читать одновременно с помощью ioctl, я узнал, что протокол spi работает нормально, теперь я хочу использовать этот протокол spi для связи с флэш-памятью серии AT45DB321D 4M. Я обнаружил, что mtd_dataflash.c такой же, как и мое устройство, просмотрев техническое описание AT45DB321D.

Правильно ли я поступил...?

Если да, то как я могу сопоставить этот драйвер с spi для связи с последовательной флэш-памятью AT45DB321D ...? помогите мне решить эту проблему, предоставив полезные документы.

(Я использую бард разработки cortex-m3 LPC1788 с uclinux)

ОТРЕДАКТИРОВАНО: я могу прочитать идентификатор устройства с помощью следующего кода и использования /dev/spidev0.1

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, пожалуйста, помогите...?


person amar    schedule 21.08.2013    source источник


Ответы (1)


Полезные документы и предложения всегда исходят из исходников ядра. Прочтите, как работает инфраструктура SPI, и посмотрите, что сделали другие разработчики. Например, вы можете увидеть, как Atmel 9260 зарегистрируйте mtd_dataflash. Поле modalias используется инфраструктурой шины для сопоставления устройства с драйвером. Другие поля зависят от вашего оборудования.

person Federico    schedule 22.08.2013