Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
120901-Linux-On-AT91RM9200-SK-new.doc
Скачиваний:
33
Добавлен:
05.03.2016
Размер:
798.21 Кб
Скачать
      1. Dataflash.H: конфигурация количества микросхем Flash-памяти

Листинг программы, отображающий изменения в исходном тексте:

/*int cs[][CFG_MAX_DATAFLASH_BANKS] = {

{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, // Logical adress, CS

{CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}

};*/

int cs[][CFG_MAX_DATAFLASH_BANKS] = {

{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}, // Logical adress, CS

{CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}

};

      1. Dataflash.Cpp: инициализация

Листинг программы, отображающий изменения в исходном тексте:

void AT91F_SpiInit(void) {

/* Configure SPI in Master Mode with No CS selected !!! */

// AT91C_BASE_SPI->SPI_MR = AT91C_SPI_MSTR | AT91C_SPI_MODFDIS | AT91C_SPI_PCS;

AT91C_BASE_SPI->SPI_MR = AT91C_SPI_MSTR | AT91C_SPI_MODFDIS | AT91C_SPI_PCS | AT91C_SPI_DIV32 ;

// AT91C_SPI_DIV32 – снижение скорости SPI в 32 раза

/* Configure CS0 and CS3 */

*(AT91C_SPI_CSR + 0) = AT91C_SPI_CPOL|(AT91C_SPI_DLYBS & 0x100000)|((AT91C_MASTER_CLOCK/(2*AT91C_SPI_CLK)) << 8);

// *(AT91C_SPI_CSR + 3) = AT91C_SPI_CPOL|(AT91C_SPI_DLYBS & 0x100000)|((AT91C_MASTER_CLOCK/(2*AT91C_SPI_CLK)) << 8);

*(AT91C_SPI_CSR + 1) = AT91C_SPI_CPOL|(AT91C_SPI_DLYBS & 0x100000)|((AT91C_MASTER_CLOCK/(2*AT91C_SPI_CLK)) << 8);

}

      1. At45.Cpp - конфигурация количества микросхем Flash-памяти

Листинг программы, отображающий изменения в исходном тексте:

void AT91F_SpiEnable(int cs) {

switch(cs) {

case 0: /* Configure SPI CS0 for Serial DataFlash AT45DBxx */

AT91C_BASE_SPI->SPI_MR &= 0xFFF0FFFF;

AT91C_BASE_SPI->SPI_MR |= ((AT91C_SPI_PCS0_SERIAL_DATAFLASH<<16) & AT91C_SPI_PCS);

break;

// case 3: /* Configure SPI CS3 for Serial DataFlash Card */

// /* Set up PIO SDC_TYPE to switch on DataFlash Card and not MMC/SDCard */

// AT91C_BASE_PIOB->PIO_PER = AT91C_PIO_PB7; /* Set in PIO mode */

// AT91C_BASE_PIOB->PIO_OER = AT91C_PIO_PB7; /* Configure in output */

// /* Clear Output */

// AT91C_BASE_PIOB->PIO_CODR = AT91C_PIO_PB7;

// /* Configure PCS */

// AT91C_BASE_SPI->SPI_MR &= 0xFFF0FFFF;

// AT91C_BASE_SPI->SPI_MR |= ((AT91C_SPI_PCS3_DATAFLASH_CARD<<16) & AT91C_SPI_PCS);

// break;

case 1: /* Configure SPI CS1 for Serial DataFlash Card */

/* Set up PIO SDC_TYPE to switch on DataFlash Card and not MMC/SDCard */

// AT91C_PA4_NPCS1

AT91C_BASE_PIOB->PIO_PER = AT91C_PIO_PB7; /* Set in PIO mode */

AT91C_BASE_PIOB->PIO_OER = AT91C_PIO_PB7; /* Configure in output */

/* Clear Output */

AT91C_BASE_PIOB->PIO_CODR = AT91C_PIO_PB7;

/* Configure PCS */

AT91C_BASE_SPI->SPI_MR &= 0xFFF0FFFF;

AT91C_BASE_SPI->SPI_MR |= ((AT91C_SPI_PCS1_DATAFLASH_CARD<<16) & AT91C_SPI_PCS);

break;

}

/* SPI_Enable */

AT91C_BASE_SPI->SPI_CR = AT91C_SPI_SPIEN;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]