基于Qemu的RTEMS仿真平台搭建

RTEMS实时操作系统精要(1)-简介 最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time Executive for Military Systems) 1、RTEMS(多处理系统实时可执行体)是一个为嵌入式系统而设计的自由的开源实时操作系统。 在缩写词RTEMS取其现在的含义之前,初始时代表导弹系统实时可执行体,然后变成了军用系统实时可执行体。 RTEMS曾被移殖到多个以不同类型的中央处理器(CPU)为基础的计算机系统上。 阅读详情

(说明:这篇文章是我的朋友写的,他在我的博客上首次发表,姑且算为原创吧)

 

基于Qemu的RTEMS仿真平台搭建

 

1 概述

此文档描述了在Windows Qemu虚拟机下建立RTEMS仿真测试环境的过程。
QEMU是一个开源的虚拟机程序,主要应用在Linux系统中,使用命令行方式进行操作。QEMU在Windows下有移植版本,并且技术爱好者为Windows的QEMU提供了免费UI界面,使其更符合Windows用户的软件操作习惯。这个UI程序称为QEMU Manager,平均每年更新一次,目前最新版本号为7.0。用户可以从官网http://www.davereyn.co.uk/获取QEMU Manager的相关信息。

本文构造的RTEMS仿真平台使用到了如下资源:
1.    Win7操作系统;
2.    QEMU Manager 7.0安装程序;
3.    network-demos-4.9.4.tar.bz2(可选,用于平台功能验证)。

2 QEMU虚拟机的安装与设置

2.1 下载安装程序

在这份文档示例中使用的是当前最新的QEMU Manager 7.0安装版程序,程序来源于http://www.davereyn.co.uk/download.htm。此程序下集成了QEMU 0.11.1与相应的加速器KQemu。

2.2 安装QEMU Manager

    安装过程相对简单,指定好安装路径即可,没有需要特别留意的地方。
 
图1 QEMU Manager安装界面

 
图2 初次运行QEMU Manager配置界面

2.3 配置QEMU Manager

2.3.1 添加NAT网卡

    QEMU Manager主界面下选择“Tools->Configure TAP Network Devices”
 
图3 添加虚拟网卡界面

第一次添加NAT网卡时系统可能会要求安装特定驱动,允许安装即可。
添加成功后Windows系统会生成一个新网卡配置项--“本地连接”,为了方便以后应用,用户可以重新指定这个新网卡名称,文档示例中将此NAT网卡重命名为“qemu_tap”。

2.3.2 添加虚拟机

QEMU Manager主界面下选择“VM->New Virtual Machine”,在这里需要指定新虚拟机名、虚拟机使用的CPU类型、内存与硬盘容量配置。根据需要,示例中的新虚拟机命名为“rtems_pc386”,CPU类型为“Standard x86”,内存为256M,硬盘为128M。

 
图4 添加虚拟机界面1

 
图5 添加虚拟机界面2
 
图6 添加虚拟机界面3

    添加成功一个新虚拟机后会出现如下界面:
 
图7 虚拟机配置界面

2.4 配置虚拟机

2.3节新创建的虚拟机使用默认工作参数。一般来说,在不使用网络功能的前提下,RTEMS自带pc386 BSP已经可以在默认的虚拟机配置中正常运行。如果需要打开网络功能则还应该对虚拟机参数做适当修改。
示例使用了RTEMS源码包自带的NE2000网卡驱动,所作参数修改如下:修改系统总线类型、选择网卡类型、配置网络参数。

2.4.1 修改系统总线类型

由于RTEMS自带的NE2000驱动无法在PCI总线PC中运行,所以要将“Machine Type”修改为ISA类型。

 
图8 选择“Machine Type”界面

 
图9 配置“CPU Type”界面

2.4.2 选择网卡类型

要确保“Hardware”配置界面中的“Enable Networking”参数为“Yes”,否则配置界面不会显示网卡选择项。
 

双击“Hardware”配置界面中的“Network Card 1”项,需要选择网卡类型、VLAN类型、网卡MAC地址、指定TAP网络适配器。其中,选择“NE2000 ISA”网卡,VLAN类型为“Tap Networking”, MAC地址可以使用默认值或自己重新指定,TAP适配器选择2.3节中创建的新网卡名,本例使用的是“qemu_tap”。


图10 “Network Card”配置界面







2.4.3 配置NAT网络参数

1.在Windows“网络连接”界面中找到“qemu_tap”网卡。

 
图11 Windows“网络连接”界面

