Cecko dotaz - help
Martin Krecmer
krecmerhw@adash.cz
Úterý Květen 18 17:12:16 CEST 2004
> chtel bych se zeptat, jesti existuje v Ccku nejaky prikaz nebo fce pro
> ofset programu. Neco jako ORG v assembleru. Potrebuji to v Keilu
> posunout a nevim jak. Protoze jsem v C holy zacatecnik, tak se obracim
> na zde prislusne a zkusene borce... o)
Obecne to nejde, protoze absolutni adresy dava programu az linker.
Tj. linkeru pak muzete prikazat, ze modul, funkce nebo konstanta ma lezet
od urcite adresy nebo jejich poradi. Je to popsano v manualu (pdf) Keil linkeru.
Zkracene Vam muzu nastinit volani linkeru (priklad z manualu):
BL51 A.OBJ CODE(?PR?FUNC1?A (0x800), ?PR?FUNC2?A)
Znamena, ze funkci FUNC1 z modulu A umisti na adresu 800H a za ni bude
nasledovat funkce FUNC2 z modulu A.
Modul= zkompilovany soubor A.C -> A.OBJ
Taky muzete napsat
BL51 A.OBJ CODE(0x8000 - 0xFFFF)
cimz jste definoval rozsah pameti programu od 8000H do FFFFH, tzn
vsechno bude od 8000 (krome vektoru preruseni.
V Keil C existuje keyword _at_ ,ktery umoznuje umistit na absolutni adresu
deklarovanou promennou. Nic vic.
M.Krecmer
Další informace o konferenci Hw-list