C语言 将 eCos 移植到 i386



我正在尝试在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,但它无法连接到目标并开始打印"忽略错误数据包,继续..."

我也尝试使用 i386 的配置工具构建 redboot,但它只能构建库,当我尝试测试时,它给出了错误:cyg_start() 的多重定义

我对eCos很陌生,我不知道我做错了什么!.

好的,我想出了如何使用 RealteK RTL8139 ehternet 卡在目标 i386 PC 上启动 Redboot。

  1. 将 GRUB 安装在 U 盘上,

    mkdir /mnt/USB && mount /dev/sdx1 /mnt/USB

    grub-install --force --no-floppy --boot-directory=/mnt/USB/boot /dev/sdx

  2. 使用 ecosconfig 构建 Redboot,确保 pci 总线的数量小于 8 或更多,如果更多,则需要将 pci 总线范围从 pci.h 内的 8 增加到 pci.h,我在总线 10 dev 10 上有我的 realtek 以太网卡,我不得不将总线增加到 11,以便 redboot 在启动时找到 realtek 卡。

    ecosconfig new pc redboot

    configtool ecos.ecc

    add common ethernet support

    Build Library

  3. 在 USB 上复制 redboot.elf。

  4. 在 GRUB 启动菜单上,

    insmod multiboot

    multiboot /redboot.elf

    boot

就是这样,redboot 将使用 BOOTP 并提供 IP 地址,然后我可以测试 redboot 命令,如ip_address、重置、ping、版本等。

相关内容

  • 没有找到相关文章

最新更新