TWR-MPC5125. Руководство пользователя
СОДЕРЖАНИЕ
1.1. Размещение компонентов и функции
2. Конструкция и архитектура аппаратных средств
2.4. Физические характеристики
3.2. SW7 — Сброс при включении напряжения питания
3.4. Установки конфигурационного разъёма
3.4.1. J4 — Режим отладочного USB-порта
3.4.2. J4 — Режим отладочного микроконтроллера
5.1. Центральное процессорное устройство
6. Загрузчик U-boot, установка Linux (на целевой системе)
6.1. Настройка хост-компьютера
6.2. Установка целевой системы
6.3. Настройка загрузчика U-Boot
6.4. Развёртывание корневой файловой системы NFS при разработке
6.5. Загрузка с файловой системы net_ramboot
7. Компоновка загрузчика U-Boot, ядра и дерева каталогов
7.1. Настройки кросс-компилятора
8. Программирование флэш-памяти NAND
8.1. Программирование загрузчика программ и загрузчика U-boot
8.1.1. Использование интегрированной среды разработки
8.1.2. Использование командной строки
8.2. Программирование дерева каталогов устройства и ядра
8.3. Обновление файловой системы с диска USB
Приложение А. Назначение контактов разъёма J2
1. Общее описание
В плате MPC5125 Tower System используется микропроцессор MPC5125 компании Freescale. Плата содержит встроенную память DDR2 SDRAM и NAND-флэш, порты CAN, USB 2.0, 10/100 Ethernet, HDMI, а также отладочный USB-порт. Система питается от источника питания с выходным напряжением 5В, подключаемого к розетке электрической сети. Плата совместима с Freescale Tower System. Информация о системе Tower приведена на Web-сайте www.freescale.com/tower.
1.1. Размещение компонентов и функции
В этом разделе приводится описание разъёмов, джамперов (перемычек), переключателей и основных компонентов платы MPC5125. На Рис.1 и 2 показано расположение компонентов, перечисленных ниже.
Рис. 1
Рис. 2
Дополнительные описания функций переключателей и джамперов, а также рекомендованные для них установки можно найти в разделе 3 настоящего руководства.
- J2 — разъём JTAG, 16-контактный разъём для COP/JTAG. Этот порт используется для выполнения отладочного кода на микропроцессоре MPC5125. Назначение контактов данного разъёма приведено в Приложении А.
- CN1 — Ethernet-разъём RJ45, это стандартный входной Ethernet-разъём.
- J35 — разъём последовательного порта 2×2 контакта со следующим назначением выводов для микропроцессора MPC5125:
- SW1 — переключатель системной конфигурации. Установки переключателя описаны в разделе 3.
- U13 — микросхема USB PHY, это высокоскоростной трансивер (приёмопередатчик) USB 2.0 с ULPI-интерфейсом.
- Разъём mini-AB USB. DOWN4 — это разъём mini-AB USB, совместимый с форматом USB 2.0.
- CN3 — разъём HDMI, поддерживает HDMI-интерфейс.
- U20 — HMDI-передатчик.
- J27 — джампер включения второго Ethernet-порта. При соединении выводов джампером будет активирован второй Ethernet-порт, доступный через разъём для подключения к основной соединительной плате, в дополнение к разъёму CN1 RJ45 Ethernet. При установке данного джампера разъём mini-AB USB будет отключён.
- J3 — встроенный микрофон (MIC), аудиовход.
- J1 — разъём для подключения наушников, аудиовыход.
- U28 — аудиокодек.
- Разъём для подключения к дополнительной соединительной плате системы Freescale TOWER.
- Разъём для подключения к основной соединительной плате системы Freescale TOWER.
- J4 — конфигурационный разъём для подключения к отладочному микроконтроллеру. Установки конфигурационного разъёма описаны в разделе 3.4. Для отладки кода, выполняемого отладочным микроконтроллером, может быть подключён модуль BDM (см. Рис.3).
Рис. 3 - U14 — отладочный микроконтроллер, который выполняет роль отладочного моста между отладочным USB-портом и микропроцессором MPC5125.
- J19 — отладочный USB-порт для микропроцессора MPC5125. Через данный USB-порт может подаваться питание системы.
- SW7 — переключатель Сброс. Однократное нажатие приводит к сбросу при включении питания (Power on reset).
- SW8 — переключатель «спящего» режима. Нажмите его для возобновления работы системы.
- J33 — место для установки батареи или ионистора для питания часов реального времени VBAT_RTC. Рекомендуется использовать ионистор EECEN0F204RT компании Panasonic.
- U1 — микропроцессор MPC5125 компании Freescale.
- Разъём для SD-карт.
- J31 — джампер подключения оконечной нагрузки CAN. Установка джампера между контактами подключает согласованную нагрузку для CAN-интерфейса, который в обычном состоянии не имеет оконечной нагрузки.
- J34 — разъём CAN.
- U6 — память DDR, оперативная DDR2-память системы.
- J20 — гнездо для подключения источника питания постоянного тока напряжением 5В.
- U7 — память DDR, оперативная DDR2-память системы.
- U10 — флэш-память NAND для загрузчика uboot, ядра Linux, файловой системы и пользовательских данных.
- U4 — цифровой акселерометр.
- U2 — микросхема Ethernet PHY с интерфейсом MII/RMII.
2. Конструкция и архитектура аппаратных средств
2.1. Память
- 4ГБ флэш-памяти MLC NAND
- 256МБ памяти DDR2
2.2. Подключения и функции
- Цифровой акселерометр
- HDMI-порт (видео/аудио) с адаптером HDMI — DVI-D
- Порт RJ-45 10/100 Base T Ethernet
- Порт mini-AB USB 2.0 OTG
- Подключение USB-хоста к концентратору (клавиатура, мышь, аудиоустройство, карта, WiFi,....)
- Подключение USB-устройств к внешней хост-системе USB
- Встроенный микрофон и гнездо аудио стереовыхода
- Порт расширения для SD-карт
- Порт CAN 2.0 A/B
2.3. Интерфейс отладчика
- Встроенный отладчик, доступный через порт mini-B USB
- Разъём JTAG/COP для подключения внешнего BDM-интерфейса
Рис. 4
2.4. Физические характеристики
В данном разделе приведена общая информация о физических характеристиках микропроцессора MPC5125.
Размер платы: спецификация Freescale Tower (59мм х 90мм)
Требования к напряжению питания: 5В постоянного тока
Рабочая температура: от 0 до +70°С
Вес: 50г
Соответствие директиве RoHS: Да
Соответствие требованиям FCC/CE: Да
3. Управление и настройка
В данном разделе приведена общая информация о различных джамперах и переключателях на плате MPC5125.
3.1. Установки переключателей
В данном подразделе кратко описаны функциональные возможности и рекомендованные установки переключателей на плате MPC5125.
Расположение этих переключателей показано на Рис.1.
3.2. SW7 — Сброс при включении напряжения питания
SW7 — это кнопка, которая обеспечивает формирование сигнала Power On Reset (сброс при включении напряжения питания) для аппаратной части модуля на микропроцессоре MPC5125.
3.3. SW1 — Режим загрузки
Переключатель режимов позволяет конфигурировать различные режимы работы микропроцессора MPC5125.
Положение SW1 | Конфигурация сброса | Описание сигнала | Значение по умолчанию |
---|---|---|---|
6 | RST_CONF_ROMLOC0 | Выбор загрузочного устройства: 0 = загрузка LPC, 1 = загрузка NAND (NFC) | 1 |
5 | RST_CONF_BMS | Выбор режима загрузки: 0 = загрузка из нижних адресов, 1 = загрузка из верхних адресов | 1 |
4 | RST_CONF_LPC_DBW0 | Размер порта данных LPC | 00 |
3 | RST_CONF_LPC_DBW1 | 00 = 8 бит, 01 = 16 бит, 10 = зарезервировано, 11 = 32 бит | |
2 | RST_CONF_LPCWA | Режим адресации LPC (пословный/побайтовый): 0 = пословная адресация, 1 = побайтовая адресация | 1 |
1 | RST_CONF_LPCMX LPC | Мультиплексный режим: 0 = мультиплексный режим выключен, 1 = мультиплексный режим | 0 |
3.4. Установки конфигурационного разъёма
3.4.1. J4 — Режим отладочного USB-порта
Этот джампер используется для выбора функций:
- Выводы 1-2 соединены — отладочный USB-порт
- Выводы 1-2 разомкнуты — мост «Последовательный порт — USB»
3.4.2. J4 — Режим отладочного микроконтроллера
- Выводы 3-4 соединены — режим загрузчика
- Выводы 3-4 разомкнуты — режим моста «UART — USB»
4. Схемы
Схемы и основную информацию в формате PDF о сборке платы на MPC5125 можно найти на компакт-диске, поставляемом вместе с платой.
Конструкция платы MPC5125 обеспечивает дополнительную гибкость и поддержку пользовательских интерфейсов благодаря возможности индивидуальной настройки, поэтому разработчики встраиваемых систем могут добиться снижения общей стоимости компонентов, комбинируя разнообразные фиксированные и изменяемые настройки.
Для этого используются разъёмы, джамперы и переключатели на плате.
На схемах даны рекомендации по использованию уже установленных, а также изменяемых пользователем настроек, имеющихся в схеме.
5. Работа
5.1. Центральное процессорное устройство
MCP5125 поддерживает интерфейс со следующими локальными встроенными ресурсами:
флэш-память NAND, оперативная память DDR2-SDRAM, MII (контроллер 10/100 Fast Ethernet), RMII (контроллер 10/100 Fast Ethernet), I2C (ЭСППЗУ), PSC (программируемый последовательный контроллер) для RS232 и AC97 (аудио), контроллер прерываний, USB 2.0 (ULPI — интерфейс с малым количеством выводов), контроллер DIU (интерфейс дисплея), интерфейс для SD-карт.
Подробное описание каждого интерфейса приведено в руководстве пользователя MPC5125.
5.2. Источники питания
Для питания MPC5125 используется только напряжение +5В.
Порядок подачи питания
Правила подачи питания требуют, чтобы напряжение питания на подсистему ввода/вывода подавалось раньше, чем на ядро микропроцессора.
5.3. Сброс
SW7 — кнопка, при нажатии на которую формируется сигнал Power On Reset (сброс при включении напряжения питания) для аппаратной части модуля на микропроцессоре MPC5125.
Сигнал MPC5125 POREST_B используется для конфигурирования системы и её внутренних регистров. Кроме того, он используется для сброса центрального процессора при включении напряжения питания.
5.3.1. Тактовые сигналы
Формирователь тактовых импульсов основной частоты представляет собой программируемую ИС синтезатора частоты.
SYS_CLK — тактовый сигнал основной частоты центрального процессора (32.768МГц).
Частота 4МГц используется отладочным микроконтроллером.
Сигнал CLK_24.000Mhz (24МГц) используется внутренней USB-схемой центрального процессора.
Сигнал CLK_50.000Mhz (50МГц) используется как внутренней схемой Fast Ethernet центрального процессора, так и микросхемой Ethernet PHY.
Сигнал CLK_32.768Khz (32.768кГц) используется внутренней схемой XTAL_RTC центрального процессора.
5.4. Память
5.4.1. DDR2 SDRAM
Выделенная шина DDR2-памяти имеет ширину 32 бита, тактовую частоту 200МГц и является однобанковой, без ECC (обнаружение и исправление ошибок).
Она использует контроллер MPC5125 DDR2 SDRAM и напрямую подключена к MPC5125.
5.4.2. Флэш-память NAND
Выделенная флэш-память NAND подключена непосредственно к флэш-контроллеру MPC5125 NFC NAND.
6. Загрузчик U-boot, установка Linux (на целевой системе)
6.1. Настройка хост-компьютера
Настройка хост-компьютера крайне важна для функционирования пакетов BSP. Чтобы целевая система работала, на хост-компьютере должны быть запущены серверы tftp и nfs. Приведённые ниже инструкции носят общий характер. Если ваша система отличается от описанной, то команды должны быть изменены соответствующим образом.
Инструкции для хост-компьютера под управлением ОС Linux
- Для работы tftp-сервера отключите межсетевую защиту (брандмауэр):
$ sudo iptables –F - Установите tftp-сервер на хост-компьютере.
- Установите nfs-сервер на хост-компьютере.
- Создайте каталог tftpboot, если он ещё не существует:
$ sudo mkdir -p /tftpboot
$ sudo chmod 777 /tftpboot - Скопируйте ядро, загрузчик и дерево каталогов вашего устройства в каталог /tftpboot.
- Распакуйте основную файловую систему в каталог < ROOTFS_PATH>:
$ sudo tar xpf < ROOTFS_PACKAGE>.tar –C /< ROOTFS_PATH> - Отредактируйте файл /etc/exports, добавив в него следующую строку:
/< ROOTFS_PATH>/ *(rw,anonuid=0,anongid=0,no_subtree_check) - Чтобы включить tftp, отредактируйте файл /etc/xinetd.d/tftp следующим образом:
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args =/tftpboot
} - Перезапустите серверы nfs и tftp на хост-компьютере:
$ sudo /etc/init.d/xinetd restart
$ sudo /etc/init.d/nfsserver restart
6.2. Установка целевой системы
- Подключите плату к сети через Ethernet-порт.
- Подключите плату к хост-компьютеру через последовательный порт.
- Подсоедините плату к источнику питания.
- Запустите minicom или другую программу (на ваше усмотрение) для последовательного обмена данными. Установки последовательного порта: Скорость — 115200 бит/с, Биты данных — 8, Чётность — Да.
- Включите питание платы — на экране появится загрузочное сообщение загрузчика u-boot:
U-Boot 2009.03-00012-g21a175a-dirty (Jan 21 2010 - 11:03:07) MPC5125
CPU: MPC5125 rev. 1.0, Core e300c4 at 400 MHz, CSB at 200 MHz
board: mpc5125_mpu
I2C: ready
DRAM: 256 MB
NAND: 2048 MiB
In: serial
Out: serial
Err: serial
Net: FEC ETHERNET
Введите команду run nfsboot, чтобы смонтировать корневую файловую систему на NFS.
6.3. Настройка загрузчика U-Boot
Для загрузки ядра Linux в коде u-boot должно содержаться дерево каталогов устройства. Чтобы проверить это, напечатайте help bootm в строке приглашения загрузчика u-boot.
=> help bootm
bootm [addr [arg ...]]
— образ приложения для загрузки записан в память, аргументы 'arg ...' переданы; при загрузке ядра Linux 'arg' может быть адресом образа initrd.
При загрузке ядра Linux, которому требуется плоское дерево каталогов устройства, третий аргумент типа blob, содержащий адрес этого дерева, является обязательным. Чтобы загрузить это ядро без образа initrd, используйте '-' вместо второго аргумента. Если третий аргумент отсутствует, то вместо него будет подставлена структура bd_info
Если справочная система сообщает, что bootm требует трёх аргументов, значит, поддержка дерева каталогов устройства включена. Если нет — необходимо установить новый загрузчик u-boot.
Более подробная информация приведена в разделе 8.1.
Установленный в заводских условиях загрузчик u-boot поддерживает различные команды, предопределённые в среде по умолчанию.
- Распечатайте текущую конфигурацию u-boot — для этого введите print в строке приглашения u-boot.
=> print
bootcmd=run nfsboot
bootdelay=5
baudrate=115200
loads_echo=1
preboot=echo;echo Чтобы смонтировать корневую файловую систему на NFS, введите \"run flash_nfs\";echo
loadaddr=400000
u-boot_addr_r=200000
u-boot_addr=FFF00000
kernel_addr=FC040000
fdt_addr=FC2C0000
ramdisk_addr=FC300000
u-boot=ads5125/u-boot.bin
netdev=eth0
nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath}
ramargs=setenv bootargs root=/dev/ram rw
addip=setenv bootargs
${bootargs}ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:$
{netdev}:off panic=1
addtty=setenv bootargs ${bootargs}console=${consdev},${baudrate}
flash_nfs=run nfsargs addip addtty;bootm ${kernel_addr}- ${fdt_addr}
flash_self=run ramargs addip addtty;bootm
${kernel_addr}${ramdisk_addr}${fdt_addr}
net_nfs=tftp ${kernel_addr_r}${bootfile};tftp ${fdt_addr_r}${fdtfile};run
nfsargs addip addtty;bootm ${kernel_addr_r}- ${fdt_addr_r}
net_self=tftp ${kernel_addr_r}${bootfile};tftp
${ramdisk_addr_r}${ramdiskfile};tftp ${fdt_addr_r}${fdtfile};run ramargs
addip addtty;bootm ${kernel_addr_r}${ramdisk_addr_r}${fdt_addr_r}
load=tftp ${u-boot_addr_r}${u-boot}
update=protect off ${u-boot_addr}+${filesize};era ${uboot_
addr}+${filesize};cp.b ${u-boot_addr_r}${u-boot_addr}${filesize}
upd=run load update
ethact=FEC ETHERNET
ethaddr=AA:BB:CC:DD:EE:FF
ramdiskfile=rootfs.ext2.gz.uboot
hostname=limeos
net_ramboot=setenv bootargs root=/dev/ram rw console=$consdev,$baudrate;tftp
${kernel_addr_r}${bootfile};tftp ${ramdisk_addr_r}${ramdiskfile};tftp
${fdt_addr_r}${fdtfile};bootm $kernel_addr_r $ramdisk_addr_r $fdt_addr_r
bootargs=root=/dev/ram rw console=ttyPSC0,115200
filesize=3000
fileaddr=400000
gatewayip=192.168.10.1
netmask=255.255.255.0
ipaddr=192.168.10.205
serverip=192.168.10.227
kernel_addr_r=3000000
fdt_addr_r=4000000
ramdisk_addr_r=5000000
rootpath=/home/tony/nfs
consdev=ttyPSC1
fdtfile=mpc5125-twr.dtb
bootfile=vmlinux-5125-twr.bin
stdin=serial
stdout=serial
stderr=serial
Environment size: 1947/131067 bytes
Если значения переменных вашей среды u-boot отличаются от приведённых выше, то измените или добавьте их с помощью команды u-boot setenv. - Из командной строки ядра сообщите ядру linux, какой последовательный порт должен использоваться для консоли. Добавьте переменную u-boot для настройки консоли в командной строке ядра:
=> setenv consoledev ttyPSC1 - Задайте сетевую конфигурацию платы, используя значения, соответствующие вашему устройству.
=> setenv ipaddr 172.27.152.21
=> setenv serverip 172.27.152.6
=> setenv netmask 255.255.0.0
=> setenv gatewayip 172.27.255.254 - Задайте некоторые пути доступа, которые потребуются позже:
=> setenv rootpath < ROOTFS-PATH>
=> setenv bootfile vmlinux-5125-twr.bin
=> setenv fdtfile mpc5125-twr.dtb - Сохраните конфигурацию во флэш-памяти:
=> saveenv
6.4. Развёртывание корневой файловой системы NFS при разработке
В ходе разработки обычно загружают ядро через tftp и используют nfs в качестве корневой файловой системы.
- На хост-компьютере скопируйте ядро и файл дерева каталогов в каталог tftpboot.
- Задайте значение параметра nfsboot:
=> set nfsboot 'set bootargs ip=dhcp root=/dev/nfs rw
nfsroot=$serverip:$rootpath,proto=tcp,nolock console=$consoledev,$baudrate
$othbootargs;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr - $fdtaddr' - Теперь произведите загрузку платы:
=> run nfsboot - Чтобы загрузчик u-boot автоматически запускал nfsboot при загрузке, установите значение переменной bootcmd:
=> setenv bootcmd run nfsboot
=> saveenv
6.5. Загрузка с net_ramboot
- Скопируйте ядро, файл дерева каталогов и файловую систему оперативной памяти (rootfs.ext2.gz.uboot-common) в каталог tftpboot на хост-компьютере.
Файловая система оперативной памяти (rootfs.ext2.gz.uboot-common) генерируется пакетами ltib. Дополнительную информацию можно найти в справочной документации к инструментальному средству LTIB. - Задайте значение параметра net_ramboot:
=> set net_ramboot 'setenv bootargs root=/dev/ram rw
console=$consdev,$baudrate;tftp $kernel_ld_addr $kernel_name;tftp
$fdt_ld_addr $fdt_name;tftp $ramdisk_ld_addr $ramdisk_name;bootm
$kernel_ld_addr $ramdisk_ld_addr $fdt_ld_addr'
=> setenv kernel_ld_addr 0x2000000
=> setenv fdt_ld_addr 0x2800000
=> setenv ramdisk_ld_addr 0x3000000
=> setenv kernel_name vmlinux-5125-twr.bin
=> setenv fdt_name mpc5125-twr.dtb
=> setenv ramdisk_name rootfs.ext2.gz.uboot-common
=> saveenv - Теперь произведите загрузку платы:
=> run net_ramboot
7. Компоновка загрузчика U-Boot, ядра и дерева каталогов
7.1. Настройки кросс-компилятора
- Установите набор инструментальных средств, необходимых для кросс-компиляции.
Установка инструментария производится из пакета LTIB, более подробные инструкции можно найти в справочной документации LTIB. - Перед началом кросс-компиляции любого кода необходимо задать переменные среды ARCH, CROSS_COMPILE и PATH.
Создайте файл сценария ppc с переменными среды:
#!/bin/sh
TOOLCHAIN=/opt/freescale/usr/local/gcc-4.1.78-eglibc-2.5.78-1/powerpce300c3-linux-gnu
LTIB=/opt/freescale/ltib/usr
export ARCH=powerpc
export CROSS_COMPILE=powerpc-e300c3-linux-gnuexport
PATH=$TOOLCHAIN/bin:$LTIB/bin:$PATH
$ source ppc
7.2. Компоновка
- Скомпонуйте загрузчик U-boot:
$ make distclean
$ make ads5125_nand_config
$ make –j 4 - Скомпонуйте ядро:
$ cp arch/powerpc/configs/mpc5125_twr_defconfig .config
$ make –j 4
Сжатое ядро ulmage расположено по адресу arch/powerpc/boot/uImage.
Распакуйте файл сценария mkvm для ядра uImage:
#!/bin/bash
cat vmlinux.bin.gz | gunzip > vmlinux.bin
mkimage -A ppc -O Linux -T kernel -C none -a 0x0 -e 0x0 -n Linux-2.6 -d
vmlinux.bin $1
$ mkvm vmlinux-5125-twr.bin - Скомпонуйте дерево каталогов устройства.
Скомпилируйте файл сценария DTS «mkdts»:
#!/bin/bash
# Проверка правильности использования параметров командной строки
if [ "$#" != "1" -a "$#" != "3" ]; then
echo "Usage: `basename $0` dts-filename [-o dtb-filename]"
exit 1
fi
DTS_FILE=$1
DTB_FILE=${DTS_FILE%%dts}dtb
if [ "${DTS_FILE##*.}" != "dts" ]; then
echo "`basename $0`: '$DTS_FILE' input file type error."
exit 1
fi
shift
if [ "$1" == "-o" ]; then
shift
DTB_FILE=$1
if [ "${DTB_FILE##*.}" != "dtb" ]; then
echo "`basename $0`: '$DTB_FILE' output file type error."
exit 1
fi
fi
./arch/powerpc/boot/dtc -I dts -O dtb -S 0x3000 -o $DTB_FILE $DTS_FILE
$ mkdts arch/powerpc/boot/dts/mpc5125-twr.dts -o mpc5125-twr.dtb
8. Программирование флэш-памяти NAND
8.1. Программирование загрузчика программ и загрузчика U-boot
Имеется два способа программирования флэш-памяти NAND с использованием JTAG-порта CodeWarrior: через интегрированную среду разработки CodeWarrior for MobileGT или через сценарий командной строки CodeWarrior Connection Server.
8.1.1. Использование интегрированной среды разработки
Потребуются следующие инструментальные средства:
- ИСР CodeWarrior for MobileGT v9.2
- Патч ИСР CodeWarrior для платформы MPC5125
- Codewarrior USB Tap
Исходный код загрузчика U-Boot компилируется на Linux-сервере, ПО Codewarrior MobileGT v9.2 работает на компьютере под управлением ОС Windows. Интегрированная среда разработки CW создает проект, необходимый для поиска источника информации в каталоге U-Boot, поэтому заказчик должен подключить сетевой диск с помощью службы linux samba.
Подключение сетевого диска с компьютера под управлением ОС Windows:
- Сконфигурируйте сервер samba на Linux-сервере
- Откройте «Мой компьютер», выберите в меню Tools > Map Network Drive (Сервис > Подключить сетевой диск)
Например, в следующей конфигурации:
Диск: Z:
Каталог: //server_ip/<каталог на linux-сервере с кодом U-Boot>
- Создайте проект.
- Запустите интегрированную среду разработки CodeWarrior
- Кликните File > Open (Файл > Открыть) и выберите u-boot в каталоге samba, ПО CodeWarrior импортирует загрузчик u-boot и создаст проект.
Если появится сообщение «Couldn't find the file libgcc2.c» (Не удаётся найти файл libgcc2.c), то выберите вариант «Continue with next file» (Перейти к следующему файлу и продолжить), это никак не влияет на предыдущую работу. - Установки: Edit > Default Project Settings > Target Settings Panels > Debugger > EPPC Debugger Settings (Правка >Установки проекта, используемые по умолчанию > Панели настроек целевого процессора > Отладчик > Установки отладчика EPPC):
Процессор: 52xx Целевой процессор: 5125
Используйте файл инициализации целевого устройства: 5125-twr-init.cfg, это важная инициализация параметров DDR (см. Приложение). - Нажмите F5, начнётся работа u-boot, последовательного порта, появится загрузочное сообщение u-boot и командная строка.
- Скопируйте файлы nand_spl/u-boot-spl-2k.bin и u-boot-second.bin в каталог /tftpboot.
- Загрузчик программ:
=> tftp 0x4000000 u-boot-spl-2k.bin
=> nand_e 0x00 0x01
=> nand_loader 0x4000000 0x00 0x800 (file size)
=> nand_r 0x2000000 0x00 0x800
=> md 0x2000000 - Загрузчик u-boot:
=> tftp 0x4000000 u-boot-second.bin
=> nand_e 0x100 0x101
=> nand_w 0x4000000 0x100 0x40000 (file size)
=> nand_r 0x2000000 0x100 0x800
=> md 0x2000000 - Перезапустите u-boot:
=> reset
8.1.2. Использование командной строки
- Запустите приложение CodeWarrior Connection Server из C:/ Program Files/ Freescale/ CodeWarrior for MobileGT V9.2/ccs/bin/ccs.exe.
- Скопируйте файлы u-boot-second-scrip.txt и nand_spl/loader-script-5125.txt в папку windows, например, в c:/u-boot.
- Скопируйте файл 5125_init.txt в папку c:/u-boot (см. Приложение).
- Загрузчик программ и загрузчик U-boot:
(bin) 1 % cd /u-boot/
(bin) 2 % source 5125_init.txt
(bin) 3 % source loader-script-5125.txt
(bin) 4 % source u-boot-second-scrip.txt
8.2. Программирование дерева каталогов устройства и ядра
- Дерево каталогов:
=> setenv fdt_name mpc5125-twr.dtb
=> setenv flash_dtb 0xb00
=> tftp 0x3000000 $fdt_name
=> nand_e $flash_dtb 0xb01
=> nand_w 0x3000000 $flash_dtb 0x3000 - Ядро:
=> setenv kernel_name vmlinux-5125-twr.bin
=> setenv flash_kernel 0x300
=> tftp 0x3000000 $kernel_name
=> nand_e $flash_kernel 0xaff
=> nand_w 0x3000000 $flash_kernel 0x400000 (file size)
8.3. Обновление файловой системы с USB-диска
- Скопируйте файловую систему оперативной памяти rootfs.ext2.gz.uboot-common в каталог /tftpboot на хост-компьютере.
- Скопируйте файловую систему флэш-памяти NAND, < ROOTFS_PACKAGE>.tar, на USB-диск.
- Подключите USB-диск к целевой системе.
- Запустите файловую систему ramdisk из приглашения u-boot:
=> run net_ramboot - Введите «3» для выхода из утилиты.
- Установите файловую систему rootfs флэш-памяти NAND с помощью USB-диска в файловой системе ramdisk. Введите следующие команды в строке приглашения файловой системы ramdisk:
$ sudo flash_eraseall /dev/mtd6
$ sudo mkdir -p /tmp/udisk /tmp/mtd
$ sudo mount -t vfat /dev/sda1 /tmp/udisk
$ sudo mount -t yaffs2 /dev/mtdblock6 /tmp/mtd
$ sudo tar xpf /tmp/udisk/< ROOTFS_PACKAGE>.tar -C /tmp/mtd
$ sudo umount /tmp/mtd
$ sudo umount /tmp/udisk
Приложение А. Назначение контактов разъёма J2
J2 — 16-контактный JTAG-разъём MPC5125Номер вывода | Описание |
---|---|
1 | MPC JTAG COP TDO |
2 | Не подключён |
3 | MPC JTAG COP TDI |
4 | MPC JTAG TRST |
5 | Не подключён |
6 | 3.3В постоянного тока |
7 | MPC JTAG TCK |
8 | Не подключён |
9 | MPC JTAG TMS |
10 | Не подключён |
11 | MPC SRESET |
12 | GND |
13 | HRESET |
14 | Не подключён |
15 | MPC CKSTP OUT |
16 | GND |
Приложение Б. Карта памяти
Ниже приведён пример карты памяти; информацию о конкретных конфигурациях памяти можно найти в документе MPC5125 Quick Guide (Краткое руководство по MPC5125), многие настройки распределения памяти определяются пользователем.
Функция | Зарезервированные байты | 32-битный адрес | CS# | Размер | |
---|---|---|---|---|---|
Начало | Конец | ||||
IMMRBAR — установка по умолчанию при сбросе FF40 0000 | 0x8000 0000 | 0x803F FFFF | 1МБ, рекомендуется 4МБ с запасом на будущее | ||
DDR SDRAM | 256МБ | 0x0000 0000 | 0x0FFF FFFF | DDR_MCSN | 256МБ |
Область загрузки EBC NAND флэш-памяти — загрузка из верхних адресов | 2048МБ | 0xFFF0 0000 | 0xFFFF FFFF | NFC_CE0_B | 1МБ |
Флэш-память NAND до 2ГБ | 1МБ | 0x4000 0000 | 0x400F FFFF | 1МБ | |
SRAM | 256КБ | 0x3000 0000 | 0x3001 FFFF | 32КБ | |
Устройство USB ULPI 2.0 | 4КБ | IMMR_0x3000 | IMMR_3FFF | 4КБ | |
Локальные конфигурационные регистры | 1КБ | IMMR_0x1 | 0000 IMMR_0x1 01FF | ||
RS232 на микропроцессоре | PSC1 | IMMR_0x1 1100 | IMMR_0x1 11FF | ||
RS232 на модуле TWR | PSC9 | IMMR_0x1 1900 | IMMR_0x1 19FF | ||
IIC1 | IMMR_0x0 1720 | IMMR_0x0 173F | 32Б | ||
IIC2 | IMMR_0x0 1740 | IMMR_0x0 17FF | 32Б | ||
Контроллер Fast Ethernet | IMMR_0x0 2800 | IMMR_0x02FFF | 256Б |
Электронные компоненты Freescale >>>
О компании Freescale >>>