2.为NAT网卡配置IP。注意,这里设置的NAT网卡IP地址可以与宿主机上的真实物理网卡的地址不在一个段内;而是与虚拟机中NE2000网卡设置的网络地址在一个段内就可以了。
示例使用的物理主机网卡IP为192.168.2网段,配置的NAT网卡IP为192.168.10网段。


图12 修改NAT网卡IP界面

3 网络例程编译

经过以上配置之后QEMU虚拟机的环境已经搭建完毕,但想要正常运行RTEMS程序则还需要对相关应用代码做修改。
文档示例使用的netdemo应用程序来源于RTEMS官方提供的程序包network-demos-4.9.4.tar.bz2。解压network-demos-4.9.4.tar.bz2,在解压后的文件夹中有一个名为networkconfig.h的文件,所有的修改都在此文件中完成。

3.1 定义网卡类型

    RTEMS 的i386 BSP 默认安装的是DEC21140 网卡,而QEMU 中仿真的
是NE2000 网卡,所以要重新定义相关的宏:

#define  RTEMS_BSP_NETWORK_DRIVER_NAME
                   BSP_NE2000_NETWORK_DRIVER_NAME
#define  RTEMS_BSP_NETWORK_DRIVER_ATTACH
                   BSP_NE2000_NETWORK_DRIVER_ATTACH




3.2 配置网卡MAC地址

这里设置的物理地址一定要与2.4.2节中设置的QEMU NAT网卡MAC值一致。

/*
 * Define RTEMS_SET_ETHERNET_ADDRESS if you want to specify the
 * Ethernet address here.  If RTEMS_SET_ETHERNET_ADDRESS is not
 * defined the driver will choose an address.
 */
static char ethernet_address[6] = { 0x52, 0x54, 0x00, 0x38, 0xFE, 0x22 };







3.3 配置其他网络参数

在netdriver_config结构体中配置本地IP、网卡IO地址、中断号和所在槽号。其中IP 地址和IP 掩码可以根据自己的需要设置。注意,IP 地址必须与宿主机中TAP 网卡的IP 地址在同一个段内,才能实现虚拟机下RTEMS 与宿主机的网络通信。
关键是最后三个设置参数。这三个参数是在例程的基础上添加上去的。分别设置的是网卡的IO 地址、中断号和所在插槽号。如果在这个定义中省略这三个参数,则RTEMS 采用默认值。而默认NE2000 网卡IO 地址是0x240,中断号是5,与QEMU 虚拟机仿真的网卡不符,所以必须按照上述参数进行设置。

/*
 * Default network interface
 */
static struct rtems_bsdnet_ifconfig netdriver_config = {
        RTEMS_BSP_NETWORK_DRIVER_NAME,          /* name */
        RTEMS_BSP_NETWORK_DRIVER_ATTACH,        /* attach function */
#ifdef RTEMS_USE_LOOPBACK
        &loopback_config,               /* link to next interface */
#else
        NULL,                           /* No more interfaces */
#endif
        "192.168.10.2",                 /* IP address(自行配置) */
        "255.255.255.0",                /* IP net mask */
#endif /* !RTEMS_USE_BOOTP */
        ethernet_address,               /* Ethernet hardware address */
        0,                              /* ignore broadcast */
        0,                              /* mtu */
        0,                              /* rbuf_count */
        0,                              /* xbuf_count */
        0x300,                          /* port (配置为0x300) */
        9,                              /* irq  (配置为9)*/
        0,                              /* bpar (配置为0)*/
        NULL                            /* driver control pointer */
};


在rtems_bsdnet_config结构体中配置网关等参数:

/*
 * Network configuration
 */
struct rtems_bsdnet_config rtems_bsdnet_config = {
        &netdriver_config,
#if (defined (RTEMS_USE_BOOTP))
        rtems_bsdnet_do_bootp,
#else
        NULL,
#endif
        8,                              /* Default network task priority */
        256 * 1024,                     /* Default mbuf capacity */
        256 * 1024,                     /* Default mbuf cluster capacity */
        "leo",                          /* Host name */
        "leo",                          /* Domain name */
        "192.168.10.1",                 /* Gateway */
        "192.168.10.1",                 /* Log host */
        {"192.168.10.1"  },             /* Name server(s) */
        {"192.168.10.1"  },             /* NTP server(s) */

