Maison  >  Questions et réponses  >  le corps du texte

c++ - Comment écrire des données à une adresse spécifique dans la section .text en utilisant gcc

1. Maintenant, je dois insérer des données dans une certaine adresse de .text (segment de code). Par exemple {'a','b','c','d','e','f','g','g'}
用的代码是char sgy_data2[32] __attribute__((section(".mysection1"))) = {'a','b','c','d','e','f','g','g'};
L'adresse de départ de mon segment .text est 0XFFFE8000, puis je souhaite écrire des données à 0XFFFE8400 (la longueur totale du .text est supérieure à 1024). Que dois-je faire ?
2. Si vous avez utilisé E2 avec succès, pouvez-vous me dire comment le configurer ?

PHP中文网PHP中文网2660 Il y a quelques jours973

répondre à tous(1)je répondrai

  • phpcn_u1582

    phpcn_u15822017-06-10 09:50:37

    Pour E2 : afin que vos données soient renseignées dans vos sections, vous devez suivre quelques étapes supplémentaires. Après avoir ajouté la section, faites un clic droit dessus et ajoutez les deux expressions suivantes :
    .section-name
    .section-name.*.
    (Explication officielle GNU)
    Si vous n'ajoutez pas l'option keep, peu importe la façon dont vous définissez la variable, vous devez "utiliser" cette variable, sinon le compilateur ignorera cette variable et n'écrira pas ce que vous voulez dans le fichier bin .données requises.
    Quant aux autres situations, c'est similaire.

    .text 0xFFE00000 : AT (0xFFE00000)
        {
            *(.text)
            *(.text.*)
            *(P)
            etext = .;
        } > ROM
        
        相对应的你的gsi文件应该是这么样的

    répondre
    0
  • Annulerrépondre