Fehler #530
change "binary" macro
Beginn:
07.06.2024
Abgabedatum:
% erledigt:
0%
Geschätzter Aufwand:
CS Zielversion:
Beschreibung
The macro relies that the symbols are placed in an fixed order. This may not be the case in future linker versions.
this can easily changed by using symbols in assembler.
#define CONCAT_(a, b) a##b
#define CONCAT(a, b) CONCAT_(a, b)
#define binary(path, file, variableBase) asm ( \
"" #variableBase "Data:\n" \
".incbin \"" path file "\"\n" \
"" #variableBase "End:\n" \
".set " #variableBase "SizePtr, . -" #variableBase "Data\n" ); \
extern char CONCAT(variableBase, Data); \
extern char CONCAT(variableBase, End); \
extern char CONCAT(variableBase, SizePtr); \
void* CONCAT(variableBase, Start) = &CONCAT(variableBase, Data); \
address_t CONCAT(variableBase, Size)= (address_t)&CONCAT(variableBase, SizePtr);
static_assert ( sizeof ( unsigned long long ) == 8 );
static_assert ( sizeof ( void* ) == 8 );
Dateien
Historie
Von Maximilian Seesslen vor 8 Monaten aktualisiert
- Datei ld_test.tgz ld_test.tgz wurde hinzugefügt
Von Maximilian Seesslen vor 4 Monaten aktualisiert
- Beschreibung aktualisiert (diff)
- Status wurde von Neu zu Erledigt geändert
- Zielversion wurde auf v0.2.0 gesetzt