        0,                      /* efficiency */
        0,                      /* udp TX buffer */
        0,                      /* udp RX buffer */
        0,                      /* tcp TX buffer */
        0,                      /* tcp RX buffer */
};


    经过上述设置之后就可以正确编译使用RTEMS 的网络例程了。文档中的Netdemo 例程实现了一个Telnet echo server 功能。也就是说,其它机器(客户端)只要执行telnet 命令与该运行该程序的机器(服务器)的24742 端口建立了连接,则任何在客户端机器键盘上键入的字符,都会被服务器接收并且回传给客户端。这样,在客户端机器键盘上按下“a”键,其屏幕上就会显示“aa”两个字符,前一个是对键盘的响应,后一个就是服务器回传字符的显示。

附录A 完整networkconfig.h

以下为例程使用的networkconfig.h配置文件完整内容,用户可以拷贝此文件内容,稍作修改即可使用。
/*
 * Network configuration for MPC8313ERDB in RTEMS Lab
 *
 ************************************************************
 * EDIT THIS FILE TO REFLECT YOUR NETWORK CONFIGURATION     *
 * BEFORE RUNNING ANY RTEMS PROGRAMS WHICH USE THE NETWORK! *
 ************************************************************
 *
 *  $Id: networkconfig-mpc8313erdb.h,v 1.1 2008/08/21 16:40:37 joel Exp $
 */

#ifndef _RTEMS_NETWORKCONFIG_H_
#define _RTEMS_NETWORKCONFIG_H_

/*
 *  The following will normally be set by the BSP if it supports
 *  a single network device driver.  In the event, it supports
 *  multiple network device drivers, then the user's default
 *  network device driver will have to be selected by a BSP
 *  specific mechanism.
 */

/* #define RTEMS_USE_BOOTP */

#include <bsp.h>

/*
 * Define RTEMS_SET_ETHERNET_ADDRESS if you want to specify the
 * Ethernet address here.  If RTEMS_SET_ETHERNET_ADDRESS is not
 * defined the driver will choose an address.
 */
static char ethernet_address[6] = { 0x52, 0x54, 0x00, 0x38, 0xFE, 0x22 };

#ifdef RTEMS_USE_LOOPBACK
/*
 * Loopback interface
 */
extern void rtems_bsdnet_loopattach();
static struct rtems_bsdnet_ifconfig loopback_config = {
        "lo0",                          /* name */
        rtems_bsdnet_loopattach,        /* attach function */
        NULL,                           /* link to next interface */
        "127.0.0.1",                    /* IP address */
        "255.0.0.0",                    /* IP net mask */
};
#endif

#define RTEMS_BSP_NETWORK_DRIVER_NAME   BSP_NE2000_NETWORK_DRIVER_NAME
#define RTEMS_BSP_NETWORK_DRIVER_ATTACH BSP_NE2000_NETWORK_DRIVER_ATTACH

/*
 * Default network interface
 */
static struct rtems_bsdnet_ifconfig netdriver_config = {
        RTEMS_BSP_NETWORK_DRIVER_NAME,          /* name */
        RTEMS_BSP_NETWORK_DRIVER_ATTACH,        /* attach function */

#ifdef RTEMS_USE_LOOPBACK
        &loopback_config,               /* link to next interface */
#else
        NULL,                           /* No more interfaces */
#endif

#if 0
        NULL,                           /* BOOTP supplies IP address */
        NULL,                           /* BOOTP supplies IP net mask */
#else
        "192.168.10.2",                 /* IP address */
        "255.255.255.0",                /* IP net mask */
#endif /* !RTEMS_USE_BOOTP */

        ethernet_address,               /* Ethernet hardware address */
        0,                              /* ignore broadcast */
        0,                              /* mtu */
        0,                              /* rbuf_count */
        0,                              /* xbuf_count */
        0x300,                          /* port */
        9,                              /* irq */
        0,                              /* bpar */
        NULL                            /* driver control pointer */
};

/*
 * Network configuration
 */
struct rtems_bsdnet_config rtems_bsdnet_config = {
        &netdriver_config,

#if (defined (RTEMS_USE_BOOTP))
        rtems_bsdnet_do_bootp,
#else
        NULL,
#endif

        8,                              /* Default network task priority */
        256 * 1024,                     /* Default mbuf capacity */
        256 * 1024,                     /* Default mbuf cluster capacity */
        "leo",                /* Host name */
        "leo",         /* Domain name */
        "192.168.10.1",         /* Gateway */
        "192.168.10.1",          /* Log host */
        {"192.168.10.1"  },      /* Name server(s) */
        {"192.168.10.1"  },      /* NTP server(s) */
        0,                      /* efficiency */
        0,                      /* udp TX buffer */
        0,                      /* udp RX buffer */
        0,                      /* tcp TX buffer */
        0,                      /* tcp RX buffer */
};

