-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathproduct-eosim.html
More file actions
310 lines (304 loc) · 29.1 KB
/
Copy pathproduct-eosim.html
File metadata and controls
310 lines (304 loc) · 29.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
<!DOCTYPE html>
<html lang="en"><head>
<meta content="width=device-width, initial-scale=1" name="viewport"/>
<meta content="EmbeddedOS Foundation — EoSim — Embedded Systems Simulator | EmbeddedOS. Open-source embedded OS, neural interfaces, and AI-powered edge computing." name="description"/>
<meta charset="utf-8"/><meta content="width=device-width, initial-scale=1.0" name="viewport"/><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;600;700&display=swap" rel="stylesheet"/><link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;600;700&display=swap" rel="stylesheet"/><meta content="EoSim is the EoS simulator: 52+ platforms, QEMU + Renode + HIL bridges, scriptable scenarios, and CI integration. Python." name="description"/><meta content="EmbeddedOS, EoS, EoSim, Python, embedded AI, open source" name="keywords"/><meta content="#0066cc" name="theme-color"><meta content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1" name="robots"><meta content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1" name="googlebot"/><meta content="index,follow" name="bingbot"/><meta content="general" name="rating"/><meta content="telephone=no" name="format-detection"/><meta content="en_US" property="og:locale"/><meta content="EmbeddedOS Research Foundation — open-source embedded AI systems stack" property="og:image:alt"/><meta content="@EmbeddedOS_ORG" name="twitter:site"/><meta content="@EmbeddedOS_ORG" name="twitter:creator"/><link href="rss.xml" rel="alternate" title="EmbeddedOS Newsroom" type="application/rss+xml"><link href="manifest.json" rel="manifest"/><meta content="EoSim — Embedded Systems Simulator — EmbeddedOS" property="og:title"/><meta content="EoSim is the EoS simulator: 52+ platforms, QEMU + Renode + HIL bridges, scriptable scenarios, and CI integration. Python." property="og:description"/><meta content="website" property="og:type"/><link href="https://www.embeddedos.org/product-eosim" rel="canonical"/><link href="img/logo.svg" rel="apple-touch-icon"/><meta content="https://www.embeddedos.org/product-eosim" property="og:url"/><meta content="https://www.embeddedos.org/img/og-cover.svg" property="og:image"/><meta content="1200" property="og:image:width"/><meta content="630" property="og:image:height"/><meta content="EmbeddedOS" property="og:site_name"/><meta content="summary_large_image" name="twitter:card"/><meta content="EoSim — Embedded Systems Simulator — EmbeddedOS" name="twitter:title"/><meta content="EoSim is the EoS simulator: 52+ platforms, QEMU + Renode + HIL bridges, scriptable scenarios, and CI integration. Python." name="twitter:description"/><meta content="https://www.embeddedos.org/img/og-cover.svg" name="twitter:image"/><link href="favicon.svg" rel="icon" type="image/svg+xml"/><title>EoSim — Embedded Systems Simulator | EmbeddedOS</title>
<link href="css/style.v7.css" rel="stylesheet"/> <script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "EoSim",
"applicationCategory": "DeveloperApplication",
"operatingSystem": "EmbeddedOS",
"description": "EoSim is the EoS simulator — a unified harness over QEMU, Renode, and a hardware-in-the-loop bridge that lets you boot, debug, and CI-test EoS firmware against 52+ virtual platforms without touching real silicon.",
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
"url": "https://www.embeddedos.org/product-eosim",
"image": "https://www.embeddedos.org/img/og-cover.svg",
"publisher": { "@type": "Organization", "name": "EmbeddedOS Research Foundation", "url": "https://www.embeddedos.org" }
}
</script> <script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.embeddedos.org/" },
{ "@type": "ListItem", "position": 2, "name": "Ecosystem", "item": "https://www.embeddedos.org/ecosystem" },
{ "@type": "ListItem", "position": 3, "name": "EoSim", "item": "https://www.embeddedos.org/product-eosim" }
]
}
</script>
<link href="https://www.embeddedos.org/product-eosim.html" rel="canonical"/>
</link></meta></meta> <link rel="stylesheet" href="/css/theme-light.css"/>
<script defer src="/js/site-chrome.js"></script>
<style>
/* ── Upgraded nav: mega-menu, donate button, logo-sub ── */
.logo-sub { font-size: 0.6rem; font-weight: 600; letter-spacing: 0.08em; color: var(--text-muted); margin-left: 4px; display: block; line-height: 1; }
.nav-donate-btn { background: #3fb950 !important; color: #fff !important; border: none !important; font-weight: 700; margin-left: 0.5rem; }
.nav-donate-btn:hover { background: #56d364 !important; box-shadow: 0 0 16px rgba(63,185,80,0.4); }
.nav-mega { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 0; min-width: 600px; padding: 1rem !important; }
.mega-col { padding: 0 1rem; }
.mega-col + .mega-col { border-left: 1px solid var(--border-color); }
.mega-col-title { font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-muted); margin-bottom: 0.5rem; }
.mega-col a { display: block; padding: 0.3rem 0.4rem; border-radius: 4px; font-size: 0.85rem; }
/* ── Social GitHub icon ── */
.social-github { color: var(--text-secondary) !important; }
.social-github:hover { color: var(--text-primary) !important; }
/* ── Footer Apache badge ── */
.badge-blue { background: var(--blue-dim); color: var(--blue); }
</style>
</head><body class="page-product-eosim"><a class="skip-link" href="#main-content">Skip to main content</a><header class="navbar">
<div class="brand-bar">
<div class="nav-container">
<a aria-label="EmbeddedOS Home" class="logo" href="/">
<div class="logo-icon">EoS</div>
<span class="logo-text">Embedded<span>OS</span></span>
</a>
<nav aria-label="Main navigation">
<ul class="nav-links" id="nav-links" role="menubar">
<li role="none"><a href="news.html" role="menuitem">News</a></li>
<li class="has-dropdown" role="none">
<a aria-expanded="false" aria-haspopup="true" href="research.html" role="menuitem">Research <span aria-hidden="true" class="nav-caret">▾</span></a>
<ul class="dropdown-menu" role="menu">
<li role="none"><a href="research.html" role="menuitem">Neural Link Architecture</a></li>
<li role="none"><a href="roadmap.html" role="menuitem">Roadmap</a></li>
<li role="none"><a href="changelog.html" role="menuitem">Changelog</a></li>
<li role="none"><a href="neural-link-ai.html" role="menuitem">Neural Link & AI Integration</a></li>
<li role="none"><a href="ai-os.html" role="menuitem">AI Operating Systems</a></li>
<li role="none"><a href="building-os.html" role="menuitem">Building OS with Linux/RTOS</a></li>
<li role="none"><a href="future-research.html" role="menuitem">Future Research</a></li>
</ul>
</li>
<li class="has-dropdown" role="none">
<a aria-expanded="false" aria-haspopup="true" href="membership.html" role="menuitem">Programs <span aria-hidden="true" class="nav-caret">▾</span></a>
<ul class="dropdown-menu" role="menu">
<li role="none"><a href="membership.html" role="menuitem">Membership</a></li>
<li role="none"><a href="certification.html" role="menuitem">Certification</a></li>
<li role="none"><a href="internship.html" role="menuitem">Internship</a></li>
<li role="none"><a href="careers.html" role="menuitem">Careers</a></li>
</ul>
</li>
<li class="has-dropdown" role="none">
<a aria-expanded="false" aria-haspopup="true" href="products.html" role="menuitem">Products <span aria-hidden="true" class="nav-caret">▾</span></a>
<ul class="dropdown-menu" role="menu">
<li role="none"><a href="product-eos.html" role="menuitem">EoS (RTOS)</a></li>
<li role="none"><a href="product-eos-platform.html" role="menuitem">eos-platform</a></li>
<li role="none"><a href="product-eboot.html" role="menuitem">eBootloader</a></li>
<li role="none"><a href="product-ebuild.html" role="menuitem">eBuild</a></li>
<li role="none"><a href="product-eai.html" role="menuitem">EAI</a></li>
<li role="none"><a href="product-eni.html" role="menuitem">ENI</a></li>
<li role="none"><a href="product-eipc.html" role="menuitem">EIPC</a></li>
<li role="none"><a href="product-eapps.html" role="menuitem">eApps</a></li>
<li role="none"><a href="product-eosim.html" role="menuitem">EoSim</a></li>
<li role="none"><a href="product-eostudio.html" role="menuitem">EoStudio</a></li>
<li role="none"><a href="product-edb.html" role="menuitem">eDB</a></li>
<li role="none"><a href="product-ebowser.html" role="menuitem">eBowser</a></li>
<li role="none"><a href="product-eoffice.html" role="menuitem">eOffice</a></li>
<li role="none"><a href="product-eserviceapps.html" role="menuitem">eServiceApps</a></li>
</ul>
</li>
<li role="none"><a href="ecosystem.html" role="menuitem">Ecosystem</a></li>
<li role="none"><a href="about.html" role="menuitem">About</a></li>
<li role="none"><a href="security.html" role="menuitem">Security</a></li>
<li role="none"><a href="contact.html" role="menuitem">Contact</a></li>
<li role="none"><a class="nav-cta nav-cta--donate" href="donate.html#donate-now" role="menuitem" style="background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 16px rgba(16,185,129,.35);margin-right:.4rem;">♥ Donate</a></li><li role="none"><a class="nav-cta" href="membership.html" role="menuitem">Join Now</a></li>
</ul>
</nav>
<button aria-controls="nav-links" aria-expanded="false" aria-label="Toggle navigation menu" class="mobile-menu-btn" type="button"><span class="hamburger-line"></span><span class="hamburger-line"></span><span class="hamburger-line"></span></button>
</div>
</div>
</header><main id="main-content"><section aria-labelledby="ph-eosim" class="product-hero"><div class="container"><nav aria-label="Breadcrumb" class="breadcrumb"><a href="index.html">Home</a> · <a href="ecosystem.html">Ecosystem</a>
<a href="sponsors.html">Sponsors</a> · <span>EoSim</span></nav><div class="product-hero__visual"><img alt="Terminal and oscilloscope — EoSim" decoding="async" height="620" loading="lazy" src="img/photos/p-eosim.svg" width="1200"/></div><span class="lang-badge lang-py"><span class="dot"></span>Python · v0.1.0</span><h1 id="ph-eosim">EoSim — Embedded Systems Simulator</h1><p class="lede">EoSim is the EoS simulator — a unified harness over QEMU, Renode, and a hardware-in-the-loop bridge that lets you boot, debug, and CI-test EoS firmware against 52+ virtual platforms without touching real silicon.</p><div class="hero-cta-row"><a class="btn btn-primary" href="https://github.com/embeddedos-org/eosim" rel="noopener noreferrer" target="_blank">View on GitHub →</a><a class="btn btn-secondary" href="documentation.html">Read the Docs</a></div><div class="stat-tile-row"><div class="stat-tile"><div class="stat-num">52+</div><div class="stat-label">Virtual platforms</div></div><div class="stat-tile"><div class="stat-num">QEMU</div><div class="stat-label">Full-system emu</div></div><div class="stat-tile"><div class="stat-num">Renode</div><div class="stat-label">Multi-MCU</div></div><div class="stat-tile"><div class="stat-num">HIL</div><div class="stat-label">Real-hardware bridge</div></div></div></div></section><section class="section"><div class="container"><div class="section-header"><span class="overline">Overview</span><h2>What EoSim is</h2></div><div class="prose"><p>EoSim wraps QEMU and Renode behind a single Python API and CLI: pick a platform, hand it an EoS firmware image, and you get an inspectable virtual board with simulated peripherals, a GDB stub, and scriptable scenarios.</p><p>For tests that demand real hardware, the HIL bridge proxies the same API onto attached reference boards — so the same scenario runs in CI on a virtual STM32 and on a physical board on an engineer's desk.</p></div></div></section><section class="section section-gray"><div class="container"><div class="section-header"><span class="overline">Capabilities</span><h2>Features</h2><p>The shape of EoSim at a glance.</p></div><div class="feature-grid"><div class="feature-tile"><div class="ft-icon">▣</div><h3>52+ Virtual Platforms</h3><p>STM32 family, NXP i.MX, ESP32, RISC-V SiFive, ARM Cortex-A SoCs, x86_64 servers, and more.</p></div><div class="feature-tile"><div class="ft-icon">▣</div><h3>QEMU + Renode + HIL</h3><p>Three execution backends behind one API; switch with a flag.</p></div><div class="feature-tile"><div class="ft-icon">▣</div><h3>Scriptable Scenarios</h3><p>Drive peripherals, inject faults, advance time — all in Python.</p></div><div class="feature-tile"><div class="ft-icon">▣</div><h3>GDB & Trace Hooks</h3><p>Built-in GDB stub, full instruction trace, and EoS kernel-aware introspection.</p></div><div class="feature-tile"><div class="ft-icon">▣</div><h3>CI Integration</h3><p>Runs in GitHub Actions / GitLab / Jenkins; produces JUnit-format results.</p></div><div class="feature-tile"><div class="ft-icon">▣</div><h3>Fault Injection</h3><p>Bit-flip, brown-out, broken-peripheral scenarios for resilience tests.</p></div><div class="feature-tile"><div class="ft-icon">▣</div><h3>Multi-Node</h3><p>Networks of simulated boards share a virtual bus / Ethernet / Wi-Fi.</p></div><div class="feature-tile"><div class="ft-icon">▣</div><h3>Benchmarks</h3><p>Same harness drives perf / power benchmarks — exports to CSV and Plotly.</p></div><div class="feature-tile"><div class="ft-icon">▣</div><h3>Hardware-in-the-Loop</h3><p>Same scenarios run on physical reference boards via the HIL bridge.</p></div></div></div></section><section class="section section-dark"><div class="container"><div class="cards-grid cards-grid-2" style="gap: var(--sp-6);"><div><span class="overline">Source</span><h2 style="margin-top: var(--sp-2);">Open source on GitHub</h2><p>EoSim is MIT licensed and developed in the open. Issues, discussions, and pull requests welcome.</p><div class="repo-card" style="margin-top: var(--sp-5);"><div class="repo-mark">⌥</div><div class="repo-meta"><h3>embeddedos-org/eosim</h3><p>Simulate, fuzz, and CI-test EoS firmware against 52+ virtual platforms.</p><div class="repo-tags"><span class="repo-tag">Python</span><span class="repo-tag">MIT</span><span class="repo-tag">v0.1.0</span></div></div><a class="repo-cta" href="https://github.com/embeddedos-org/eosim" rel="noopener noreferrer" target="_blank">Open ↗</a></div></div><div><span class="overline">Where it sits</span><h2 style="margin-top: var(--sp-2);">In the EoS stack</h2><p>EoSim is the highlighted layer below.</p><div class="stack-diagram" style="margin-top: var(--sp-5);"><svg aria-label="Stack diagram" role="img" viewbox="0 0 480 448" xmlns="http://www.w3.org/2000/svg"><rect fill="rgba(148,163,184,0.10)" height="36" rx="8" stroke="rgba(148,163,184,0.25)" stroke-width="1.5" width="440" x="20" y="8"></rect><text fill="#94a3b8" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="500" text-anchor="middle" x="240.0" y="31.0">App layer</text><rect fill="rgba(148,163,184,0.10)" height="36" rx="8" stroke="rgba(148,163,184,0.25)" stroke-width="1.5" width="440" x="20" y="52"></rect><text fill="#94a3b8" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="500" text-anchor="middle" x="240.0" y="75.0">UI / browser layer</text><rect fill="rgba(148,163,184,0.10)" height="36" rx="8" stroke="rgba(148,163,184,0.25)" stroke-width="1.5" width="440" x="20" y="96"></rect><text fill="#94a3b8" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="500" text-anchor="middle" x="240.0" y="119.0">Data layer</text><rect fill="rgba(148,163,184,0.10)" height="36" rx="8" stroke="rgba(148,163,184,0.25)" stroke-width="1.5" width="440" x="20" y="140"></rect><text fill="#94a3b8" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="500" text-anchor="middle" x="240.0" y="163.0">AI runtime</text><rect fill="rgba(148,163,184,0.10)" height="36" rx="8" stroke="rgba(148,163,184,0.25)" stroke-width="1.5" width="440" x="20" y="184"></rect><text fill="#94a3b8" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="500" text-anchor="middle" x="240.0" y="207.0">Neural interface</text><rect fill="rgba(148,163,184,0.10)" height="36" rx="8" stroke="rgba(148,163,184,0.25)" stroke-width="1.5" width="440" x="20" y="228"></rect><text fill="#94a3b8" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="500" text-anchor="middle" x="240.0" y="251.0">IPC fabric</text><rect fill="rgba(148,163,184,0.10)" height="36" rx="8" stroke="rgba(148,163,184,0.25)" stroke-width="1.5" width="440" x="20" y="272"></rect><text fill="#94a3b8" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="500" text-anchor="middle" x="240.0" y="295.0">EoS kernel + HAL</text><rect fill="rgba(148,163,184,0.10)" height="36" rx="8" stroke="rgba(148,163,184,0.25)" stroke-width="1.5" width="440" x="20" y="316"></rect><text fill="#94a3b8" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="500" text-anchor="middle" x="240.0" y="339.0">eos-platform profile</text><rect fill="rgba(148,163,184,0.10)" height="36" rx="8" stroke="rgba(148,163,184,0.25)" stroke-width="1.5" width="440" x="20" y="360"></rect><text fill="#94a3b8" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="500" text-anchor="middle" x="240.0" y="383.0">eBootloader</text><rect fill="#67e8f9" height="36" rx="8" stroke="#67e8f9" stroke-width="1.5" width="440" x="20" y="404"></rect><text fill="#0f172a" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="700" text-anchor="middle" x="240.0" y="427.0">Build / IDE / Sim</text></svg></div></div></div></div></section><section class="section"><div class="container"><div class="section-header"><span class="overline">Together</span><h2>Pairs well with</h2><p>Sibling components that EoSim commonly works alongside.</p></div><div class="cross-links"><a class="cross-link" href="product-ebuild.html"><span class="cl-name">eBuild</span><span class="cl-blurb">One CLI to configure, build, package, and ship EoS firmware to any of 14 targets.</span></a><a class="cross-link" href="product-eostudio.html"><span class="cl-name">EoStudio</span><span class="cl-blurb">An IDE built for EoS: 12 editors, 30+ generators, simulator-aware debugging.</span></a><a class="cross-link" href="product-eos.html"><span class="cl-name">EoS</span><span class="cl-blurb">The foundation: a deterministic real-time embedded OS for everything from the bootloader up.</span></a></div></div></section><section aria-labelledby="arch-diag" class="section section-gray">
<div class="container">
<div class="section-header">
<span class="overline">Architecture</span>
<h2 id="arch-diag">EoSim Simulator Architecture</h2>
<p>The virtual world (QEMU backend, virtual peripherals, GDB remote debugger, coverage tracing, fault injection) connected to the real hardware world through the HIL bridge with sub-microsecond latency.</p>
</div>
<div class="diagram-wrap">
<img alt="EoSim Simulator Architecture" class="arch-diagram" height="520" loading="lazy" src="img/diagrams/diag-eosim.svg" width="860"/>
</div>
</div>
</section>
<section aria-labelledby="specs-h" class="section">
<div class="container">
<div class="section-header">
<span class="overline">Technical Specifications</span>
<h2 id="specs-h">EoSim at a Glance</h2>
</div>
<div class="specs-table-wrap">
<table aria-label="EoSim at a Glance" class="specs-table"><thead><tr><th scope="row">Simulation Backend</th><td>QEMU 8.x with EoS-specific machine models</td></tr></thead>
<tbody>
<tr><th scope="row">HIL Bridge Latency</th><td>< 1 µs virtual-to-real peripheral round-trip</td></tr>
<tr><th scope="row">Simulated Peripherals</th><td>16 peripheral types: UART, SPI, I²C, GPIO, CAN, USB, ETH, ADC, PWM, Timer, DMA, RTC, Flash, SDIO, QSPI, LCD</td></tr>
<tr><th scope="row">Debug Interface</th><td>GDB remote protocol (port 1234); RTOS-aware thread list and register views</td></tr>
<tr><th scope="row">Coverage Tracing</th><td>Basic block coverage with LCOV output; branch coverage in instrumented builds</td></tr>
<tr><th scope="row">Fault Injection</th><td>Bit-flip injection, peripheral timeout simulation, power-loss scenarios</td></tr>
<tr><th scope="row">Cycle Accuracy</th><td>Instruction-accurate timing for Cortex-M and RISC-V targets</td></tr>
<tr><th scope="row">Supported Architectures</th><td>ARM Cortex-M0/M0+/M3/M4/M7/M23/M33/M55/M85, RISC-V RV32/RV64, x86-64</td></tr>
<tr><th scope="row">Host Platforms</th><td>Linux (x86-64, ARM64), macOS (Apple Silicon), Windows (WSL2)</td></tr>
<tr><th scope="row">EoStudio Integration</th><td>One-click launch from EoStudio IDE with automatic GDB attachment</td></tr>
<tr><th scope="row">License</th><td>MIT — commercial use permitted without royalty</td></tr>
</tbody>
</table>
</div>
</div>
</section>
<section aria-labelledby="code-h" class="section section-gray">
<div class="container">
<div class="section-header">
<span class="overline">Quick Start</span>
<h2 id="code-h">Running EoS in the Simulator</h2>
</div>
<div class="code-block-wrap">
<div class="code-block-header"><span class="code-lang">Shell</span><span class="code-copy-hint">Quick Start</span></div>
<pre class="code-block"><code># 1. Build for the virtual Cortex-M4 target
ebuild build --profile cortex-m4-qemu
# 2. Launch EoSim (opens QEMU + GDB server on :1234)
eosim run build/firmware.elf --profile cortex-m4-qemu
# 3. In another terminal: connect GDB
arm-none-eabi-gdb build/firmware.elf \
-ex "target remote :1234" \
-ex "monitor reset halt" \
-ex "continue"
# 4. Run with fault injection (simulate flash write failure)
eosim run build/firmware.elf \
--fault flash_write_error:0x08010000:50%
# 5. Collect coverage report
eosim run build/firmware.elf --coverage
eosim coverage-report --format lcov --output coverage/
# 6. HIL mode: bridge virtual UART to real hardware
eosim run build/firmware.elf \
--hil uart0:/dev/ttyUSB0:115200</code></pre>
<p class="code-note">EoSim requires QEMU 8.x. Install with: <code>ebuild install-deps --sim</code></p>
</div>
</div>
</section>
<section aria-labelledby="usecases-h" class="section">
<div class="container">
<div class="section-header">
<span class="overline">Applications</span>
<h2 id="usecases-h">Where EoSim Is Used</h2>
</div>
<div class="usecases-grid">
<div class="usecase-card">
<div class="usecase-icon">🧪</div>
<h3>Hardware-Free Development</h3>
<p>Develop and test firmware before hardware is available, enabling parallel hardware and software development tracks.</p>
</div>
<div class="usecase-card">
<div class="usecase-icon">🔄</div>
<h3>CI/CD Regression Testing</h3>
<p>Run the full firmware test suite in QEMU on every commit — no physical hardware required in the CI pipeline.</p>
</div>
<div class="usecase-card">
<div class="usecase-icon">💥</div>
<h3>Fault Injection Testing</h3>
<p>Simulate power loss, flash corruption, and peripheral failures to validate error-handling and recovery code paths.</p>
</div>
<div class="usecase-card">
<div class="usecase-icon">📊</div>
<h3>Coverage Analysis</h3>
<p>Achieve > 90% branch coverage on embedded firmware using EoSim's instrumented execution mode.</p>
</div>
<div class="usecase-card">
<div class="usecase-icon">🔌</div>
<h3>HIL Testing</h3>
<p>Bridge simulated firmware to real sensors and actuators through the HIL interface for mixed virtual/physical testing.</p>
</div>
<div class="usecase-card">
<div class="usecase-icon">🎓</div>
<h3>Education & Training</h3>
<p>University embedded systems courses use EoSim to teach RTOS concepts without requiring physical development boards.</p>
</div>
</div>
</div>
</section>
<section class="section section-gray"><div class="container" style="text-align:center;"><h2 style="margin-bottom:var(--sp-3);">Ready to build with EoSim?</h2><p style="margin-bottom:var(--sp-6);">Start with the docs, browse the source, or join the community.</p><div class="hero-cta-row" style="justify-content:center;"><a class="btn btn-primary" href="documentation.html">Read the Docs</a><a class="btn btn-secondary" href="https://github.com/embeddedos-org/eosim" rel="noopener noreferrer" target="_blank">View Source</a><a class="btn btn-secondary" href="contact.html">Contact Us</a></div></div></section>
<section class="product-simulation">
<div class="container">
<h2>Live Simulation</h2>
<p class="section-desc">Real-time visualization of core system behavior.</p>
<div class="canvas-wrap">
<canvas aria-label="Live system simulation" height="320" id="canvas-eosim-sim" width="800"></canvas>
</div>
</div>
</section>
</main><footer class="footer" role="contentinfo">
<div class="footer-inner">
<div class="footer-brand">
<h3 style="margin-bottom:0.5rem">EmbeddedOS</h3>
<p>The Operating System for Every Device — from microcontrollers to spacecraft. A project of the Embedded Operating Systems Research Foundation.</p>
<div style="display:flex;gap:0.5rem;flex-wrap:wrap;margin-top:0.75rem">
<span class="badge badge-blue">MIT</span>
<span class="badge badge-green">Open Source</span>
<span class="badge badge-purple">501(c)(3) Nonprofit</span>
</div>
<p style="margin-top:0.75rem;font-size:0.8rem;color:var(--text-muted)"><a href="https://www.embeddedos.org/" style="color:var(--blue)">www.embeddedos.org</a></p>
</div>
<div>
<h4>Foundation</h4>
<ul>
<li><a href="/about.html">About</a></li>
<li><a href="/contact.html">Contact</a></li>
<li><a href="/donate.html">Donate</a></li>
<li><a href="/membership.html">Membership</a></li>
<li><a href="/ecosystem.html">Ecosystem</a></li>
<li><a href="/research.html">Research</a></li>
<li><a href="/docs/index.html">Documentation</a></li>
<li><a href="/news.html">News</a></li>
</ul>
</div>
<div>
<h4>Applications</h4>
<ul>
<li><a href="/docs/eostudio.html">EoStudio IDE</a></li>
<li><a href="/docs/eosim.html">EoSim</a></li>
<li><a href="/docs/eoffice.html">eOffice Suite</a></li>
<li><a href="/docs/ebrowser.html">eBrowser</a></li>
<li><a href="/docs/edb.html">eDB</a></li>
<li><a href="/flow.html">eFlow</a></li>
<li><a href="/eApps/index.html">eApps Store</a></li>
</ul>
</div>
<div>
<h4>Projects</h4>
<ul>
<li><a href="/docs/eos.html">EoS Kernel</a></li>
<li><a href="/docs/eboot.html">eBoot</a></li>
<li><a href="/docs/eipc.html">eIPC</a></li>
<li><a href="/docs/eai.html">eAI</a></li>
<li><a href="/docs/eni.html">eNI</a></li>
<li><a href="/health.html">Health Devices</a></li>
<li><a href="/hardware-lab.html">Hardware Lab</a></li>
</ul>
</div>
<div>
<h4>Resources</h4>
<ul>
<li><a href="/getting-started.html">Getting Started</a></li>
<li><a href="/books.html">Books (14)</a></li>
<li><a href="/stacks/index.html">Stacks</a></li>
<li><a href="/kids.html">Kids Edition</a></li>
<li><a href="/changelog.html">Changelog</a></li>
<li><a href="/roadmap.html">Roadmap</a></li>
<li><a href="/faq.html">FAQ</a></li>
</ul>
</div>
<div>
<h4>Connect</h4>
<ul class="social-list">
<li><a class="social-link social-github" href="https://github.com/embeddedos-org" target="_blank" rel="noopener" aria-label="GitHub"><span class="social-icon">◆</span> GitHub</a></li>
<li><a class="social-link social-x" href="https://x.com/EmbeddedOS_ORG" target="_blank" rel="noopener" aria-label="X (Twitter)"><span class="social-icon">𝕏</span> X / Twitter</a></li>
<li><a class="social-link social-linkedin" href="https://www.linkedin.com/company/embedded-operating-systems-research-foundation" target="_blank" rel="noopener" aria-label="LinkedIn"><span class="social-icon">in</span> LinkedIn</a></li>
<li><a class="social-link social-youtube" href="https://www.youtube.com/@EmbeddedOS_ORG" target="_blank" rel="noopener" aria-label="YouTube"><span class="social-icon">▶</span> YouTube</a></li>
<li><a class="social-link social-facebook" href="https://www.facebook.com/profile.php?id=61588978691494" target="_blank" rel="noopener" aria-label="Facebook"><span class="social-icon">f</span> Facebook</a></li>
<li><a class="social-link" href="mailto:hello@embeddedos.org" aria-label="Email"><span class="social-icon">@</span> Email</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
© 2026 Embedded Operating Systems Research Foundation • Licensed under <a href="https://opensource.org/licenses/MIT" target="_blank" rel="noopener" style="color:var(--blue)">MIT</a> • 501(c)(3) Nonprofit • <a href="/privacy.html" style="color:var(--text-muted)">Privacy</a> • <a href="/terms.html" style="color:var(--text-muted)">Terms</a> • <a href="https://github.com/embeddedos-org" style="color:var(--text-muted)">GitHub</a> • Powered by <a href="https://www.interserver.net" target="_blank" rel="noopener" style="color:var(--text-muted)">InterServer</a>
</div>
</footer><button aria-label="Scroll to top" class="scroll-top" type="button">↑</button> <script defer="" src="js/monitor.js"></script> <script defer="" src="js/main.js"></script> <script defer="" src="js/cookies.js"></script> <script defer="" src="js/search.js"></script>
<script defer="" src="js/simulations.js"></script>
</body></html>