Problème de header et target sous Code Warrior
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Problème de header et target sous Code Warrior



  1. #1
    invite2d24c6c6

    Problème de header et target sous Code Warrior


    ------

    Bonjour à tous,
    Je suis en stage et je doit programmer une carte M52235EVB(freescale) qui comporte un processeur PCF52235.
    J'ai télécharger un programme de test (ColdFire_Web_Server) mais lorsque je compile j'ai 1228 erreurs seulement!
    La plupart de ces erreur sont des erreur pour inclure les .h (headers introuvable) le problème c'est que j'ignore où je peut les trouver!
    Headers à trouver :
    ansi_prefix.E68k.h
    stdarg.win32.h
    stdarg.EPPC.h
    stdarg.MIPS.h
    size_t_mach.h
    etc....
    Je doit en avoir une centaines
    Je suis allez sur le site de freescale pour voir si on pouvait les télécharger mais je n'est rien trouver....

    Autre problème, avec ce magnifique programme il y avait un "tuto" pdf que j'ai suivit à la lettre.Mais lorsque que le gars ouvre son projet , il a plein de cibles (targets) alors que moi j'en ai que 2
    Donc est-ce possible de rajouter des cible et si oui comment?

    Merci à ceux qui auront le courage de m'aider

    P.S: j'utilise CodeWarrior IDE version 5.9.0




    P.S: j'ai poster sur le forum électronique par erreur donc si un gentil modo adoré pouvait supprimer ce message.

    -----

  2. #2
    invitec87ecf0a

    Re : Problème de header et target sous Code Warrior

    si tu veut la pile TCP/IP qui contient le web server suit ce lien :
    https://www.freescale.com/webapp/sps...WNLOAD_ID=null
    mais i faut que tu soit inscrit sur le site freescale.
    tu aura deja un peu moins d'erreur mais il me semble qu'il te faudra encore resoudre quelque erreur afin que ca marche correctement

  3. #3
    invite2d24c6c6

    Re : Problème de header et target sous Code Warrior

    Merci j'avais télécharger ce .zip mais de toute façon je suis sur une autre carte et j'essaye de faire clignoter une led et de mettre en place timer et interruption (la grosse galère pour moi )
    J'aurais besoin de quelqu'un qui s'y connait bien car j'ai plein de question

  4. #4
    invitec87ecf0a

    Re : Problème de header et target sous Code Warrior

    sur quelle carte travaille tu je peux peut etre t aider

  5. A voir en vidéo sur Futura
  6. #5
    invite2d24c6c6

    Re : Problème de header et target sous Code Warrior

    Salut,
    Je bosse sur un µC MCF52235RM.
    La carte a était produite par la boîte dans laquelle je fait mon stage.
    Cette carte sera placé dans des maisons témoins et devra relevé des valeur de production d'énergie renouvelable (toute les énergies renouvelables) et faire des statistiques sur les économie faîtes.
    Pour l'instant étant débutant dans les systèmes embarqué, je doit faire clignoter une LED toute les seconde par exemple...
    Mon problème c'est que elle clignote tout les 10µs et que j'arrive pas à regler le timer pour changer sa (quand je change la valeur du prescaler sa ne change rien)
    Mon fichiers de configuration du timer :

    Code:
    #ifndef __TIMER_H__
    #define __TIMER_H__
    
    
    void
    mcf52235_interrupt_init(uint8 source, uint8 ipl, void (*handler)(void));
    
    /* FUNCTION: GPTA_Timer_Init()
     *
     * Initialise and enable General Purpose Timer A0 to work like
     * a PIT.
     *
     * PARAM2: Prescaler value - sets the tick frequency to
     *     (system clock/2) divided by 2^PCSR
     *
     * PARAM3: Modulo counter - sets the mumber of ticks per interrupt
     *
     * PARAM4: Interrupt handler
     *
     * RETURNS: none
     */
    #include "MCF52235.h"
    #define ADDRESS			uint32
    void
    GPTA_Timer_Init(uint8 PCSR, uint16 PMR, void (*handler)(void))
    {	
    	uint8 ipl = MCF_INTC_ICR_IL(2)
    	    | MCF_INTC_ICR_IP(0);
    
    	// Disable timer A
    	MCF_GPTA_GPTSCR2 = 0;
    	// Set up interrupt handler
    	mcf52235_interrupt_init(44, ipl, handler);		
    
    	// Set modulo count
    	// (= number of ticks per interrupt)
    	MCF_GPTA_GPTC0 = PMR;
    	
    	
    	// Tick frequency = (system clock/2) divided by 2^PCSR
    	MCF_GPTA_GPTSCR2  =0x87;
    	MCF_GPTA_GPTIOS = MCF_GPTA_GPTIOS_IOS0;
     	MCF_GPTA_GPTIE = MCF_GPTA_GPTIE_CI0;
    	
    	// Enable timer A
    	MCF_GPTA_GPTSCR2 = MCF_GPTA_GPTSCR2_TOI;
    	MCF_GPTA_GPTSCR1 = MCF_GPTA_GPTSCR1_GPTEN;
    }
    /* FUNCTION: mcf52235_interrupt_init()
     *
     * Initialise an interrupt handler for an interrupt source
     * for INTC0. If the handler is a NULL pointer, then mask
     * this interrupt.
     *
     * PARAM1: Interrupt source (1..62)
     *
     * PARAM2: Interrupt level and priority
     *
     * PARAM3: Interrupt handler
     *
     * RETURNS: none
     */
    void
    mcf52235_interrupt_init(uint8 source, uint8 ipl, void (*handler)(void))
    {
    // Only for user defined vectors in INTC0
     if ((source > 0) && (source < 63))
     {
      // Interrupts should be disabled to avoid vector problems
      // and to ensure that a spurious interrupt exception can't
      // be generated.
      uint8 sysint =(uint8) asm_set_ipl(7);
    
      if (handler)
      {
       // Set interrupt priority level
       MCF_INTC0_ICR(source) =(uint8)(ipl & 0x3F);
    
       // Set vector
       mcf5xxx_set_handler(source+64, (ADDRESS)handler);
    
       // Clear mask for this handler
        MCF_INTC0_IMRL &= ~(MCF_INTC_IMRL_MASKALL);
        MCF_INTC0_IMRH &= ~(MCF_INTC_IMRH_INT_MASK44);
      }
      else
      {
       // Set vector
       mcf5xxx_set_handler(source+64, (ADDRESS)handler);
    
       // Set mask for this handler
      
        MCF_INTC0_IMRH |= MCF_INTC_IMRH_INT_MASK44;
      }
    
      // As you were...
      //asm_set_ipl(sysint);
     }
    }
    /********************************************************************/
    
    #endif
    Mon main :
    Code:
    /*
     * main implementation: use this sample to create your own application
     *
     */
    
    #define __interrupt__   __declspec(interrupt)
    #include "support_common.h" /* include peripheral declarations and more */
    #include "MCF52235.h"
    #include "timer.h"
    
    #if (CONSOLE_IO_SUPPORT || ENABLE_UART_SUPPORT) 
    /* Standard IO is only possible if Console or UART support is enabled. */
    #include <stdio.h>
    #endif
    __interrupt__
    void
    timer_handler(void)
    {
    	MCF_GPIO_PORTUB^=0x01;
    	// Clear interrupt
    	MCF_GPTA_GPTFLG2 = MCF_GPTA_GPTFLG2_TOF; 
    }
    int main(void)
    {
    	MCF_CLOCK_SYNCR=0x0705;//PLL bypass
    	MCF_CLOCK_SYNSR=0x80;//Horloge externe
    	
    	GPTA_Timer_Init(5, 65535, timer_handler);
    	mcf5xxx_irq_enable();
    	MCF_GPIO_PORTUB=0;
    	MCF_GPIO_DDRUB=0x07;
    	while(1)
    	{
    		MCF_GPIO_PORTUB^=0x02;	
    	}
    }
    Et voila tout sa pour rien car rien ne marche
    Merci d'essayer de m'aider
    A+

  7. #6
    invitec87ecf0a

    Re : Problème de header et target sous Code Warrior

    as tu bien precisé dans ta table de vecteur d'interruption ta fonction d'interruption?

  8. #7
    invite2d24c6c6

    Re : Problème de header et target sous Code Warrior

    Oui j'y ai pensé
    Code:
    /*
     * File:	vectors.s
     * Purpose:	MCF5223 vector table
     */
    
    #ifdef __GNUC__ /* { */
    #define sr %sr
    ...
    #define _timer_handler	 timer_handler
    #endif /* } __GNUC__ */
    
    	.global VECTOR_TABLE
    	.global _VECTOR_TABLE
    	.global start
    
    ...
    	.extern _ethernet_handler
    	.extern _timer_handler
    		//rajouté
    	.text
    ...
    vector69:	.long	_timer_handler

  9. #8
    invite2d24c6c6

    Re : Problème de header et target sous Code Warrior

    Ok c'est bon j'y suis arrivé
    J'ai utilisé les timer PIT finalement
    les différentes fonctions si sa intéresse quelqu'un
    Code:
    void
    timer_initialize(void (*timer_handler)(void))
    {
    	uint8 ipl;
        // enable pit0 timer interrupt
        __VECTOR_RAM[119] = (uint32)timer_handler;
        ipl=MCF_INTC0_ICR55 = MCF_INTC_ICR_IL(2)|MCF_INTC_ICR_IP(0);
        MCF_INTC0_IMRH &= ~MCF_INTC_IMRH_INT_MASK55;  // pit0
        MCF_INTC0_IMRL &= ~MCF_INTC_IMRL_MASKALL;
        // configure pit0 to interrupt every 1 ms
        MCF_PIT0_PCSR = 0;
        MCF_PIT0_PMR = 2500;  //24000 1 ms @ 48 MHz
        MCF_PIT0_PCSR = MCF_PIT_PCSR_PRE(0)|MCF_PIT_PCSR_OVW|MCF_PIT_PCSR_PIE|MCF_PIT_PCSR_RLD|MCF_PIT_PCSR_EN;
        mcf52235_interrupt_init(55, ipl, timer_handler);
    }
    Code:
    int volatile ticks;  // incremented by pit0 isr every millisecond
    int volatile seconds;  // incremented by pit0 isr every second
    
    // called by pit0 every millisecond
    __interrupt__
    void
    timer_handler(void)
    {
        int halves;
        
    	MCF_PIT0_PCSR |= MCF_PIT_PCSR_PIF;
        ticks++;
    
        if (ticks%500 == 0) {
            halves = ticks/500;
        	ticks = 0;
            MCF_GPIO_PORTUB^=0x01;
    		
            if ((halves&1) == 0)
            {
            	seconds++;
            }       
        }
    }
    Désoler pour les commentaire en anglais

Discussions similaires

  1. Problème de header et target sous Code Warrior
    Par invite2d24c6c6 dans le forum Électronique
    Réponses: 1
    Dernier message: 06/06/2008, 08h03
  2. problème ajout de fichier à projet sous code::blocks
    Par inviteead871d5 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 02/06/2008, 14h46
  3. librairie code warrior
    Par invitef1539ac2 dans le forum Électronique
    Réponses: 1
    Dernier message: 23/05/2008, 22h50
  4. [PIC] Header ??
    Par invitef900c612 dans le forum Électronique
    Réponses: 23
    Dernier message: 01/06/2006, 11h07
  5. Prince of Percia / Warrior Within
    Par invite69650a61 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 12/12/2004, 00h43
Découvrez nos comparatifs produits sur l'informatique et les technologies.