/*
 * For TFTP test application
 */
#if (defined (RTEMS_USE_BOOTP))
#define RTEMS_TFTP_TEST_HOST_NAME "BOOTP_HOST"
#define RTEMS_TFTP_TEST_FILE_NAME "BOOTP_FILE"
#else
#define RTEMS_TFTP_TEST_HOST_NAME "XXX.YYY.ZZZ.XYZ"
#define RTEMS_TFTP_TEST_FILE_NAME "tftptest"
#endif

/*
 * For NFS test application
 *
 * NFS server/path to mount and a directory to ls once mounted
 */
#define RTEMS_NFS_SERVER      "192.168.1.210"
#define RTEMS_NFS_SERVER_PATH "/home"
#define RTEMS_NFS_LS_PATH     "/mnt/nfstest"

#endif /* _RTEMS_NETWORKCONFIG_H_ */

 

告别繁琐命令!用QEMU Manager在Win11上图形化安装银河麒麟V10 ARM版虚拟机 本文详细介绍了如何在Win11上使用QEMU Manager图形化工具轻松安装银河麒麟V10 ARM版虚拟机,告别传统繁琐的命令行操作。通过整合QEMU生态组件、优化虚拟机配置和提供实用技巧,帮助用户高效搭建国产操作系统环境,特别适合开发者和技术爱好者体验ARM架构的银河麒麟系统。 阅读详情

相关推荐

RTEMS (Real-Time Executive for Multiprocessor Systems) 系统详解

凭借其优化的调度器、丰富的同步原语和对多种硬件架构的支持,RTEMS 在航空航天、国防、医疗设备等领域发挥着至关重要的作用。后来,随着项目的成熟和开源化,更名为 RTEMS。然而,需要注意的是,即使使用 POSIX API,底层实现仍然是 RTEMS 的实时机制,其行为可能与通用操作系统上的 POSIX 有细微差别,开发者需要理解 RTEMS 的实时特性。与通用操作系统的单体式内核不同,RTEMS 的内核非常精简,避免了复杂的动态功能(如运行时加载模块、虚拟内存),以确保可预测性和实时性。

bulita great world 1082

【亲测免费】 QEMU Manager 使用与安装指南

QEMU Manager 使用与安装指南 项目目录结构及介绍 由于提供的链接指向的是一个假设的GitHub仓库(实际上该仓库不存在,这里基于通用规范构建说明),我们通常可以预期一个开源软件如QEMU Manager在GitHub上的目录结构是组织有序的。以下是一个典型的结构示例: QEMU-Manager/ │ ├── README.md # 项目简介和快速入门指南 ├── LIC...

gitblog_00558的博客 1212

RTEMS介绍-中文

中文介绍了RTEMS,包括简介,性能,支持的处理器,系统架构,主要的几个版本合入特性,代码获取方式,系统覆盖测试,shell,任务调度策略,同步与互斥方法以及虚拟化

Windows 7启动Qemu模拟Mipsel, Mips, ARM, Sparc, Cold fire, Cris系统编译环境

Mipsel, Mips, ARM, Sparc, Cold fire, Cris这些编译环境可以在Linux下通过Qemu模拟器来模拟, 例如在Ubuntu下用Qemu模拟器. Windows平台下其实也有Qemu模拟器, 就是Qemu Manager. Qemu Manager目前的7.0版已经兼容Windows 7系统. e网软摘已经成功的用Qemu Manager模拟的Mipsel环

4319

VLSI数字信号处理系统——第九章滤波器和变换中的算法强度缩减

[课程学习] VLSI数字信号处理系统——第九章滤波器和变换中的算法强度缩减

夏风喃喃的博客 1604

Palantir解密:说人话,到底什么是“本体”?

笔者2018年在云计算公司开展政企数字化专项时,便意识到全面数字化进程背后存在大量未知领域,尤其是未来数字世界的底层架构如何构建这一关键问题。可惜因为种种原因,连那几个小专项最终都未能落地,也就无从深入了。近期看了很多有关Palantir的材料,倒觉得这像是新硅谷(区别于比尔盖茨、扎克伯格等主导的硅谷时代)交出的一份关于“数字世界底层架构”的答案,至于这个答案是否成立、有没有更优解、我们本土对标的版本是什么,可能都还待看。《Palantir解密》系列尝试通过解析Palantir,来系统回答这一问题。

