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

Делаем команду

bash# make menuconfig

Конфигурируем ядро.

От того как верно ядро будет сконфигурировано, зависит следующее – загрузится ли вообще ядро и загрузит ли файловую систему (ФС).

Важно корректно выбрать следующее:

- Тип архитектуры и процессор

- включить RAM disk support

- включить Initial RAM filesystem and RAM disk (initramfs/initrd) support

- указать строку загрузки ядра COMMAND_LINE

root=/dev/ram rw mtdparts=AT45DB642.spi0:0x2a000(boot)ro,0x136000(kernel)ro, 0x200300(initrd)ro,-(filesystem) console=ttyS0,115200 mem=64M debug init=/linuxrc

Также нужно отредактировать исходные тексты в самом ядре, почти все конфигурируется в файлах, внутри директории - linux-2.6.20/arch/arm/mach-at91rm9200.

    1. Редактирование исходного текста

Для подключения пользовательского светодиода LD1, тот что на плате, нужно в файле linux/arch/arm/mach-at91rm9200/board-dk.c ( Здесь настраиваются основные и начальные возможности платы и работы ядра с платой )

      1. Подключение конструктивного исполнения контроллера

static void __init dk_map_io(void)

{

/* Initialize processor: 18.432 MHz crystal */

// at91rm9200_initialize(18432000, AT91RM9200_BGA); // default

at91rm9200_initialize(18432000, AT91RM9200_PQFP); // veter

}

Эти значения (AT91RM9200_BGA или AT91RM9200_PQFP), берутся из файла linux-2.6.20/arch/arm/mach-at91rm9200/generic.h

/* GPIO */

#define AT91RM9200_PQFP 3 /* AT91RM9200 PQFP package has 3 banks */

#define AT91RM9200_BGA 4 /* AT91RM9200 BGA package has 4 banks */

      1. Подключение светодиода

нужно исправить:

static void __init dk_map_io(void)

{

/* Setup the LEDs */

// at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2);

at91_init_leds(AT91_PIN_PB27, AT91_PIN_PB27); // veter

}

static struct at91_gpio_led dk_leds[] = {

{

.name = "led0",

// .gpio = AT91_PIN_PB2,

.gpio = AT91_PIN_PB27, // veter

.trigger = "timer",

}

};

Для того, что бы это светодиод использовать как индикатор работы ядра, назначить ему нужно при конфигурировании в разделе Kernel Features пункты

«Timer and CPU usage LEDs»

«Timer LED»

«CPU usage LED»

Больше нет у нас пользовательских светодиодов, но возможность их использования есть в системе.

Device Drivers/ LED devices/

[*] LED Suppor

[*] LED Class Support

--- LED drivers

--- LED Triggers

[*] LED Trigger support

[*] LED Timer Trigger

[*] LED Heartbeat Trigger

      1. Подключение Ethernet контроллера

static struct at91_gpio_led dk_leds[] = {

{

.name = "led0",

// .gpio = AT91_PIN_PB2,

.gpio = AT91_PIN_PB27, // veter

.trigger = "timer",

}

};

static void __init dk_board_init(void)

{

/* Serial */

at91_add_device_serial();

/* Ethernet */

at91_set_gpio_output(AT91_PIN_PB23, 0); // veter // ET_ENABLE

at91_add_device_eth(&dk_eth_data);

}

      1. Подключение Dataflash

static struct spi_board_info dk_spi_devices[] = {

{ /* DataFlash chip */

.modalias = "mtd_dataflash",

.chip_select = 0,

.max_speed_hz = 15 * 1000 * 1000,

},

// { /* UR6HCPS2-SP40 PS2-to-SPI adapter */

// .modalias = "ur6hcps2",

// .chip_select = 1,

// .max_speed_hz = 250 * 1000,

// },

// { /* TLV1504 ADC, 4 channels, 10 bits; one is a temp sensor */

// .modalias = "tlv1504",

// .chip_select = 2,

// .max_speed_hz = 20 * 1000 * 1000,

// },

//#ifdef CONFIG_MTD_AT91_DATAFLASH_CARD

{ /* DataFlash card */

.modalias = "mtd_dataflash",

// .chip_select = 3,

.chip_select = 1, // veter

.max_speed_hz = 15 * 1000 * 1000,

}

//#endif

};

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