Programmation des pic en C [résolu]

Bonjour,

Alors voila depuis quelques temps je cherche a compiler un code créer en C pour l’avoir en hex.

Mais voila j’ai télécharger maplab utilisation avec Wine j’ai teste gcc mais je n’arrive a rien même pour un code simple qui active et coupe une sortie.

void main(void)
{
PORTB = 0;
TRISB = 0b11110000;

RB0 = 1;
RB0 = 0;
}

Alors je me remet a vous qu’utiliser vous comme logicielle par contre je souhaite dans le meilleur des cas rester sous C.

Merci.
Olivier

.

Essayes Ktecthlab. A priori on peut faire du C, mais dans la doc on parle plus de microbe.

Dans cette doc en pdf on trouve du c dans la dernière page.

dmon@Etchy:~$ apt-cache search ktechlab ktechlab - circuit simulator for microcontrollers and electronics dmon@Etchy:~$ apt-cache policy ktechlab ktechlab: Installé : 0.3-6 Candidat : 0.3-6 Table de version : *** 0.3-6 0 100 /var/lib/dpkg/status 0.3-5 0 500 ftp://ftp.free.fr etch/main Packages 500 ftp://ftp2.fr.debian.org etch/main Packages dmon@Etchy:~$ apt-cache search sdcc sdcc - Small Device C Compiler sdcc-doc - Small Device C Compiler (documentation) sdcc-libraries - Small Device C Compiler (libraries) sdcc-ucsim - Micro-controller simulator for SDCC

SDCC Compiler User Guide
SDCC le compilateur C open source

J’ai pas spécialement de réponse pour toi mais si tu te lances dans le PIC va voir ce site (si ce n’est pas déjà fait)
http://www.abcelectronique.com/bigonoff/
Ce mec là a dépanné plein de monde (dont moi) sur PIC.

[quote=“olivier.34”]je n’arrive a rien même pour un code simple qui active et coupe une sortie.
[/quote]

Donne nous au moins les erreurs générées par le compilateur si il y en a !
En gros, c’est quoi qui ne fonctionne pas ?

Bonjour,

antalgeek:
J’ai effectivement déjà regarder et télécharger les fichiers c’est très bien expliqué mais mplab avec emulateur wine ne marche pas j’ai plusieur erreur au démarrage de plus il faudrait apprendre l’asemblage que je ferais en dernier recour.

thialme:
Les erreurs 1° mplab ne fonctionne pas correctement et apres compilation tout le contenu du fichier source s’efface il y a juste un “” apres réouverture.
Et j’ai juste BUILD FAILED même pas un petit signe qui permet de trouvé l’erreur.

tellmewhy:
C’est pas grave merci quand même.

dmon:
Merci pour se programme que je viens d’installé j’ai juste regarder en gros et je vais voir se que l’on peut faire car il semble effectivement que l’on peut faire de la programation.
J’ai réussi a faire une compilation serte avec des erreur mais au moins je vois qu’il y a des erreur on peut le complier en asm hex donc c’est surement se qu’il faut.

Je vous tient au courrant.
merci pour vos réponse.

[quote=“olivier.34”]dmon:
Merci pour se programme que je viens d’installé j’ai juste regarder en gros et je vais voir se que l’on peut faire car il semble effectivement que l’on peut faire de la programation.
J’ai réussi a faire une compilation serte avec des erreur mais au moins je vois qu’il y a des erreur on peut le complier en asm hex donc c’est surement se qu’il faut.[/quote]

J’oubliais il y a aussi un debuger gpsim. Normalement il est installé automatiquement avec Ktechlab.

dmon@Etchy:~$ gpasm toto.asm dmon@Etchy:~$ gpsim
Et ouvrir le fichier toto.cod pour faire la simulation sous gpsim.

Pour la programmation des cartes il existe cet outil en autres :
Using the Velleman K8048 / K8076 PIC Programmer in FreeBSD, NetBSD, Linux, CYGWIN (Windows) and MACOS/X (UNIX / POSIX)

Intro to Programming PIC Microcontrollers in Linux
Programming PIC’s in Linux using C with SDCC
Testing C Interrupts using Breakpoints in GPSIM
Linux Compatible PIC Programmers

Bonjour,

Alors la vraiment super pour les liens cela fait plaisirs de voir qu’il existe pleins de chose qui fonctionne sous GNU/Linux Debian

La compilation marche pour le mode asm mais pour passer en hex j’ai quelques erreur ou il ne trouve pas PORTA TRISA

error: missing definition for symbol "_TRISA", required by "/tmp/kde-olivier/ktechlabRGYB6b.o" error: missing definition for symbol "__sdcc_gsinit_startup", required by "/tmp/kde-olivier/ktechlabRGYB6b.o" error: missing definition for symbol "_TRISB", required by "/tmp/kde-olivier/ktechlabRGYB6b.o" error: missing definition for symbol "_PORTB_bits", required by "/tmp/kde-olivier/ktechlabRGYB6b.o"