SZSDQJC的博客 2158

QEMU 仿真 rtems pc386

(本文原创,转载注明出处,谢谢) 有些朋友,需要用QEMU仿真x86的RTEMS。以前写过一些文章,但还是有些朋友在细节上遇到了困难。我这两天抽了点时间,把这些细节梳理了一下,给需要的朋友们。这里需要朋友先看看这篇文章,先把QEMU的环境搭建好。 基于Qemu的RTEMS仿真平台搭建 我这里选择的是rtems 4.9.5,当然,朋友们...

weixin_33958366的博客 171

机器学习-深嵌交叉验证(Nested Cross-Validation)

Section I: Code and Analyses 第一部分:代码 from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from...

Santorinisu Blogs 2716

RTEMS 介绍

<br />为什么需要操作系统?<br /> <br />1.计算机是由CPU、内存、磁盘、显卡、声卡等许许多多设备组成的,而且这些设备的厂商众多,品种繁多,而且不同厂商生产的同种设备虽然完成同种功能,但是具体细节却存在千差万别;<br /><br /> 2.为了正确地管理和使用这些设备来实现具体的应用,这样程序员就得了解和掌握各种设备的工作原理。而且对于同种设备,由于不同的硬件厂商在实现细节上的差异使得程序员再次陷入了复杂的硬件控制的深渊。<br /> <br />3.在硬件的基础上加载一层软件来管理整

雪松's RTEMS 2万+

10X Genomics单细胞数据分析实战:从FASTQ到UMAP可视化的完整流程

本文详细介绍了10X Genomics单细胞数据分析的完整流程,从FASTQ原始数据处理到UMAP可视化。通过Seurat工具包实现数据质量控制、标准化、降维聚类和细胞注释,特别适合生物信息学新手学习。文章包含可复现的代码示例和常见问题解决方案,帮助研究者快速掌握单细胞测序数据分析的核心技术。

weixin_30952535的博客 535

自制非接触式静电探测仪:从振动电容原理到微弱信号检测实践

微弱信号检测是电子测量领域的核心挑战之一,尤其在需要避免物理接触或防止干扰的场景中。其基本原理在于将难以直接获取的微小物理量(如电流、电压)通过传感器转换为电信号,再经过放大、滤波等处理进行提取。锁相放大技术是解决这一问题的关键手段,它利用参考信号与目标信号的同步性,从强噪声背景中恢复出有效信息,极大提升了信噪比和测量灵敏度。这项技术的工程价值在于实现了对纳安级电流、微伏级电压等高难度参数的可靠测量。在静电防护、材料表面电位分析、生物电信号采集等应用场景中,非接触式测量需求广泛。本文聚焦的基于振动电容原理的

weixin_32349093的博客 274

RTEMS线程调度算法(RMS)详解

RTEMS是以线程为基本调度单位的,调度算法基于优先级的抢占式线程调度,支持256个线程优先级。当然RTEMS值hi创建同等优先级线程,相同优先级的线程采用时间片轮转调度。调度器寻找下一个最高优先级就绪线程的时间是o(1),这是实时性得到保障的一个关键机制。 为了增强对用户应用需求的可扩展性,rtems实现了基于线程的任务扩展机制,可在创建任务、上下文切换或者删除任务等系统事件发生时插入用户指定

hahachenchen789的博客 3066

Linux系统中u-boot启动流程分析(详解)

代码部分,具体如下;

嵌入式技术开发 1992

QEMU-Manager 使用指南

QEMU-Manager 使用指南 项目介绍 QEMU-Manager 是一个针对 QEMU 的图形界面管理工具,旨在简化虚拟机配置、运行和管理的过程,使其对普通用户更加友好。QEMU 是一个强大的处理器模拟器,支持在一台物理主机上运行多种不同的操作系统,包括Windows和Linux。通过动态翻译技术,它能够实现高效的虚拟化执行环境。QEMU-Manager通过直观的界面,降低了使用QEMU的门...

gitblog_00871的博客 1197

【YOLO部署Android安卓手机APP】YOLO11部署到安卓实时目标检测识别——以火焰烟雾目标检测识别举例(可自定义更换其他目标)

