Ich bin neu im GNU-Compiler.Verknüpfen der Linker-Skriptdatei mit dem Quellcode
Ich habe eine C-Quellcode-Datei, die einige Strukturen und Variablen enthält, in denen ich bestimmte Variablen an einem bestimmten Ort platzieren muss.
Also, ich habe eine Linker-Skript-Datei geschrieben und verwendet __ attribute__("SECTION")
bei Variablendeklaration, in C-Quellcode.
Ich verwende einen GNU-Compiler (Cygwin), um den Quellcode zu kompilieren und eine .hex-Datei mit der Option -objcopy
zu erstellen.
Ich füge die Linker-Skriptdatei und die C-Quelldatei als Referenz an.
Bitte helfen Sie mir die Linker-Skriptdatei mit meinem Quellcode zu verknüpfen, während Sie die .hex-Datei mit GNU erstellen.
/*linker script file*/
/*defining memory regions*/
MEMORY
{
base_table_ram : org = 0x00700000, len = 0x00000100 /*base table area for BASE table*/
mem2 : org =0x00800200, len = 0x00000300 /* other structure variables*/
}
/*Sections directive definitions*/
SECTIONS
{
BASE_TABLE : { } > base_table_ram
GROUP :
{
.text : { } { *(SEG_HEADER) }
.data : { } { *(SEG_HEADER) }
.bss : { } { *(SEG_HEADER) }
} > mem2
}
C-Quellcode:
const UINT8 un8_Offset_1 __attribute__((section("BASE_TABLE"))) = 0x1A;
const UINT8 un8_Offset_2 __attribute__((section("BASE_TABLE"))) = 0x2A;
const UINT8 un8_Offset_3 __attribute__((section("BASE_TABLE"))) = 0x3A;
const UINT8 un8_Offset_4 __attribute__((section("BASE_TABLE"))) = 0x4A;
const UINT8 un8_Offset_5 __attribute__((section("BASE_TABLE"))) = 0x5A;
const UINT8 un8_Offset_6 __attribute__((section("SEG_HEADER"))) = 0x6A;
Meine Absicht ist es, die Variablen des Abschnitts „BASE_TABLE“ an der Adresse zu platzieren i die Linker-Skript-Datei definiert und die übrigen Variablen in der „SEG_HEADER“ definiert in die Linker-Skriptdatei oben.
Aber nach dem Kompilieren, wenn ich in der .hex-Datei schaue die verschiedenen Abschnitt Variablen befinden sich in verschiedenen Hex-Datensätze, an einer Adresse von 0x00, nicht die in Linker-Skript-Datei angegeben.
Bitte helfen Sie mir beim Verknüpfen der Linker-Skript-Datei mit dem Quellcode.
Gibt es Befehlszeilenoptionen zum Verknüpfen der Linker-Skript-Datei, wenn mir die Informationen zur Verwendung der Optionen zur Verfügung stehen.
Vielen Dank im Voraus,
SureshDN.