The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

SAM-BA

SAM-BA

Предыдущая  Содержание  Следующая  V*D*V

Установка

Используется SAM-BA v2.7. (AT91-ISP v1.11), или SAM-BA v2.9 (AT91-ISP v1.13) или SAM-BA v2.10.

 

http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3883

 

SAM-BA 2.7 и SAM-BA 2.9 зависают при стирании Nandflash, но стирают. Остальные скрипты работают нормально.

У SAM-BA 2.10 все скрипты работают нормально.

Сборка скриптов для SAM-BA v2.7

Установить arm-elf-gcc с http://yagarto.de.

В папке <путь к SAM-BA>\applets\isp-applets\ создать файл build_apps.bat следующего содержания:

 

build.cmd ../lib

pause 0

 

В той же папке создать файл build.cmd:

 

chdir extram

make CHIP=at91sam9260 BOARD=at91sam9260-ek MEMORY=sram_samba DYN_TRACES=0 INST_PREFIX=%1 clean all

make clean

 

chdir ..\nandflash

make CHIP=at91sam9260 BOARD=at91sam9260-ek MEMORY=sdram DYN_TRACES=1 INST_PREFIX=%1 clean all

make clean

 

chdir ..\norflash

make CHIP=at91sam9260 BOARD=at91sam9260-ek MEMORY=sdram DYN_TRACES=1 INST_PREFIX=%1 clean all

make clean

 

chdir ..\dataflash

make CHIP=at91sam9260 BOARD=at91sam9260-ek MEMORY=sdram DYN_TRACES=1 INST_PREFIX=%1 clean all

make clean

 

chdir ..\serialflash

make CHIP=at91sam9260 BOARD=at91sam9260-ek MEMORY=sdram DYN_TRACES=1 INST_PREFIX=%1 clean all

make clean

 

pause 0

 

Установить частоту кварца в <путь к SAM-BA>\applets\at91lib\boards\at91sam9260-ek\board.h:

 

/// Frequency of the board main oscillator.

//#define BOARD_MAINOSC           18432000

#define BOARD_MAINOSC           12000000

 

/// Master clock frequency (when using board_lowlevel.c).

//#define BOARD_MCK               ((18432000 * 97 / 9) / 2)

#define BOARD_MCK               ((12000000 * 50 / 3) / 2)

 

Проверить объём памяти и инициализацию шины данных памяти:

 

/// Board SDRAM size

#define BOARD_SDRAM_SIZE   0x04000000// 64M

//#define BOARD_SDRAM_SIZE   0x02000000// 32M

 

/// List of all SDRAM pins definitions.

#define PINS_SDRAM  {0xFFFF0000, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_A, PIO_DEFAULT}// 64M

//#define PINS_SDRAM  {0x00000000, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_A, PIO_DEFAULT}// 32M

 

В board_lowlevel.c установить параметры PLLA и PLLB:

 

#define BOARD_OSCOUNT           (AT91C_CKGR_OSCOUNT & (64 << 8))

#define BOARD_CKGR_PLLA         (AT91C_CKGR_SRCA | AT91C_CKGR_OUTA_2)

#define BOARD_PLLACOUNT         (63 << 8)

#define BOARD_MULA              (AT91C_CKGR_MULA & (49 << 16))

#define BOARD_DIVA              (AT91C_CKGR_DIVA & 3)

#define BOARD_PRESCALER         AT91C_PMC_MDIV_2

 

#define BOARD_USBDIV            AT91C_CKGR_USBDIV_1

#define BOARD_CKGR_PLLB         AT91C_CKGR_OUTB_0

#define BOARD_PLLBCOUNT         BOARD_PLLACOUNT

#define BOARD_MULB              (7 << 16)

#define BOARD_DIVB              1

 

В board_memories.c проверить ширину шины данных RAM в void BOARD_ConfigureSdram() и void BOARD_ConfigureSdram48MHz():

 

// CFG Control Register

 WRITE(AT91C_BASE_SDRAMC, SDRAMC_CR, AT91C_SDRAMC_NC_9

                                                        | AT91C_SDRAMC_NR_13 

                                                        | AT91C_SDRAMC_CAS_2 

                                                        | AT91C_SDRAMC_NB_4_BANKS

                                                        | AT91C_SDRAMC_DBW_32_BITS

                                                        | AT91C_SDRAMC_TWR_2

                                                        | AT91C_SDRAMC_TRC_7

                                                        | AT91C_SDRAMC_TRP_2

                                                        | AT91C_SDRAMC_TRCD_2

                                                        | AT91C_SDRAMC_TRAS_5

                                                        | AT91C_SDRAMC_TXSR_8);

 

Проверить размер шины данных Nandflash в <путь к SAM-BA>\applets\isp-applets\nandflash\main.c:

 

// Nandflash bus width

static unsigned char nfBusWidth = 8;

 

Собрать, запустив build_apps.bat.

Бинарники будут лежать в папке <путь к SAM-BA>\applets\isp-applets\lib\at91sam9260ek.

