psychedelical
Messages postés2Date d'inscriptionsamedi 19 avril 2008StatutMembreDernière intervention 3 mai 2010
-
3 mai 2010 à 13:44
psychedelical
Messages postés2Date d'inscriptionsamedi 19 avril 2008StatutMembreDernière intervention 3 mai 2010
-
3 mai 2010 à 14:26
Bonjour,
J'ai un léger souci avec un projet C que je mène sous Mplab...
Je suis en train de revoir un projet (Mplab) qui devrait normalement configurer une télécommande pour que celle-ci ouvre et referme un volet roulant et ceci en appui maintenu.
La transmission de l'info se fait via protocole Radio (433 MHz).
Seulement voilà, après avoir éliminé certaines variables, en ai rajouté quelques unes, et optimisé les différentes fonctions et instructions, Mplab me crache cette erreur:
Error [1347] ; 0. can't find 0x0 words (0x0 withtotal) for psect "strings" in segment "CODE" (largest unused contiguous range 0xFD)
J'utilise le compilateur Hi-Tech 9.70 en pro mode pendant une vingtaines de jours maintenant et il sera toujours dans le même mode d'ici deux bonnes semaines encore...
Je sais que l'erreur est lié à une saturation de l'espace mémoire en RAM, mais le problème c'est que je ne devrais pas l'avoir car je l'ai retouché et éliminé les variables dites inutiles...
TASK_T taskTreat; // identité de la tache à traiter (retournée par le RTOS).
// Compteur externe décrémenté périodiquement dans le main mais géré (initialisé) par la tache Producteur de stimuli.
// Ce compteur sert pour l'appairage géré par la tache PDS (ne peut pas être géré par le clavier car on ne mesure pas
// un appui touche mais le temps écoulé APRES un appui touche.
WORD cpt_prog;
BOOLEAN comptage_appairage;//extern géré par PDS pour envoyer l evt de fin de comptage
//###################################################################################################
// CONFIGURATION BITS à placer en dehors de tte fonction (cf doc PICC)
//WAKECNT = continue on wake up
//WAKERST = wake up and reset enable
//FCMDIS = Monitor Clock Fail-safe disable
//IESODIS = Internal External Switch Over Mode disable
//BORXSLP = BOD enabled in run, disabled in sleep, SBOREN disabled
//MCLRDIS = MCLR functions as IO
//PWRTEN = Power Up Timer enable
//WDTDIS = Watchdog Timer disable
//INTIO = Internal RC No Clock
//####################################################################################################
/*______________________________________________________________________________________________
*
* Fonction : main
*
* Description : Programme principal. Vient ici après un reset à froid.
*
*______________________________________________________________________________________________
*/
#if _DEBUG_WATCHDOG
BYTE cpt_watchdog=0;
#endif
void main()
{
// ********************************************************
// ************ Installer le noyau temps réel *************
// ********************************************************
RTOS_KernelInitialize();
RTOS_TimeBaseCreate( NB_TICK_PAR_PERIODE ); // Règler la base de temps pour la tache périodique à 4 ms.
// ********************************************************
// ***************** Init des classes *********************
// ******************************************************** // init de la classe CLAVIER
CLAVIER_Initialise();
// init de la classe Producteur De Stimuli
PDS_Initialise();
// init de la classe LED
LED_Initialise();
//crétion de l'horloge système
SYS_TickCreate();
//init de l'eeprom
EEPROM_InitClasse();
// ********************************************************
// **************** BOUCLE PRINCIPALE *********************
// ********************************************************
FOREVER
{
switch ( taskTreat=RTOS_TaskSchedule() )
{
case TASK_CYCLIC:
#if _DEBUG_WATCHDOG
// le système doit entrer en RESET (34*4ms=136ms clearwdt et le watchdog claque à 132 prescaler 4096 et 31kHz ms)
cpt_watchdog++;
if (cpt_watchdog==30)
{
cpt_watchdog=0;
#endif
// robustesse...
SYS_RafraichairPorts();
#if _DEBUG_WATCHDOG
}
#endif
//tache clavier
CLAVIER_TaskProcess();
//tache LED
LED_TaskProcess();
// décrémentation cyclique du compteur utilisé pour l'appairage
if( comptage_appairage==TRUE && --cpt_prog==0 )
{
comptage_appairage= FALSE;
PDS_TaskProcess(PRIO_EVT);
}
break ;
case TASK_PDS_EVT:
PDS_TaskProcess(PRIO_EVT);
break;
case TASK_PDS_MSG:
PDS_TaskProcess(PRIO_MSG);
break;
default:
// tache background (on ne fait rien)
// L'endormissement du micro est géré par la tache PDS, qui gère l'émission des trames RTS
break;
}
}//FOREVER
}
Après compil:
HI-TECH C Compiler for PIC10/12/16 MCUs (Standard Mode) V9.70
Copyright (C) 2009 Microchip Technology Inc.
Serial number: HCPICP-08410 (Standard)
Warning [764] C:\Documents and Settings\STAGE7\Desktop\teleco3\protocoleU56.c; 255. mismatched comparison
Error [1347] ; 0. can't find 0x0 words (0x0 withtotal) for psect "strings" in segment "CODE" (largest unused contiguous range 0xFD)