Comment programmer en C sur du homemade

Comment programmer en C sur du homemade - C - Programmation

Marsh Posté le 31-07-2006 à 21:17:09    

Bonsoir à tous.
 
Je suis un débutant en informatique et, pour être honnête, ne m'y connais pas vraiment. Voilà, j'ai des notions de programmations en langage C et j'aimerai pouvoir écrire des applications avec ce langage.
 
J'ai conçu un mini-ordinateur. J'y ai choisi un processeur connu et facile à mettre en oeuvre: le z80 de Zilog. Il dispose de 16ko de ROM et 32ko de SRAM, je peux cadencer de 1.25 à 5MHz. Ma machine dispose de deux ports série RS-232C, un port parallèle (même que celui du PC), un écran LCD alpha-numérique 2x16 caractères, un écran LCD graphique 320x200 pixels, gère les imprimantes classiques (grâce au port parallèle), et sait communiquer avec un clavier norme PC/AT.
 
Voilà, je m'amuse en assembleur, j'ai réussi à écrire plein de petits softs qui font plus ou moin tout ce que je veux.. Mais ça reste très plat, et j'aimerai écrire des applications plus complexes, et le C serait une belle opportunité. Je dispose d'un cross compiler (SDCC), mais je ne peux que me borner aux limites du langages, lire et écrire dans la RAM, sortir des bits sur un port de test... Somme toute, rien.
 
Alors, tout ceci pour vous poser la question suivante: Sauriez-vous comment faire pour que je puisse utiliser ce langage sur ma machine?  
 
(Exemple: que la fonction printf() écrive sur mon écran LCD.)
 
Je vous remercie d'avance pour l'énorme aide que vous pouriez m'apporter.
 
Gilbert

Reply

Marsh Posté le 31-07-2006 à 21:17:09   

Reply

Marsh Posté le 31-07-2006 à 21:19:31    

Tu dois avoir une doc et des libs je pense avec ton truc

Reply

Marsh Posté le 31-07-2006 à 21:23:24    

Bah la machine est totalement inventée par moi-même... Je l'ai faite pour un travail d'école. J'en suis l'auteur, donc la doc bah je la connais, mais je n'ai fait que du hardware.. et des librairies je ne n'ai pas écrite puisque justement je ne sais pas en écrire. D'où réside ma question.

Reply

Marsh Posté le 31-07-2006 à 22:52:25    

trouver un compilo C pour z80
tu peut regarder du coter de la gb aussi, vu que c a peu de chose pres le mm cpu  
http://www.devrs.com/gb/  
 
tofs de la bete ?

Reply

Marsh Posté le 01-08-2006 à 00:54:41    

abaddon2002 a écrit :

Je dispose d'un cross compiler (SDCC), mais je ne peux que me borner aux limites du langages, lire et écrire dans la RAM, sortir des bits sur un port de test... Somme toute, rien.


C'est déjà pas mal.

Citation :


Alors, tout ceci pour vous poser la question suivante: Sauriez-vous comment faire pour que je puisse utiliser ce langage sur ma machine?  
 
(Exemple: que la fonction printf() écrive sur mon écran LCD.)


Il faut que tu trouve une implémentation 'freestanding' de la bibliothèque du C (c'est à dire sans système). Le principal problème est d'implémenter les flux stdin, stdout et stderr. Pour ça, il faut écrire le code de fgetc() et de fputc() (ou des fonctions de bas niveau nécessaires) sur lesquelles s'appuient ces fonctions.
 
Je conseille de connecter les flux stdin, stdout et stderr au port série, de façon à pouvoir brancher une simple console (ou un PC) sur ta machine.
 
Il y a aussi le problème du téléchargement du code qu'il faut traiter en priorité, car tu vas compiler sur un PC mais envoyer le code sur ta cible 'par le port série, je suppose). Il faut donc qu'au boot, la machine lance le code si il existe, ou attende le téléchargement si il n'y a pas de cod. Il faut aussi pouvoir passer une commande de telechargement (ou utiliser une demande d'action utilisateur temporisée lors du boot.
 
C'est bien toi qui a écrit le code de démarrage de la cible ?
 
Pour le moment, il fait quoi ?

Message cité 1 fois
Message édité par Emmanuel Delahaye le 01-08-2006 à 00:55:08

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 01-08-2006 à 11:29:02    

Emmanuel Delahaye a écrit :


C'est bien toi qui a écrit le code de démarrage de la cible ?


oui

Emmanuel Delahaye a écrit :


Pour le moment, il fait quoi ?


Bah pour l'instant je programme sur mon PC en effet, et depuis un programamteur j'écris mon code - compilé - sur une EPROM, là où le processeur va chercher sa première instruction pour le boot.
 
Je n'ai pas écrit d'OS, donc tous les programmes que j'ai écrit servent à piloter une partie de ma machine, et certains rassemblent ces fonctions pour par exemple afficher ce que je frappe au clavier, à l'écran. ça reste très sommaire donc.
 
Mais merci beaucoup pour les informations déjà données. En gros si j'ai bien compris une fois que le compilateur sait où sont les E/S, je pourrai faire qqch de bien.
 
Merci encore.
 
EDIT: Alors je me suis inspiré du PC-DOS, la fonction fputc() fait appel à une procédure _putc:: qui elle appelle une interruption à un vecteur donné et c'est ce code d'interruption qui s'occupe d'écrire sur l'écran. Maintenant ça fonctionne en simulateur mais pas en vrai, mais ce ne sont que de petits soucis.. Merci beaucoup pour l'aide apportée! :hello:


Message édité par abaddon2002 le 01-08-2006 à 12:45:55
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed