2010-12-07 23 views
0

J'essaie d'appeler une fonction C qui réside dans une adresse de mémoire spécifique (0x100h) mais chaque fois que je regarde l'appel de fonction avec le débogueur JTAG, il saute juste dessus (pas d'appel de fonction) et passe à la ligne de code suivante. J'ai mis la fonction appelée dans #pragma code_section (called_func, "FUNC_SEC") pour le lier à l'adresse mémoire. La fonction réelle réside dans le fichier funcs.c.Appelez la fonction C à partir d'une adresse de mémoire spécifique? (TI code composer studio 3.3)

Mon fichier linker project.cmd a la mémoire et les lignes suivantes sections ..

MEMORY 
{ 
FUNC_SEC   : origin = 0x000100, length = 0x0000ff 
} 

SECTIONS { 
CALLED_FUNC  : LOAD = FUNC_SEC, PAGE = 0 { 
    ..\release\Tests.obj(.text) 
} 
} 

Lorsque l'on regarde à l'adresse 0x100h, il est vide, ce qui expliquerait la fonction ne fonctionne pas correctement. Ce que j'essaie d'accomplir est d'appeler une fonction qui réside dans une zone RAM DSP (TMS320c28x) et de l'exécuter. Après avoir fait son truc, le programme reprend dans la zone de mémoire flash DSP.

Remarque, les noms de fonction etc .. ont été modifiés

peut que quelqu'un peut me aider avec ce problème? Merci !

Répondre

2

Peut-être voulez-vous revoir vos routines de démarrage. Votre fonction est copiée correctement depuis l'adresse de chargement pour exécuter l'adresse.

+0

Le problème a été résolu en transférant la fonction au flash interne. Donc, vous avez probablement raison sur les routines de démarrage. – user350636