====== ЕМ-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 ==== system em5 port com1-38400 time any 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: - Запускаем settings64.sh - Запускаем lmgrd (менеджер лицензий). - Запускаем ISE: ISE/bin/lin64/ise - Открываем проект, обычным образом запускам Build. - Запускаем ISE Impact - Переключаем output на xsvf - Выполняем команду "Program" - Output -> Stop writing