Создать папку <путь к SAM-BA>\lib\AT91SAM9260-EK-MY\.

Скопировать туда новые бинарники и скрипт <путь к SAM-BA>\lib\AT91SAM9260-EK\AT91SAM9260-EK.tcl, переименовать его в AT91SAM9260-EK-MY.tcl.

Добавить плату в основной список в <путь к SAM-BA>\lib\boards.tcl:

 

"AT91SAM9260-EK-MY"    "AT91SAM9260-EK-MY/AT91SAM9260-EK-MY.tcl"

Сборка скриптов для SAM-BA v2.9 и SAM-BA v2.10

Установить arm-elf-gcc с http://yagarto.de.

В документации указан EABI компилятор версии 2007q1-10 от Codesourcery, но сборка им даёт ошибки.

 

В папке <путь к SAM-BA>\applets\isp-projects\ создать файл build.bat следующего содержания:

 

chdir extram

make CROSS_COMPILE=arm-elf- clean BOARD=at91sam9260-ek CHIP=at91sam9260 sdram

 

chdir ..\nandflash

make CROSS_COMPILE=arm-elf- clean CHIP=at91sam9260 BOARD=at91sam9260-ek sdram

 

chdir ..\norflash

make CROSS_COMPILE=arm-elf- clean CHIP=at91sam9260 BOARD=at91sam9260-ek sdram

 

chdir ..\dataflash

make CROSS_COMPILE=arm-elf- clean CHIP=at91sam9260 BOARD=at91sam9260-ek sdram

 

chdir ..\serialflash

make CROSS_COMPILE=arm-elf- clean CHIP=at91sam9260 BOARD=at91sam9260-ek sdram

 

pause 0

 

Проверить строчки в Makefile-ах, они должны быть такие:

 

dataflash/Makefile

 

LDFLAGS = -g $(OPTIMIZATION) -nostartfiles -Wl,-Map=$(OUTPUT).map,--gc-sections

 

eeprom/Makefile

 

LDFLAGS = -g $(OPTIMIZATION) -nostartfiles -Wl,-Map=$(OUTPUT).map,--gc-sections

 

extram/Makefile

 

LDFLAGS = -g $(OPTIMIZATION) $(TARGET_OPTS) -Wl,-Map=$(OUTPUT).map,--gc-sections -nostartfiles

 

nandflash/Makefile

 

LDFLAGS = -g $(OPTIMIZATION) $(TARGET_OPTS) -Wl,-Map=$(OUTPUT).map,--gc-sections -nostartfiles

 

norflash/Makefile

 

LDFLAGS = -g $(OPTIMIZATION) -nostartfiles -Wl,-Map=$(OUTPUT).map,--gc-sections

 

serialflash/Makefile

 

LDFLAGS = -g $(OPTIMIZATION) -nostartfiles -Wl,-Map=$(OUTPUT).map,--gc-sections

 

Установить частоту кварца в <путь к SAM-BA>\applets\at91lib\boards\at91sam9260-ek\board.h:

 

/// Frequency of the board main oscillator.

//#define BOARD_MAINOSC           18432000

#define BOARD_MAINOSC           12000000

 

/// Master clock frequency (when using board_lowlevel.c).

//#define BOARD_MCK               ((18432000 * 97 / 9) / 2)

#define BOARD_MCK               ((12000000 * 50 / 3) / 2)

 

Проверить объём памяти и инициализацию шины данных памяти:

 

/// Board SDRAM size

#define BOARD_SDRAM_SIZE   (64*1024*1024)  // 64 MB

//#define BOARD_SDRAM_SIZE   (32*1024*1024)  // 32 MB

/// List of all SDRAM pins definitions.

#define PINS_SDRAM  {0xFFFF0000, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_A, PIO_DEFAULT}

//#define PINS_SDRAM  {0x00000000, AT91C_BASE_PIOC, AT91C_ID_PIOC, PIO_PERIPH_A, PIO_DEFAULT}// 16 bit

/// SDRAM bus width.

#define BOARD_SDRAM_BUSWIDTH    32

//#define BOARD_SDRAM_BUSWIDTH    16

 

В board_lowlevel.c установить параметры PLLA и PLLB:

 

#define BOARD_OSCOUNT           (AT91C_CKGR_OSCOUNT & (64 << 8))

#define BOARD_CKGR_PLLA         (AT91C_CKGR_SRCA | AT91C_CKGR_OUTA_2)

#define BOARD_PLLACOUNT         (63 << 8)

//#define BOARD_MULA              (AT91C_CKGR_MULA & (96 << 16))// 18.432

#define BOARD_MULA              (AT91C_CKGR_MULA & (49 << 16))// 12

//#define BOARD_DIVA              (AT91C_CKGR_DIVA & 9)// 18.432

#define BOARD_DIVA              (AT91C_CKGR_DIVA & 3)// 12

#define BOARD_PRESCALER         AT91C_PMC_MDIV_2

 

#define BOARD_USBDIV            AT91C_CKGR_USBDIV_1

