WebHU - Programozási kérdések és válaszok

Contiki, MSP430: az áthelyezés csonkolva, hogy illeszkedjen a szimbólumokhoz

Jelenleg egy programot próbálok lefordítani a következő parancsokkal a Contikiben a tmote sky platformhoz:

1) "make sky-shell-exec.sky TARGET=sky"

2) "make sky-shell-exec.sky CORE=sky-shell-exec.sky TARGET=sky"

Azt kaptam, hogy az első parancs működik, de a második hiba lép fel a következőkkel:

"contiki-sky.a(symbols.o):(.rodata+0x1f00): az áthelyezés csonkolva, hogy illeszkedjen: R_MSP430_16_BYTE a sky-shell-exec.sky ABS szakaszában meghatározott "_efartext" szimbólummal szemben

contiki-sky.a(symbols.o):(.rodata+0x1f1c): az áthelyezés csonkolva, hogy illeszkedjen: R_MSP430_16_BYTE a sky-shell-exec.sky fájl .vectors szakaszában definiált '_vectors_end' szimbólummal szemben

Az én msp430-gcc verzióm 4.7.0 20120322 (mspgcc dev 20120716).

Próbáltam körülnézni, de sehol nem találtam ezt a hibát.

Feltételezem, hogy ez azt jelenti, hogy a szimbólumtáblámban nincs hely, és tömörítenem kell a kódot. Megpróbáltam ezt megtenni, és olyan ponton vagyok, ahol már nem tudom csökkenteni a kódbázist. Jól gondolom ezt?

Tudja valaki, hogy ez mit jelent, és esetleg valami módot a javítására?

Kösz!


  • Megpróbáltam megszabadulni a -g opciótól a Makefile.msp430 132. sorában, a következő javítás szerint: sourceforge.net/p/contiki/mailman/contiki-developers/thread/ Ez azonban nem segített. 06.11.2014
  • Nem kapcsolódik a Contikihez: ez volt a probléma a projektemben, és a -ggdb helyett a -gdwarf-3 opcióval oldottam meg. 02.03.2019

Válaszok:


1

Kiderült, hogy a hibám sokkal specifikusabb a működő kódbázisomra vonatkozik, mint gondoltam. A contiki 2.6 módosított verzióját használtam msp430-gcc 4.7.0-val. Volt egy virtuális gépem instant contiki 2.7-tel, majd leágaztam a módosított contiki 2.6-ot, hogy dolgozzam rajta, miközben ugyanazon a virtuális gépen dolgoztam. Az msp430-gcc 4.7.0 jól működik a contiki 2.7-hez, de amikor elkezdtem dolgozni a contiki 2.6-os ágamon, minden elromlott. A probléma legjobb véleményem szerint a Makefile.include két kódalap közötti különbségeiből fakadt. Feltételezem, hogy a contiki 2.6 nem az msp430-gcc 4.7.0-hoz készült. Tehát, hogy a 2.6-on dolgozhassak, jelenleg az msp430-gcc 4.5.3-ra váltok, és egy teljesen különálló virtuális gépet készítek a contiki 2.6-hoz, ami eddig úgy tűnik, működik... bár a sky-shell-exec példában van néhány probléma. Így valószínűleg az msp430-gcc 4.6.3-at fogom használni helyette.

11.11.2014
  • Nekem is volt msp430-gcc 4.6.x. Ugyanezt a fordítási hibát adta a contiki 2.6-nál. De a contiki 2.7 fordítása sikeres volt. 28.04.2016

  • 2

    Nem foglalkoztam ezzel a platformmal, de először építeni hibakeresési konfiguráció nélkül. Ezután ellenőrizheti a linker fájlt.

    06.11.2014
  • Kifejtenéd kicsit bővebben, mire gondolsz? Ha a hibakeresés alatt a -g opció törlését érted a CFLAGSNO-ból, így: CFLAGSNO = -Wall -mmcu=$(CC_MCU) -g $(CFLAGSWERROR) lesz: CFLAGSNO = -Wall -mmcu=$(CC_MCU) $(CFLAGSWERROR) in a Makefile.msp430 fájlomat, akkor azt hiszem, kipróbáltam, amit mond. Ennek magyarázata itt található: sourceforge.net/ p/contiki/mailman/contiki-developers/thread/. 06.11.2014
  • Azt is el tudnád magyarázni, hogyan ellenőrizhető a linker fájl, és mit keresnék az ellenőrzés során? 06.11.2014
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..