jeudi 4 octobre 2018

Neo-Retrocomputing...

Ou comment faire de la même façon que ce que l'on fait depuis des années, mais avec du matériel récent. Je possède une carte HiFive1 depuis quelques mois sans pour l'instant avoir pris la peine d'essayer de la programmer.

https://www.sifive.com/boards

L'intérêt de cette carte de développement est qu'elle est basée sur un processeur Freedom E310. Bon, me direz-vous. Cela n'est pas faux. En fait c'est du RISC-V, un jeu d'instruction libre, c'est à dire qu'il peut être copié et implémenté à peu près ou l'on souhaite, donc dans du FPGA. Sur la carte HiFive, c'est une version 32 bits qui tourne à plus de 300MHz. Le tout dans un boitier dont la surface occupée correspond à peu près à celle d'un ATmega328p qui équipe les cartes Arduino, du 8 bits à 16MHz donc. Pour fonctionner ce petit processeur E310 à besoin d'une mémoire externe de programme. Sur la carte, c'est à une EEPROM qu'est dévolu ce rôle.

Le programme chargé dans la carte se contente de faire varier la couleur d'une LED RGB. C'est joli, ça prouve que ça fonctionne et... rien de plus. Il était donc temps d'au moins tester une suite de développement dédiée à ce type de processeur. Ça tombe bien, SiFive propose directement la suite Eclipse avec compilateur adapté. A remarquer que pour une fois, cette suite est fournie sans installation. On télécharge l'application, on 'click' sur l'exécutable et c'est prêt! Rien à voir avec d'autres fournisseurs dont la mise en place de la solution de développement requiert à elle seule une équipe de plusieurs personnes pendant un certain nombre d'heure...

Le test qui 'tue' : charger l'application en mode Debug, et effectuer une séance de débogage. Et bien, mis à part une ou deux étranges subtilités de la suite Eclipse fournie par SiFive, le test est rapide à mener et s'avère de suite concluant :


Alors non seulement ça fonctionne, mais en plus c'est rapide. Pour mes tests, j'ai utilisé un PC équipé d'un ancien processeur Core 2 Duo à 3GHz (un E7500) et de 4Go de mémoire sous Windows 7/64. Muni d'un SSD, la machine est suffisamment véloce pour une utilisation confortable de la suite logicielle. Point besoin donc d'un octo-core à 4 GHz, de 128Go de ram, et de l'infâme Windows 10!

Comme le système fonctionne, je suis allé au bout du concept et ai répondu favorablement à la question posée par les développeurs de chez SiFive :


D'autres exemples sont fournis par SiFive. Cette solution matérielle et logicielle semble donc facile à utiliser, tout du moins aussi facile qu'une carte Arduino. Je vais d'ailleurs effectuer des tests personnels avec les périphériques embarqués afin d'en savoir un peu plus sur ce processeur.

A noter qu'il existe aussi une 'distribution' Arduino pour cette carte mais uniquement utilisable sous Linux, le compilateur utilisable par le système Arduino ne semble pas être, pour l'heure, disponible sous Windows.



Aucun commentaire:

Enregistrer un commentaire