#define BOARD_CKGR_PLLB         AT91C_CKGR_OUTB_0

#define BOARD_PLLBCOUNT         BOARD_PLLACOUNT

//#define BOARD_MULB              (124 << 16)// 18.432

#define BOARD_MULB              (7 << 16)// 12

//#define BOARD_DIVB              24// 18.432

#define BOARD_DIVB              1// 12

 

Для SAM-BA 2.10 перед компиляцией создать каталог <путь к SAM-BA>\applets\isp-project\tcl_lib\at91sam9260-ek\.

 

Бинарники будут лежать в папке <путь к SAM-BA>\applets\isp-applets\tsl_lib\at91sam9260ek.

 

Для SAM-BA 2.9:

Создать папку <путь к SAM-BA>\isp-project\tcl_lib\AT91SAM9260-EK-MY\.

Скопировать туда новые бинарники и скрипт <путь к SAM-BA>\isp-project\tcl_lib\AT91SAM9260-EK\AT91SAM9260-EK.tcl, переименовать его в AT91SAM9260-EK-MY.tcl.

 

Для SAM-BA 2.10:

Создать папку <путь к SAM-BA>\tcl_lib\AT91SAM9260-EK-MY\.

Скопировать туда новые бинарники и скрипт <путь к SAM-BA>\tcl_lib\AT91SAM9260-EK\AT91SAM9260-EK.tcl, переименовать его в AT91SAM9260-EK-MY.tcl.

 

Проверить параметры SDRAM в AT91SAM9260-EK-MY.tcl.

 

# Set bus width (16 or 32)

variable extRamDataBusWidth 32

#variable extRamDataBusWidth 16

 

Добавить плату в основной список в \...\tcl_lib\boards.tcl:

 

"AT91SAM9260-EK-MY"    "AT91SAM9260-EK-MY/AT91SAM9260-EK-MY.tcl"

Прошивка при использовании Dataflash

Загрузка исполняемых модулей происходит из Dataflash.

Файловая система располагается в Nandflash.

Смотри карту памяти.

 

В Dataflash:

Bootstrap:        0x00000

U-Boot:        0x08400 (задаётся в Bootstrap через IMG_ADDRESS)

Kernel:        0x42000 (задаётся в U-Boot, первый параметр команды cp.b)

 

В Nandflash:

Rootfs:        0x400000 (задаётся в ядре Linux /linux/arch/arm/mach-at91/board-sam9260ek.c в ek_nand_partition)

Прошивка Bootstrap

Выключить прибор;

На плате снять перемычку выбора кристалла DataFlash;

Включить прибор;

Запустить SAM-BA. Выбрать AT91SAM9260-EK-MY и способ соединения;

Поставить перемычку выбора кристалла;

На странице Data Flash AT45DB/DCB в секции Scripts выбрать пункт Enable Dataflash (SPI0 CS1), нажать Execute;

На странице Data Flash AT45DB/DCB в секции Scripts выбрать пункт Send Boot file, нажать Execute. В диалоге выбор файла указать файл Bootstrap.bin;

Прошивка U-Boot

Выключить прибор;

На плате снять перемычку выбора кристалла DataFlash;

Включить прибор;

Запустить SAM-BA. Выбрать AT91SAM9260-EK-MY и способ соединения;

Поставить перемычку выбора кристалла;

На странице Data Flash AT45DB/DCB в секции Scripts выбрать пункт Enable Dataflash (SPI0 CS1), нажать Execute;

В группе Download/Upload File в строке Send File Name указать путь к файлу u-boot.bin, указать адрес (Address) 0x8400, нажать кнопку Send file. Прошивка занимает примерно 1 минуту;

Прошивка ядра

Выключить прибор;

На плате снять перемычку выбора кристалла DataFlash;

Включить прибор;

Запустить SAM-BA. Выбрать AT91SAM9260-EK-MY и способ соединения;

Поставить перемычку выбора кристалла;

На странице Data Flash AT45DB/DCB в секции Scripts выбрать пункт Enable Dataflash (SPI0 CS1), нажать Execute;

В группе Download/Upload File в строке Send File Name указать путь к файлу zLinux_x.xx.xx.bin (или zImage), указать адрес (Address) 0x42000, нажать кнопку Send file. Прошивка занимает примерно 5 минут;

Прошивка файловой системы

Выключить прибор;

На плате снять перемычку выбора кристалла DataFlash;

Включить прибор;

Запустить SAM-BA. Выбрать AT91SAM9260-EK-MY и способ соединения;

Поставить перемычку выбора кристалла;

На странице NandFlash в меню выбрать пункт Enable NandFlash, нажать Execute. Должны высветиться параметры микросхемы;

На странице NandFlash в меню выбрать пункт Erase all, нажать Execute. Процесс занимает примерно 2 минуты.

Выбрать файл rootfs_jffs2.bin или rootfs_ubifs.bin, указать адрес 0x400000, нажать кнопку Send file. Прошивка занимает примерно 1 минуту;

Предыдущая  Содержание  Следующая