本项目基于YOLOv11部署到手机APP实现对火焰烟雾的检测识别,当然,以此你可以按照本项目开发步骤扩展更换为其他目标进行检测,例如更换为车牌、手势、人脸面部活动、人脸表情、火焰烟雾、行人、口罩、行为、水果、植物、农作物等等部署手机APP进行检测。本文为详细设计/配置文档,包含完整所需的环境配置搭建,项目工程配置步骤等,手把手记录使用pycharm和Android studio的工程开发过程,实现YOLO部署到安卓。实战开发,亲测无误。演示视频训练了50轮进行了展示(为演示,训练轮数较少,你可以训练轮数多些

嵌入式阿齐Archie 1万+

45、概率与模糊性:粗糙事件与模糊事件概率的探索

本文探讨了概率理论与模糊性理论在处理现实世界不确定性中的应用,重点分析了模糊事件和粗糙事件的概率定义、性质及其条件概率。同时,介绍了近似贝叶斯网络分类器在信息系统中的应用,以及如何通过概率决策约简提高分类效率。这些方法为处理不确定信息提供了灵活的工具,并在决策和数据分析中具有重要价值。

ik67890123的博客 135

SELinux安全操作系统---RTEMS简介

本项目在基于RTEMS实时操作系统,将SElinux的强制访问机制移植到实时操作系统中,实现一个嵌入式强制访问控制实时操作系统。 RTEMS, 即: 实时多处理器系统(Real Time Executive for Multiprocessor Systems),是一个开源的无版税实时嵌入操...

chuoceng6947的博客 725

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【亲测免费】 QEMU-Manager:Mac上的QEMU图形化管理利器

QEMU-Manager:Mac上的QEMU图形化管理利器 在探索虚拟化的浩瀚世界时,找到一个既强大又易用的工具至关重要。今天,我们要向您隆重推荐QEMU-Manager——一款专为macOS设计的QEMU图形前端,由Swift语言精心打造。通过这篇文章,我们将深入挖掘QEMU-Manager的魅力,展示它如何简化您的虚拟机管理工作,以及为什么这应该成为每一个macOS用户的必备工具。 项目介绍 ...

gitblog_00708的博客 1762

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

RTEMS学习笔记

RTEMS

Ning Yang 的博客 1009

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

rtems 5.3 qemu realview_pbx_a9 环境搭建:bsp 编译

rtems 5.3 qemu realview_pbx_a9 环境搭建:bsp 编译

坚韧与专注 1275

RTEMS系统从零开始

RTEMS从零开始

星星之火 可以燎原 722

基于QEMU的嵌入式模拟开发环境搭建

本文档主要介绍了如何编译安装QEMU仿真软件、安装交叉编译环境、编译及用QEMU加载调试u-boot、编译及用QEMU加载Linux内核,如何制作Linux跟文件系统及用通过QEMU用SD卡、tftp、NFS、flash等不同的方式加载u-boot、Linux内核、Linux根文件系统。并在Linux根文件系统正常加载给出了一个简单的测试程序的编译、执行过程。

FuShaofeng的博客 4840

RTEMS 4.9.5 在 MINI2440 QEMU的移植

在看本文之前,大家还是要先补习一下看看什么是RTEMS。对RTEMS感兴趣,源于我对ecos的microwindows的移植,看到里面有这个字符串,等我从网络搜索到的时候,才发现是一个评分比vxwork还高的嵌入式系统,对于RTEMS的学习本人还在继续。本文只是入门级别的移植文章,走运的是基本移植成功。我只是通过patch的方式罗列了一下移植过程,很多技术细节还需要和网友们一起推敲,欢迎大家质疑,我会及时回复。1. 移植怎么开始既然是移植,就是把其他地方生长好的枝叶剪裁并且嫁接到新的地方。有了ecos的经验

嵌入式虚拟系统实验室 3247

RTEMS项目之qemu的使用

RTEMS项目之qemu的使用

qq_43678231的博客 563

浅谈windows下基于Qemu Manager 虚拟机安装 linux 等操作系统的方法

浅谈windows下基于Qemu Manager 虚拟机安装 linux 等操作系统的方法 --马志晶 摘要 QEMU 是一套可以在Windows 操作系统中仿真出另一套操作系统的仿真软件。因为它可以在 系统中仿真出一颗虚拟的CPU,然后将要仿真的操作系统交给这颗虚拟CPU去处...

weixin_34292287的博客 1298
上一篇: 闲聊嵌入式职业发展(1)
下一篇: RTEMS文件系统(4):系统调用开发信息(上)
coolbacon
博客等级 码龄22年 1766粉丝 139原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值