J'essaie d'intégrer freeRTOS à mon application qui s'exécute sur AT32UC3A0512. J'ai téléchargé un exemple de projet FreeRTOS pour EVK1100 (il soutient le AT32UC3A) et essayer d'inclure les fichiers sources du noyau, donc ma hiérarchie d'application ressemble à:Intégration de freeRTOS à un projet existant
src
|ASF
|main.c
|freertos
|freertos-7.0.0
|source
principaux ressemble
int main()
{
char str[5];
uint8_t num;
enable_Timer();
enable_Timer_Interrupt();
sprintf (str, %03d, num);
while(1)
{
// Wait the timer interrupt to happen
}
}
maintenant par Cependant, si j'inclus le dossier freertos (aucune inclusion ni appel aux sources freertos n'est fait), l'interruption de la minuterie n'est pas déclenchée.
Il semble fou, mais je ne sais pas comment le comportement des sprintf
a changé cette façon et aussi je ne vois pas la relation entre sprintf
et le contrôleur d'interruption
Merci pour les commentaires, en effet c'est la même minuterie appelée cependant, c'est à 'prvSetupTimerInterrupt' de configurer le timer freeRTOS et nous avons mentionné que je n'appelais aucune fonction de freeRTOS, alors comment cela peut-il causer des problèmes? – fedi
Si je place la boucle while avant d'appeler 'sprintf' et d'interrompre le timer ISR, le timer interrompt le travail – fedi