Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
equipment:oea-euro-miss:em5 [2014/11/06 14:24] sergey |
equipment:oea-euro-miss:em5 [2025/03/27 21:34] (текущий) ryzhikov |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== Контроллер ЕМ5 ====== | + | ====== ЕМ-5 Контроллер ====== |
| Строка 5: | Строка 5: | ||
| com: 38400 8N1 | com: 38400 8N1 | ||
| + | |||
| + | miniterm /dev/ttyUSB0 38400 --raw | ||
| + | |||
| <code> | <code> | ||
| 0x00000000 : "Bootloader" | 0x00000000 : "Bootloader" | ||
| 0x00020000 : "Kernel" | 0x00020000 : "Kernel" | ||
| - | 0x00160000 : "Filesystem" | + | 0x00220000 : "Filesystem" |
| - | в новой версии: | ||
| - | 0x00000000: "Bootloader" | ||
| - | 0x00020000: "Kernel" | ||
| - | 0x002A0000: "Filesystem" | ||
| </code> | </code> | ||
| Строка 37: | Строка 36: | ||
| </file> | </file> | ||
| - | ==== Параметры uboot ==== | + | === Компиляция === |
| + | Исходные коды 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 === | ||
| <code> | <code> | ||
| Строка 53: | Строка 76: | ||
| setenv hostname pandapc01 | 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_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_nfs tftpboot zImage\\;wtags\\;go | ||
| setenv bootcmd_flash cp.b 20000 \$(fileaddr) \$(filesize)\\;wtags\\;go | setenv bootcmd_flash cp.b 20000 \$(fileaddr) \$(filesize)\\;wtags\\;go | ||
| - | setenv bootargs_flash root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS0,38400 | + | |
| printenv | printenv | ||
| Строка 74: | Строка 103: | ||
| </code> | </code> | ||
| - | Flash kernel image. | + | Flash filesystem image. |
| <code> | <code> | ||
| - | tftpboot zImage | + | tftpboot rootfs.jffs2 |
| - | erase 1:4-13 | + | # По неведомой причине (особенности jffs?) стирать нужно до конца. |
| - | или | + | erase 1:18- |
| - | erase 1:8-55 | + | cp.b $(fileaddr) 220000 $(filesize) |
| - | cp.b $(fileaddr) 80000 $(filesize) | + | |
| - | reset | + | |
| </code> | </code> | ||
| - | Flash filesystem image. | + | Flash kernel images. |
| <code> | <code> | ||
| - | tftpboot rootfs.arm.jffs2 | + | tftpboot zImage |
| - | # По неведомой причине (особенности jffs?) стирать нужно до конца. | + | erase 1:4-17 |
| - | erase 1:14- | + | cp.b $(fileaddr) 20000 $(filesize) |
| - | cp.b $(fileaddr) 160000 $(filesize) | + | setenv bootcmd cp.b 20000 $(fileaddr) $(filesize)\;wtags\;go |
| - | или | + | |
| - | erase 1:56- | + | |
| - | cp.b $(fileaddr) 380000 $(filesize) | + | |
| reset | reset | ||
| </code> | </code> | ||
| + | |||
| + | |||
| ==== Current problems ==== | ==== 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 | ||
| - | Network crashes when trying to transfer large file from rootfs (mtd device) to nfs-mounted folder. | ||
| - | When trying dd /dev/zero the same way, all seems to be fine. | ||
| - | <code> | ||
| - | WARNING: at net/sched/sch_generic.c:219 () | ||
| - | NETDEV WATCHDOG: eth0 (dm9000): transmit timed out | ||
| - | Modules linked in: | ||
| - | Function entered at [<c01f168c>] from [<c0031178>] | ||
| - | Function entered at [<c0031120>] from [<c018f7f8>] | ||
| - | r3:c3889000 r2:c0219e14 | ||
| - | r7:00000014 r6:00000001 r5:c3889000 r4:c0264b88 | ||
| - | Function entered at [<c018f678>] from [<c003b310>] | ||
| - | Function entered at [<c003b174>] from [<c0036a14>] | ||
| - | Function entered at [<c00369b0>] from [<c0036ac4>] | ||
| - | Function entered at [<c0036a7c>] from [<c001b048>] | ||
| - | Function entered at [<c001b000>] from [<c001b898>] | ||
| - | Exception stack(0xc0233f48 to 0xc0233f90) | ||
| - | 3f40: 00000001 c384a940 00000000 60000013 c001ce0c c0232000 | ||
| - | 3f60: c001ce0c c024af28 a001705c 69054117 a0017028 c0233f9c c0233fa0 c0233f90 | ||
| - | 3f80: c001ce50 c001ce5c 60000013 ffffffff | ||
| - | r6:04000000 r5:c0233f7c r4:ffffffff | ||
| - | Function entered at [<c001ce0c>] from [<c001cdd8>] | ||
| - | Function entered at [<c001cd9c>] from [<c01f00bc>] | ||
| - | r7:c0235bac r6:c0018da8 r5:c024aef0 r4:c0232000 | ||
| - | Function entered at [<c01f004c>] from [<c000896c>] | ||
| - | r4:c025f17c | ||
| - | Function entered at [<c0008718>] from [<a0008034>] | ||
| - | r6:c00191ac r5:c024af8c r4:0000397d | ||
| - | ---[ end trace bb1fd0722dd5fe86 ]--- | ||
| - | eth0: link down | ||
| - | </code> | ||