Det är inte universellt sant för Codewarrior -projekt. Startadressen för ditt program i flashminne (0xc000 i ditt fall) beror på flera faktorer:
* Mål Mikrokontroller: Olika mikrokontroller har olika minneskartor. Linker -skriptet i ditt Codewarrior -projekt bestämmer var olika delar av ditt program (kod, data, konstanter) kommer att finnas i minnet. 0xc000 är en vanlig startadress för kod i vissa inbäddade system, men inte alla.
* länkskript: Den här filen är avgörande. Den definierar minneslayouten. Linkern använder detta skript för att placera programmets avsnitt (som `.text`,` .data`, `.BSS ') i specifika minnesadresser. Om länkskriptet är konfigurerat för att placera programmets startpunkt på 0xc000, är det där det kommer att gå.
* Projektinställningar: Codewarriors projektinställningar gör att du kan ange olika länkalternativ och minneskonfigurationer. Dessa inställningar påverkar slutligen den slutliga minneskartan.
* bootloader: Om ditt målsystem använder en bootloader kan startlastaren själv uppta några lägre minnesadresser. Applikationskoden startade sedan efter startlastarens slut.
Kort sagt, medan 0xc000 är * en möjlig * startadress, är den inte inneboende för Codewarrior. Du måste undersöka projektets länkskript och inställningar för att bekräfta den faktiska startadressen. Linker -skriptet kommer tydligt att definiera minnesadresserna som används för olika avsnitt i din kod.