Содержание

ЕМ-5 Контроллер

pxa270

com: 38400 8N1

miniterm /dev/ttyUSB0 38400 --raw
0x00000000 : "Bootloader"
0x00020000 : "Kernel"
0x00220000 : "Filesystem"

Socket-can

 SocketCAN: No buffer space available

В соответствии с рекомендациями из первой, добавь в can_init.sh строчку: echo 1000 > /sys/class/net/can0/tx_queue_len

Настройки UUCP

/etc/uucp/sys
system em5
port com1-38400
time any
/etc/uucp/port
port com1-38400
type direct
device /dev/ttyS1
speed 38400
hardflow false

Компиляция

Исходные коды Buildroot и Linux собираются в виртуальной машине em5-dev.

В домашней папке есть директории buildroot/ (ссылка на buildroot2013-5) и linuxdir/ (ссылка на buildroot/output/build/linux…).

Конфиг buildroot лежит в директории configs/ в домашней папке пользователя. Обратите внимание, что Linux собирается вемсте с buildroot (чтобы автоматом применились патчи).

Путь к конфигу Linux прописан в конфиге buildroot. Там же прописана директория с патчами, которые нужно применить к исходному коду Linux и директория, в которой искать скачанные файлы пакетов (вероятно, URL многих из них через 15 лет «протухнут», так что берегите эти файлы).

Для редактирования конфига используется команда make-menuconfig или make-gconfig.

Конфиг busybox – `make busybox-menuconfig`.

Сборка ядра – `make linux-rebuild`, uboot – `make uboot-rebuild`.

Артефакты сборки Buildroot лежат в output/images: zImage, rootfs.tar (+rootfs.jffs) и u-boot.bin. Их нужно залить на флеш-память контроллера. Для сбойных флешек рекомендуется заливать не образ jffs, а создавать пустую jffs, после чего распаковывать в неё файлы из rootfs.tar.

Когда создается rootfs, поверх неё копируется содержимое директории em5_rootfs_overlay. Именно в неё нужно добавлять свои файлы, чтобы они в конечном итоге оказались в образе файловой системы.

Параметры uboot

setenv bootdelay 3
setenv baudrate 38400
setenv ethaddr 00:0d:15:00:72:b4
setenv filesize 140000
или 3МБ
setenv filesize 3145728
setenv fileaddr A1000000
setenv netmask 255.255.0.0
setenv ipaddr 10.163.2.121
setenv serverip 10.163.2.126
setenv nfspath /home/user/nfsroot
setenv hostname pandapc01
setenv bootargs_nfs root=/dev/nfs rw nfsroot=\$(serverip):\$(nfspath),rsize=1024,wsize=1024 ip=\$(ipaddr):::\$(netmask):\$(hostname) debug console=ttyS0,\$(baudrate) nfsrootdebug
setenv bootargs_flash root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS0,38400

#256bit controller:
setenv bootargs_flash root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS0,38400 mem=128M@0xA0000000
setenv bootargs_nfs root=/dev/nfs rw nfsroot=\$(serverip):\$(nfspath),rsize=1024,wsize=1024 ip=\$(ipaddr):::\$(netmask):\$(hostname) debug console=ttyS0,\$(baudrate)  mem=128M@0xA0000000

setenv bootcmd_nfs tftpboot zImage\\;wtags\\;go
setenv bootcmd_flash cp.b 20000 \$(fileaddr) \$(filesize)\\;wtags\\;go


printenv
saveenv

:!: Интерфейс с ip $(ipaddr) должен быть eth0, иначе будет останавливаться с ошибкой:

nfs: server <$(ipaddr)> not responding, still trying

flash images

Boot image zImage from 10.163.2.126 via tftp.

setenv serverip 10.163.2.126
tftpboot zImage
wtags
go

Flash filesystem image.

tftpboot rootfs.jffs2
# По неведомой причине (особенности jffs?) стирать нужно до конца.
erase 1:18-
cp.b $(fileaddr) 220000 $(filesize)

Flash kernel images.

tftpboot zImage
erase 1:4-17
cp.b $(fileaddr) 20000 $(filesize)
setenv bootcmd cp.b 20000 $(fileaddr) $(filesize)\;wtags\;go
reset

Current problems

uboot is not setting MAC address on em5-3 Check out a patch: http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/buildroot/target/u-boot/u-boot-1.3.4-111-apf9328-DM9000.patch?revision=1009&view=markup

Сборка проекта:

Прошивка Xilinx Spartan собирается в Xilinx ISE.

Под Linux:

  1. Запускаем settings64.sh
  2. Запускаем lmgrd (менеджер лицензий).
  3. Запускаем ISE: ISE/bin/lin64/ise
  4. Открываем проект, обычным образом запускам Build.
  5. Запускаем ISE Impact
  6. Переключаем output на xsvf
  7. Выполняем команду «Program»
  8. Output → Stop writing