Skip to content

Commit 747c369

Browse files
kwagyemanclaude
andcommitted
docs: add firmware-development "Simulators" page (MPS2/MPS3) + translations
New tutorial page under the firmware-development section covering the two simulation targets: MPS2_AN500 (Cortex-M7, QEMU) and MPS3_AN547 (Cortex-M55 + Ethos-U55, Arm FVP / Corstone SSE-300). Documents what each is for, installing and running the simulators, the virtual camera (csi snapshot test pattern vs loading images from files), running the unit-test suite over the bundled mpremote, and adding tests (the /remote live-mount vs /rom ROMFS model). Registered in the firmware toctree after building.rst. Adds simulation.po translations for all 26 locales. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 99f4b8c commit 747c369

28 files changed

Lines changed: 9300 additions & 0 deletions

File tree

docs/locale/ar/LC_MESSAGES/openmvcam/tutorial/production/firmware/simulation.po

Lines changed: 343 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 354 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,354 @@
1+
# SOME DESCRIPTIVE TITLE.
2+
# Copyright (C) The OpenMV MicroPython Documentation is Copyright ©
3+
# 2014-2026 by OpenMV, Damien P. George, and others.
4+
# This file is distributed under the same license as the OpenMV MicroPython
5+
# package.
6+
# FIRST AUTHOR <EMAIL@ADDRESS>, 2026.
7+
#
8+
#, fuzzy
9+
msgid ""
10+
msgstr ""
11+
"Project-Id-Version: OpenMV MicroPython 1.28\n"
12+
"Report-Msgid-Bugs-To: \n"
13+
"POT-Creation-Date: 2026-06-29 16:04-0700\n"
14+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
15+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
16+
"Language-Team: cs <LL@li.org>\n"
17+
"Language: cs\n"
18+
"MIME-Version: 1.0\n"
19+
"Content-Type: text/plain; charset=utf-8\n"
20+
"Content-Transfer-Encoding: 8bit\n"
21+
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
22+
"Generated-By: Babel 2.17.0\n"
23+
24+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:2
25+
msgid "Simulators"
26+
msgstr "Simulátory"
27+
28+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:4
29+
msgid ""
30+
"Two ``TARGET`` values build the firmware to run inside a **simulator** on "
31+
"your host, with no hardware attached. They exist so the firmware can be run "
32+
"and tested anywhere."
33+
msgstr ""
34+
"Dvě hodnoty ``TARGET`` sestavují firmware tak, aby běžel uvnitř "
35+
"**simulátoru** na vašem hostiteli, bez připojeného hardwaru. Existují proto,"
36+
" aby bylo možné firmware spustit a testovat kdekoli."
37+
38+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:12
39+
msgid "``TARGET``"
40+
msgstr "``TARGET``"
41+
42+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:13
43+
msgid "Core"
44+
msgstr "Jádro"
45+
46+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:14
47+
msgid "NPU"
48+
msgstr "NPU"
49+
50+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:15
51+
msgid "Simulator"
52+
msgstr "Simulátor"
53+
54+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:16
55+
msgid "``MPS2_AN500``"
56+
msgstr "``MPS2_AN500``"
57+
58+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:17
59+
msgid "Cortex-M7"
60+
msgstr "Cortex-M7"
61+
62+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:18
63+
msgid "None"
64+
msgstr "Žádný"
65+
66+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:19
67+
msgid "QEMU"
68+
msgstr "QEMU"
69+
70+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:20
71+
msgid "``MPS3_AN547``"
72+
msgstr "``MPS3_AN547``"
73+
74+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:21
75+
msgid "Cortex-M55"
76+
msgstr "Cortex-M55"
77+
78+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:22
79+
msgid "Ethos-U55 (256 MACs)"
80+
msgstr "Ethos-U55 (256 MACs)"
81+
82+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:23
83+
msgid "Arm FVP -- Corstone SSE-300"
84+
msgstr "Arm FVP -- Corstone SSE-300"
85+
86+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:25
87+
msgid ""
88+
"**MPS2_AN500** is the baseline Cortex-M7 target with no NPU. It runs under "
89+
"QEMU, which is fast to start and is the lightweight way to exercise the "
90+
"platform-independent code and the test suite."
91+
msgstr ""
92+
"**MPS2_AN500** je základní cíl Cortex-M7 bez NPU. Běží pod QEMU, který se "
93+
"rychle spouští a je odlehčeným způsobem, jak procvičit platformově nezávislý"
94+
" kód a testovací sadu."
95+
96+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:29
97+
msgid ""
98+
"**MPS3_AN547** is a Cortex-M55 with the Ethos-U55 NPU, run on Arm's Fast "
99+
"Models -- the FVP, which models the Corstone SSE-300 reference subsystem. "
100+
"This is the target for exercising the NPU and the ML model path in "
101+
"simulation."
102+
msgstr ""
103+
"**MPS3_AN547** je Cortex-M55 s NPU Ethos-U55, spouštěný na rychlých modelech"
104+
" Arm -- FVP, který modeluje referenční subsystém Corstone SSE-300. Toto je "
105+
"cíl pro procvičování NPU a cesty ML modelu v simulaci."
106+
107+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:33
108+
msgid ""
109+
"Both provide the ROM filesystem and plenty of RAM (and the NPU on the M55), "
110+
"so vision and ML scripts run unmodified."
111+
msgstr ""
112+
"Oba poskytují souborový systém ROM a spoustu RAM (a NPU na M55), takže "
113+
"skripty pro vidění a ML běží beze změny."
114+
115+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:36
116+
msgid ""
117+
"There is no real sensor, but the :mod:`csi` module still works against a "
118+
"virtual one -- :meth:`csi.CSI.snapshot` returns a synthetic, animated test "
119+
"pattern (a scrolling checkerboard in grayscale, a gradient in RGB565), not a"
120+
" live scene. To process real image content, load it from a file instead: an "
121+
":class:`image.Image` from a fixture in the ROM filesystem, or an "
122+
":class:`image.ImageIO` stream for recorded frames."
123+
msgstr ""
124+
"Neexistuje žádný skutečný senzor, ale modul :mod:`csi` přesto funguje proti "
125+
"virtuálnímu -- :meth:`csi.CSI.snapshot` vrací syntetický, animovaný "
126+
"testovací vzor (rolující šachovnici v odstínech šedi, gradient v RGB565), "
127+
"nikoli živou scénu. Pro zpracování skutečného obsahu obrazu jej místo toho "
128+
"načtěte ze souboru: :class:`image.Image` z fixtury v souborovém systému ROM,"
129+
" nebo :class:`image.ImageIO` stream pro nahrané snímky."
130+
131+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:44
132+
msgid "Building and running"
133+
msgstr "Sestavení a spuštění"
134+
135+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:46
136+
msgid ""
137+
"Each simulator is a host tool you install yourself. You build a target like "
138+
"any other (see :doc:`building`), then ``run`` it under the matching "
139+
"simulator -- ``run`` builds the ROMFS image, boots the firmware, and leaves "
140+
"it running with a serial connection you can attach to."
141+
msgstr ""
142+
"Každý simulátor je hostitelský nástroj, který si nainstalujete sami. Cíl "
143+
"sestavíte jako kterýkoli jiný (viz :doc:`building`\\ ) a poté jej spustíte "
144+
"pomocí ``run`` pod odpovídajícím simulátorem -- ``run`` sestaví obraz ROMFS,"
145+
" nabootuje firmware a nechá jej běžet se sériovým připojením, ke kterému se "
146+
"můžete připojit."
147+
148+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:52
149+
msgid "MPS2_AN500 (QEMU)"
150+
msgstr "MPS2_AN500 (QEMU)"
151+
152+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:54
153+
msgid "QEMU ships in most package managers as the Arm system emulator:"
154+
msgstr ""
155+
"QEMU se ve většině správců balíčků dodává jako systémový emulátor Arm:"
156+
157+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:56
158+
msgid "**Linux** (Debian / Ubuntu) -- install it with ``apt``::"
159+
msgstr "**Linux** (Debian / Ubuntu) -- nainstalujte jej pomocí ``apt``\\ ::"
160+
161+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:60
162+
msgid "**macOS** -- install it with Homebrew::"
163+
msgstr "**macOS** -- nainstalujte jej pomocí Homebrew::"
164+
165+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:64
166+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:92
167+
msgid "Then build and run the target::"
168+
msgstr "Poté sestavte a spusťte cíl::"
169+
170+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:70
171+
msgid "MPS3_AN547 (Arm FVP)"
172+
msgstr "MPS3_AN547 (Arm FVP)"
173+
174+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:72
175+
msgid ""
176+
"The FVP is Arm's Fixed Virtual Platform for the Corstone SSE-300, shipped as"
177+
" part of `Arm Virtual Hardware <https://www.arm.com/products/development-"
178+
"tools/simulation/virtual-hardware>`__. It is available for **Linux** only --"
179+
" on a Mac, use the QEMU target above instead."
180+
msgstr ""
181+
"FVP je pevná virtuální platforma Arm pro Corstone SSE-300, dodávaná jako "
182+
"součást `Arm Virtual Hardware <https://www.arm.com/products/development-"
183+
"tools/simulation/virtual-hardware>`__\\ . Je k dispozici pouze pro **Linux**"
184+
" -- na Macu místo toho použijte výše uvedený cíl QEMU."
185+
186+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:78
187+
msgid ""
188+
"Download the bundle, extract it, and put its ``bin/`` directory on your "
189+
"``PATH``::"
190+
msgstr ""
191+
"Stáhněte bundle, rozbalte jej a vložte jeho adresář ``bin/`` do svého "
192+
"``PATH``\\ ::"
193+
194+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:86
195+
msgid ""
196+
"The FVP also needs the SDK's Python libraries on ``LD_LIBRARY_PATH`` when it"
197+
" runs. Export it once per shell from the repo root -- reading "
198+
"``SDK_VERSION`` keeps it correct as the repo updates the pinned SDK::"
199+
msgstr ""
200+
"FVP při svém běhu také potřebuje Python knihovny z SDK na "
201+
"``LD_LIBRARY_PATH``\\ . Vyexportujte jej jednou na shell z kořene repozitáře"
202+
" -- čtení ``SDK_VERSION`` jej udržuje správný, jak repozitář aktualizuje "
203+
"připnuté SDK::"
204+
205+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:98
206+
msgid "Running the test suite"
207+
msgstr "Spuštění testovací sady"
208+
209+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:100
210+
msgid ""
211+
"The unit tests live in ``scripts/unittest/tests/``, with their fixture "
212+
"images and data in ``scripts/unittest/data/``. They are run with `mpremote "
213+
"<https://docs.micropython.org/en/latest/reference/mpremote.html>`__, which "
214+
"mounts ``scripts/unittest/`` onto the running simulator and executes its "
215+
"``run.py``."
216+
msgstr ""
217+
"Jednotkové testy se nacházejí v ``scripts/unittest/tests/``\\ , s jejich "
218+
"fixturovými obrázky a daty v ``scripts/unittest/data/``\\ . Spouštějí se "
219+
"pomocí `mpremote "
220+
"<https://docs.micropython.org/en/latest/reference/mpremote.html>`__\\ , "
221+
"který připojí ``scripts/unittest/`` na běžící simulátor a spustí jeho "
222+
"``run.py``\\ ."
223+
224+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:105
225+
msgid ""
226+
"The simulator link is slow with stock ``mpremote``, so use the copy bundled "
227+
"in the repo with the serial patch applied (apply it once)::"
228+
msgstr ""
229+
"Spojení se simulátorem je se standardním ``mpremote`` pomalé, takže použijte"
230+
" kopii dodávanou v repozitáři s aplikovanou sériovou záplatou (aplikujte ji "
231+
"jednou)::"
232+
233+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:110
234+
msgid ""
235+
"For ``MPS2_AN500`` under QEMU, start the target -- it prints the pseudo-"
236+
"terminal its serial port is on (for example ``/dev/pts/5``)::"
237+
msgstr ""
238+
"Pro ``MPS2_AN500`` pod QEMU spusťte cíl -- vypíše pseudoterminál, na kterém "
239+
"je jeho sériový port (například ``/dev/pts/5``\\ )::"
240+
241+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:115
242+
msgid ""
243+
"Then, from another shell, point the patched ``mpremote`` at that device::"
244+
msgstr ""
245+
"Poté z jiného shellu nasměrujte záplatovaný ``mpremote`` na to zařízení::"
246+
247+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:120
248+
msgid ""
249+
"For ``MPS3_AN547`` under the FVP, the serial port is a telnet socket on port"
250+
" 5555 instead::"
251+
msgstr ""
252+
"Pro ``MPS3_AN547`` pod FVP je sériovým portem místo toho telnetový socket na"
253+
" portu 5555::"
254+
255+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:127
256+
msgid ""
257+
"``run.py`` discovers and executes every test, printing a ``PASSED`` / "
258+
"``FAILED`` line per test with timing and a summary at the end."
259+
msgstr ""
260+
"``run.py`` objeví a spustí každý test a vypisuje řádek ``PASSED`` / "
261+
"``FAILED`` pro každý test s časováním a souhrnem na konci."
262+
263+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:131
264+
msgid "Adding a test"
265+
msgstr "Přidání testu"
266+
267+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:133
268+
msgid ""
269+
"Tests are discovered automatically. To add one, drop a file in "
270+
"``scripts/unittest/tests/`` that defines a ``unittest(data_path, "
271+
"temp_path)`` function returning ``True`` when the test passes and ``False`` "
272+
"when it fails::"
273+
msgstr ""
274+
"Testy jsou objeveny automaticky. Chcete-li nějaký přidat, vložte do "
275+
"``scripts/unittest/tests/`` soubor, který definuje funkci "
276+
"``unittest(data_path, temp_path)`` vracející ``True``\\ , když test projde, "
277+
"a ``False``\\ , když selže::"
278+
279+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:146
280+
msgid ""
281+
"The ``data_path`` and ``temp_path`` arguments point into the two filesystems"
282+
" the simulator sees while the suite runs:"
283+
msgstr ""
284+
"Argumenty ``data_path`` a ``temp_path`` ukazují do dvou souborových systémů,"
285+
" které simulátor vidí během běhu sady:"
286+
287+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:153
288+
msgid "Path"
289+
msgstr "Cesta"
290+
291+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:154
292+
msgid "Backed by"
293+
msgstr "Zajištěno"
294+
295+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:155
296+
msgid "``/remote``"
297+
msgstr "``/remote``"
298+
299+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:156
300+
msgid ""
301+
"The host's ``scripts/unittest/`` directory, mounted live over the "
302+
"``mpremote`` connection. ``run.py`` and the ``tests/`` it discovers live "
303+
"here, so adding or editing a test takes effect on the next run with no "
304+
"rebuild. ``temp_path`` is ``/remote/temp`` on the device, which is your "
305+
"host's ``scripts/unittest/temp/`` -- a writable scratch directory for tests "
306+
"that create files."
307+
msgstr ""
308+
"Hostitelský adresář ``scripts/unittest/``\\ , připojený živě přes spojení "
309+
"``mpremote``\\ . ``run.py`` a ``tests/``\\ , které objeví, jsou zde, takže "
310+
"přidání nebo úprava testu se projeví při příštím spuštění bez opětovného "
311+
"sestavení. ``temp_path`` je ``/remote/temp`` na zařízení, což je váš "
312+
"hostitelský ``scripts/unittest/temp/`` -- zapisovatelný pracovní adresář pro"
313+
" testy, které vytvářejí soubory."
314+
315+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:162
316+
msgid "``/rom``"
317+
msgstr "``/rom``"
318+
319+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:163
320+
msgid ""
321+
"The board's read-only ROM filesystem, built into the firmware image from "
322+
"``romfs_config.json``: the test fixtures (from ``scripts/unittest/data/``) "
323+
"and the bundled ML models. ``data_path`` is ``/rom`` -- reach a fixture as "
324+
"``data_path + \"/<file>\"``."
325+
msgstr ""
326+
"Souborový systém ROM desky určený pouze ke čtení, zabudovaný do obrazu "
327+
"firmwaru z ``romfs_config.json``\\ : testovací fixtury (z "
328+
"``scripts/unittest/data/``\\ ) a dodávané ML modely. ``data_path`` je "
329+
"``/rom`` -- k fixtuře se dostanete jako ``data_path + \"/<file>\"``\\ ."
330+
331+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:168
332+
msgid ""
333+
"So a new **test** needs no rebuild, but a new **fixture** does: the ROM "
334+
"image is keyed off ``romfs_config.json`` rather than the individual data "
335+
"files, so force the rebuild by touching the board's ``romfs_config.json`` "
336+
"(or ``make TARGET=<TARGET> clean``) and running again."
337+
msgstr ""
338+
"Nový **test** tedy nepotřebuje opětovné sestavení, ale nová **fixtura** ano:"
339+
" obraz ROM je odvozen od ``romfs_config.json`` spíše než od jednotlivých "
340+
"datových souborů, takže vynuťte opětovné sestavení dotknutím se desky "
341+
"``romfs_config.json`` (nebo ``make TARGET=<TARGET> clean``\\ ) a opětovným "
342+
"spuštěním."
343+
344+
#: ../../openmvcam/tutorial/production/firmware/simulation.rst:173
345+
msgid ""
346+
"Expected values are asserted inline in the test, so there is no separate "
347+
"expected-output file to maintain. To skip a test at runtime -- for example "
348+
"when it needs hardware the simulator does not model -- raise an exception "
349+
"whose message contains ``\"SKIPPED\"``."
350+
msgstr ""
351+
"Očekávané hodnoty jsou v testu ověřovány vloženě, takže není potřeba "
352+
"udržovat žádný samostatný soubor s očekávaným výstupem. Chcete-li test za "
353+
"běhu přeskočit -- například když potřebuje hardware, který simulátor "
354+
"nemodeluje -- vyvolejte výjimku, jejíž zpráva obsahuje ``\"SKIPPED\"``\\ ."

0 commit comments

Comments
 (0)