SylixOS嵌入式操作系统|论坛

 找回密码
 注册
搜索
查看: 11085|回复: 8

关于SylixOS运行在linux平台的Qemu问题

[复制链接]

1

主题

6

帖子

37

积分

新手上路

Rank: 1

积分
37
发表于 2014-10-30 12:18:10 | 显示全部楼层 |阅读模式
您好!

我尝试在linux下的qemu运行SylixOS系统,无法引导成功。

qemu源码是:repo.or.cz/qemu/mini2440.git

该版本和SylixOS官方提供的qemu版本是一样的。

但通过运行比对,发现SylixOS提供的qemu已经做出了更改,以适应系统编译出的bspmini2440.bin引导.

主要更改文件猜想为 hw/mini2440.c

故,希望版主能否 公布 更改过的qemu代码,让更多的linux开发者能在linux下测试SylixOS系统!

或者能否 公布 更改的关键引导地址或hw/mini2440.c文件?

谢谢!
回复

使用道具 举报

1

主题

6

帖子

37

积分

新手上路

Rank: 1

积分
37
 楼主| 发表于 2014-10-31 11:19:46 | 显示全部楼层
估计作者是做应用去了,没有要理我们的意思啊
回复 支持 反对

使用道具 举报

17

主题

81

帖子

1079

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1079
发表于 2014-10-31 20:41:32 | 显示全部楼层
我们改过一些东西, 比如修改了 nand flash 的大小, 你可以根据你的 qemu 2440 配置, 修改一下 bsp 就可以了
回复 支持 反对

使用道具 举报

1

主题

6

帖子

37

积分

新手上路

Rank: 1

积分
37
 楼主| 发表于 2014-10-31 20:52:48 | 显示全部楼层
sylixos 发表于 2014-10-31 20:41
我们改过一些东西, 比如修改了 nand flash 的大小, 你可以根据你的 qemu 2440 配置, 修改一下 bsp 就可 ...

谢谢了啦!

今天下午鼓捣好了。

现在已经可以在linux下运行了。

来张图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

17

主题

81

帖子

1079

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1079
发表于 2014-10-31 21:53:55 | 显示全部楼层
nand flash 还是有问题, 再折腾折腾
回复 支持 反对

使用道具 举报

4

主题

9

帖子

151

积分

版主

Rank: 7Rank: 7Rank: 7

积分
151
发表于 2014-11-2 15:05:35 | 显示全部楼层
需要修改qemu-mini2440/hw/mini2440.c文件:
304行加入:
static void mini2440_reset_for_sylixos(void *opaque)
{
    struct mini2440_board_s *s = (struct mini2440_board_s *) opaque;
    int32_t image_size;

    s->cpu->env->regs[15] = 0;

    if (s->kernel) {
        if (strstr(s->kernel, "u-boot.bin")) {
            image_size = load_image(s->kernel, qemu_get_ram_ptr(0x03f80000));
            if (image_size > 0) {
                mini2440_printf("loaded %s (size %x)\n", s->kernel, image_size);
                s->cpu->env->regs[15] = S3C_RAM_BASE | 0x03f80000;
            }
        } else {
            image_size = load_image(s->kernel, qemu_get_ram_ptr(0));
            if (image_size > 0) {
                mini2440_printf("loaded %s (size %x)\n", s->kernel, image_size);
                s->cpu->env->regs[15] = S3C_RAM_BASE;
            }
        }
    }
}

376行:
#if 0
    qemu_register_reset(mini2440_reset, s);
#else
    qemu_register_reset(mini2440_reset_for_sylixos, s);
#endif

403行:
        mini->nand = nand_init(NAND_MFR_SAMSUNG, 0xf1);
        这样可以把Nand Flash大小改为128MB。

        406行:
#if 0
    mini2440_reset(mini);
#else
    mini2440_reset_for_sylixos(mini);
#endif

需要修改qemu-mini2440/gdbstub.c文件:
2347行:
#if 0
            snprintf(gdbstub_device_name, sizeof(gdbstub_device_name),
                     "%s,nowait,nodelay,server", device);
#else /* for sylixos, add ipv4 option, by jiaojinxing1987@gmail.com */
            snprintf(gdbstub_device_name, sizeof(gdbstub_device_name),
                     "%s,nowait,nodelay,server,ipv4", device);
#endif
Qemu的gdb server默认监听ipv6的1234端口,改为ipv4的,否则arm-none-eabi-gdb连接不上。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

37

积分

新手上路

Rank: 1

积分
37
 楼主| 发表于 2014-11-3 15:23:39 | 显示全部楼层
风城少主 发表于 2014-11-2 15:05
需要修改qemu-mini2440/hw/mini2440.c文件:
304行加入:
static void mini2440_reset_for_sylixos(void *o ...

好的,非常的感谢!
回复 支持 反对

使用道具 举报

4

主题

9

帖子

151

积分

版主

Rank: 7Rank: 7Rank: 7

积分
151
发表于 2014-11-3 21:14:21 | 显示全部楼层
RTOS 发表于 2014-11-3 15:23
好的,非常的感谢!

不客气
回复 支持 反对

使用道具 举报

0

主题

7

帖子

45

积分

新手上路

Rank: 1

积分
45
发表于 2015-8-11 14:26:10 | 显示全部楼层
都是大神啊。。膜拜!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|Acoinfo Inc. All Rights Reserved. ( 京ICP备15059934号

GMT+8, 2024-2-23 22:01 , Processed in 0.024003 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表