[Programmation] Conflit entre interruptions
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Conflit entre interruptions



  1. #1
    invite2665b703

    Conflit entre interruptions


    ------

    Bonjour,

    Je travaille avec le microprocesseur Atmel SAM3X8E et le logiciel Atmel 7.

    Je souhaite établir une communication Ethernet (TCP/IP) de mon PC vers ma carte de programmation. Pour la carte de programmation, la réception des données doit tourner grâce à une tâche de freeRTOS. Mon ordinateur doit envoyer les données.

    Sans la tâche, la réception des données fonctionne bien mais lorsque je mets la partie réception dans une tâche de FreeRTOS, après 1 réception mon programme bloque dans un handler d'IRQ inutilisées…

    Code:
    **
     * \brief Default interrupt handler for unused IRQs.
     */
    void Dummy_Handler(void)
    {
     while (1) {
     }
    }
    Cet handler d'IRQs est utilisé pour tous mes handler :
    Code:
    void EMAC_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
    void USART0_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
    void USART1_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
    void USART2_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
    void PIOA_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
    void PIOB_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));
    ...
    Après 1 envoi, les IRQs de mon EMAC (ethernet) passent bien (j'ai vérifié avec quelques print). Je ne sais pas comment mais mon programme va toujours dans ce handler infini. Pourtant j'ai bien initialisé mes interruptions et les 2 fonctionnalités (réception de data par Ethernet et les taches FreeRTOS) fonctionnent très bien tout seul.
    Je pense que c'est un problème de conflit entre les IRQ de FreeRTOS et les IRQ d'emac mais je ne suis pas sûr.

    Avez vous une idée de comment régler ce problème ?

    -----

  2. #2
    invite2665b703

    Re : Conflit entre interruptions

    Après quelque recherches j'ai trouvé le handler qui me bloquait après la première réception par ethernet :

    Code:
    /* Cortex-M3 core handlers */
    void HardFault_Handler ( void ) __attribute__ ((weak, alias("Dummy_Handler")));

  3. #3
    invite2665b703

    Re : Conflit entre interruptions

    Et voici ma tâche freeRTOS qui provoque l'appelle de ce handler :

    Code:
    void task_ethernet(void *param)
    {
    	uint32_t ul_frm_size = 0;
    	
    	while(1)
    	{
            	//Check if the ethernet cable is plug (=1) or not
    		if (TFT_get_eth_active() != 0)
    		{
    			if (emac_dev_read(&gs_emac_dev, (uint8_t *) gs_uc_eth_buffer, sizeof(gs_uc_eth_buffer), &ul_frm_size) == EMAC_OK) {
                        		//This function find the ethernet protocol of the trame and do some print in function of the protocol use
    				emac_process_eth_packet((uint8_t *) gs_uc_eth_buffer, ul_frm_size);
    			}		
    			vTaskDelay(pdMS_TO_TICKS(5));
    		}
    		else{
    			vTaskDelay(pdMS_TO_TICKS(500));
    		}
    	}//Fin du while
    	vTaskDelete( NULL );
    }

  4. #4
    invite2665b703

    Re : Conflit entre interruptions

    Je viens de trouver la solution, je ne donnais pas assez de stack a ma tâche pour fonctionner !

  5. A voir en vidéo sur Futura

Discussions similaires

  1. PIC 18F4620 Conflit entre I2C et PWM
    Par invite79d00d4d dans le forum Électronique
    Réponses: 9
    Dernier message: 06/02/2010, 19h34
  2. conflit entre 2 JS
    Par invite36ec7083 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 04/08/2008, 19h39
  3. Conflit entre les antispywares?
    Par invite4056b889 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 28/10/2006, 22h15
  4. Conflit entre antivirus
    Par invite0ff01d31 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 28/02/2006, 10h00
  5. conflit entre software
    Par invite216cbd05 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 23/02/2006, 19h54
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...