我正在尝试在i386 PC上移植eCos。
我已经从中下载了预建的redboot.bin http://ecos.sourceware.org/ecos/boards/redbootbins/x86pc/
我将它启动到usb磁盘上,使用 dd conv = sync if / redboot.bin of = / dev / sdb1
从usb启动目标后,我得到“IA2!”目标监视器上的字符串始终,在38400 8n1配置的串行端口上,我收到无。
我尝试使用i386-elf-gdb,但它无法连接到目标并开始打印“忽略错误包,继续......”
我也尝试使用configtool为i386构建redboot,但它只能构建库,当我尝试Tests时,它给出了ERROR:cyg_start()的多重定义
我是eCos的新手,我不知道我做错了什么!!。
答案 0 :(得分:1)
好的,我想出了如何使用RealteK RTL8139 ehternet卡在目标i386 pc上启动Redboot。
在usb stick上安装grub,
mkdir /mnt/USB && mount /dev/sdx1 /mnt/USB
grub-install --force --no-floppy --boot-directory=/mnt/USB/boot /dev/sdx
使用ecosconfig构建Redboot,确保pci总线的数量小于8或更多,如果更多,那么需要从pci.h中的8个增加pci总线范围,我有我的realtek以太网卡在总线10 dev 10上,我不得不将总线增加到11,以便redboot在启动时找到realtek卡。
ecosconfig new pc redboot
configtool ecos.ecc
add common ethernet support
Build Library
在usb上复制redboot.elf。
在grub启动菜单上,
insmod multiboot
multiboot /redboot.elf
boot
多数民众赞成,redboot将使用BOOTP并提供IP地址,然后我可以测试redboot命令,如ip_address,reset,ping,version等。