ZPUTA (Application de Test ZPU)

English

ZPUTA

ZPUTA a commence comme une simple application de test pour verifier les conceptions materielles du ZPU Evo et du SoC pendant leur developpement. Son nom derive de ZPU Test Application et il a evolue au fil du temps d'un simple programme a quelque chose d'un niveau de sophistication semblable a un OS. Il peut etre construit comme une seule image firmware avec toutes les fonctionnalites ou divise avec la plupart des fonctionnalites sur un peripherique de stockage connecte comme une carte SD. zOS a ete separe de ZPUTA et a eu une grande partie de sa fonctionnalite interne retiree, s'appuyant sur le stockage externe, ce qui le rend plus adapte aux projets finaux.

A l'origine, les developpements ZPUTA/zOS ne ciblaient que l'architecture ZPU et ils avaient deux methodes d'execution principales:
  • en tant qu’application demarree par IOCP,
  • en mode autonome en tant que firmware de demarrage du ZPU Evo.
L'idee derriere ZPUTA est principalement celle du test, obtenir un acces interne a un systeme materiel embarque et executer des codelets pour tester ou essayer des fonctionnalites materielles.

Pour fonctionner, ZPUTA necessite au moins une connexion serie (physique ou USB virtuelle), de preference deux pour la sortie de debogage.

Utilisation de ZPUTA

L'interface ZPUTA a ete ecrite en gardant a l'esprit que seul un terminal textuel serie est disponible. L'interaction se fait au clavier et par texte.

Ligne de commande

ZPUTA Startup Screen

Les raccourcis clavier readline et la liste complete des commandes sont identiques a la version anglaise.

Applications

La reference complete des commandes est dans la version anglaise.

Detail technique

Organisation de la memoire

Les cartes memoire sont identiques a la version anglaise.

Interface applicative

La table vectorielle API complete est identique a la version anglaise.

Installation et build automatises (recommande)

La methode recommandee pour compiler ZPUTA est le script d'installation automatise pour votre plateforme. Il verifie et installe les prerequis, installe la chaine de compilation ZPU, clone le depot (si vous n'etes pas deja dans une copie de travail) et propose de lancer le premier build — avec des valeurs par defaut raisonnables que vous pouvez accepter en appuyant sur Entree. Chaque script est autonome : copiez simplement le fichier unique pour votre plateforme et executez-le. Les etapes manuelles plus bas sont destinees aux utilisateurs avances, aux recompilations partielles et a la CI.
Le build est pilote par build.sh, qui assemble/compile IOCP, ZPUTA et les applications pour un CPU choisi en une seule passe. ZPUTA peut etre compile comme une image unique autonome avec ses fonctionnalites integrees (utile quand il n'y a pas de carte SD) ou separe avec les applets sur la carte SD. Deux chaines de compilation sont impliquees et les scripts d'installation les fournissent toutes les deux :
Chaine de compilation CPU cible Source
ZPU zpu-elf-gcc 3.4.2 Small Medium Flex Evo EvoMin (ZPU) installee dans /opt/zpu (depuis ZPU_TOOLCHAIN_URL)
ARM arm-none-eabi K64F (Kinetis / Teensy 3.5) fournie dans le depot sous tools/arm (aucune installation)

Comme les deux chaines de compilation sont des binaires Linux / croises, le build s’execute en natif sous Linux, dans Docker sous macOS et via WSL1 sous Windows :

Script Plateforme Notes
setup_zSoft.sh Linux (natif) / macOS (Docker) Installe les outils de build de base + la chaine de compilation ZPU ; sous macOS, il compile dans l’image Docker zsoft-build:latest.
setup_zSoft_windows.cmd Windows 10 / 11 Lanceur a double-clic qui appelle le script PowerShell ci-dessous.
setup_zSoft_windows_native.ps1 Windows 10 / 11 (WSL1) Configure WSL1 (distribution par defaut Ubuntu-24.04) et y execute l’installation Linux.
setup_zSoft_wsl1.sh dans WSL1 L’etape d’installation Linux invoquee automatiquement dans la distribution WSL1.

Linux / macOS — setup_zSoft.sh

chmod +x setup_zSoft.sh
./setup_zSoft.sh

Windows 10 / 11 — setup_zSoft_windows_native.ps1 — double-cliquez sur setup_zSoft_windows.cmd, ou depuis une invite PowerShell :

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_zSoft_windows_native.ps1

L’installation clone ZSOFT_REPO_URL (par defaut https://git.eaw.app/eaw/zSoft.git) dans ~/zSoft. Une fois terminee, compilez ZPUTA avec (build.sh selectionne automatiquement natif / Docker / WSL1 selon l’hote) :

./build.sh -C Evo  -O zputa      # ZPUTA for the Evo ZPU
./build.sh -C K64F -O zputa      # ZPUTA for the K64F (ARM Cortex-M4)
./build.sh -h                    # all options (-C CPU, -I IOCP, -O os, -o os ver, addresses, sizes ...)
Les sorties se trouvent sous build/ et build/SD/ — la ROM d'amorcage (BOOT.ROM / BOOTTINY.ROM), le chargeur d'amorcage IOCP_<func>_<addr>.bin et le .bin de ZPUTA, plus les binaires d'applications bin/ prets a copier sur une carte SD formatee en FAT.

Substitutions d’environnement utiles :

Variable Role
ZSOFT_REPO_URL Depot a cloner (par defaut https://git.eaw.app/eaw/zSoft.git).
ZSOFT_DIR Compiler dans une copie de travail existante au lieu de cloner.
ZPU_TOOLCHAIN_URL Emplacement de l’archive de la chaine de compilation zpu-elf-gcc 3.4.2 installee dans /opt/zpu.
ZSOFT_BUILD_IMAGE Image Docker utilisee pour le build macOS (par defaut zsoft-build:latest).
ZSOFT_WSL_DISTRO Nom de la distribution WSL1 sous Windows (par defaut Ubuntu-24.04).
ZSOFT_ASSUME_YES=1 Accepte toutes les invites de maniere non interactive (installations sans surveillance / CI).
Si vous preferez compiler a la main ou scriptez un pipeline CI, le build manuel — les chemins, la liste des outils, l'arborescence du build et la matrice complete des indicateurs de build.sh — est documente dans la section Build logiciel juste en dessous.


Build logiciel

La documentation complete du build est dans la version anglaise.

Credits

Les credits et licences sont identiques a la version anglaise.

Licences

La licence FreeBSD

Ce projet est sous licence FreeBSD. Details dans la version anglaise.

La GNU Public License v3

Des parties de ce projet sont sous GPLv3. Details dans la version anglaise.