Je regarderais cela demain car demain je me léve tôt pour payer l’essence :slightly_smiling:

Encore merci.

Bon à savoir tous ces petits liens …

Pour ton erreur j’aurais dis une librairie manquante définissant les registres du MCU, mais si tu arrives à générer du code assembleur cela me semble être à côté :p!

Bonjour, il semble d’apres mes recherche qu’il sagis d’une erreur connu car on utilise le dossier tmp ou temp et qu’il faut placé tous les fichier dans le même dossier chose que j’ai fait mais toujours rien de bon pour le moment je vais faire d’autres essais et si vraiment je n’y arrive pas et bien je me lancerais dans l’asembleur avec bigonoff.

FREE’PIC
Getting started with PIC 16F84 on GNU/Linux
DOGS : L’ordinateur libre
La Programmation des microcontrôleurs PIC16F84 sur une Linuxette
YaPIDE

Bonjour dmon
Vraiment merci pour tout se que tu fait pour moi.
Mais j’ai beau chercher des explications sur les erreur que j’ai et je ne trouve pas d’informations précise.

Par contre j’arrive bien a compiler un .hex quand le compile de asm > hex

Quand je veut faire:
C > ASM pas de problème et ensuite de ASM > HEX j’ai:

Je ne vois pas ou il y aurrais cette définition manquante surtout que je ne comprend pas pourquoi le passage en asm se fait bien et qu’apres on me dit qu’il manque une définition.

Encore merci.
Olivier

[code]dmon@Etchy:~$ su
Password:
Etchy:/home/dmon# apt-get install sdcc
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances… Fait
Les paquets supplémentaires suivants seront installés :
sdcc-libraries
Paquets suggérés :
sdcc-ucsim
Paquets recommandés :
sdcc-doc
Les NOUVEAUX paquets suivants seront installés :
sdcc sdcc-libraries
0 mis à jour, 2 nouvellement installés, 0 à enlever et 4 non mis à jour.
Il est nécessaire de prendre 3180ko dans les archives.
Après dépaquetage, 24,1Mo d’espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? O
Réception de : 1 http://ftp2.fr.debian.org etch/main sdcc-libraries 2.6.0-5 [1983kB]
Réception de : 2 http://ftp2.fr.debian.org etch/main sdcc 2.6.0-5 [1197kB]
3180ko réceptionnés en 21s (151ko/s)
Sélection du paquet sdcc-libraries précédemment désélectionné.
(Lecture de la base de données… 178315 fichiers et répertoires déjà installés.)
Dépaquetage de sdcc-libraries (à partir de …/sdcc-libraries_2.6.0-5_all.deb) …
Sélection du paquet sdcc précédemment désélectionné.
Dépaquetage de sdcc (à partir de …/archives/sdcc_2.6.0-5_i386.deb) …
Paramétrage de sdcc-libraries (2.6.0-5) …
Paramétrage de sdcc (2.6.0-5) …

Etchy:/home/dmon# exit
dmon@Etchy:~$ mkdir src/sdcc
dmon@Etchy:~$ cd src/sdcc
dmon@Etchy:~/src/sdcc $ wget http://www.micahcarrick.com/files/toggle_led.c.tar.gz
dmon@Etchy:~/src/sdcc $ tar -zxvf toggle_led.c.tar.gz
dmon@Etchy:~/src/sdcc $ sdcc --debug -mpic14 -p16f627 toggle_led.c
dmon@Etchy:~/src/sdcc $ ls
toggle_led.adb toggle_led.cod toggle_led.lst
toggle_led.asm toggle_led.c.tar.gz toggle_led.o
toggle_led.c toggle_led.hex toggle_led.p

dmon@Etchy:~/src/sdcc $ gpsim -pp16f627 -s toggle_led.cod toggle_led.asm[/code]

Bonjour,

C’est vraiment très gentil de ta part j’obtient bien le fichier hex avec mon code et en plus il marche.

En effet en ligne de commande c’est impeccable du coup KTechlab je peut m’en passer ainsi que de mplab.
Je ne sais comment te remercie.
Olivier

Ktechlab peut être intéressant pour la périphérie externe, mais il n’est pas bien puissant. Je ne crois pas qu’on est un outil équivalent à Proteus sous Linux.

Bonjour,
En effet mais pour mes circuit j’utilise Quik Route (QR) car ktechlab ferme quand je veut ajouter des composants de plus je suis habitué avec QR depuis 1995 et j’ai déjà réaliser pas mal de circuits mais il marche un peut moins bien sous Wine.

On m’avais aussi proposé Kicad sous GNU/Linux très bien aussi mais obligé d’utilisé le routage pour la création des pistes car impossible de le faire directement.

En tout cas merci