Linker description file|Programmering / Grafisk formgivning|Forum|Nordichardware

Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
Linker description file
oxiswoofer
Member
Medlem
Forum Posts: 2101
Member Since:
April 1, 2003
sp_UserOfflineSmall Offline
1
March 5, 2008 - 7:49 am
sp_Permalink sp_Print

hejsan!
det är så att jag håller på med ett projekt med en 16bitars HC12S Freescale cpu med bankat minne, och håller på att pilla med linkerdescrition filen och har tyvärr ett problem! När jag laddar över min application till hårdvaran, och resetar den, så startar programräknaren(PC) på fel ställe, den startar på adress 0x788000, men enligt mapfilen så ska startupscriptet ligga på 0x784000(här ligger ingen data enligt debuggern), och jag har ingen aning om varför.. är nybörjare på länkarscript och sånt.. så jag tänkte att någon här kanske är lite hajj på det och skulle kunna titta på mitt, och se om det är något galet här!

i resetvector så ska det pekas på startup-koden(enligt min vectorfil), har definerat upp reset så att den ska hoppa till min startupfunktion..

#  **************************************************************************
# * o MC-KONSTANTEN Beschreibung des Mikrokontrollers (LK-File Intern) *
# **************************************************************************
+def i_RamAnf_logical=0x2000 # erstes Byte im RAM
+def i_RamEnd_logical=0x3FFF # letztes Byte im RAM
+def i_RamAnf_global=0xFE000 # erstes Byte im RAM
+def i_RamEnd_global=0xFFFFF # letztes Byte im RAM
+def i_GesRamGr=0x2000 # Gesamtgröße im RAM

+def i_EepAnf_logical=0x0800 # erstes Byte im EEPROM
+def i_EepEnd_logical=0x0FFF # letztes Byte im EEPROM
+def i_EepAnf_global=0x13F800 # erstes Byte im EEPROM
+def i_EepEnd_global=0x13FFFF # letztes Byte im EEPROM

# *** weitere MC-Konstanten weil innerhalb "+def" nicht gerechnet werden kann *
+def i_StackI=0x4000 # 1.JSR pushed PC auf 0x3FFF und 0x3FFE

+def i_CkSumGr=128 # 128 Bytes für Checksummenabgleich (Berechnet von Linker)

# **************************************************************************
# * o SEGMENT-DEF Definition der Segmente *
# **************************************************************************

+seg .MCADS_UNTOUCH -b i_RamAnf_global -o i_RamAnf_logical -m i_GesRamGr -n.MCADS_UNTOUCH # Daten ungelöscht, ungetestet
+seg .ubsct -a.MCADS_UNTOUCH -n.ubsct # Daten 8-Bit addressiert (wird ab Compilerversion 4.2t benötigt)
+seg .bsct -a.ubsct -n.bsct # Initialisierte Daten, 8-Bit adressiert
+seg .data -a.bsct -n.data # Initialisierte Daten, 16-Bit adressiert
+seg .bss -a.data -n.bss # Daten, 16-Bit addressiert

+seg .eeprom -b i_EepAnf_global -o i_EepAnf_logical -m 0x0800 -n.eeprom


# ***************************************************************************
# * o SEGMENT-DEF ROM / Flash Segmente mit zugehörigen Dateilisten *
# ***************************************************************************
+seg .gconst -b 0x780000 -m 0x4000 -n .gconst # 16K for global constants $E0

+seg .cksum -b 0x7FC000 -o 0xC000 -m i_CkSumGr -n.cksum -ik # Checksum segment
+seg .FIXBank -e 0x7FFF00 -o 0xFF00 -m 0x4000-0x0100 -n.constFIXBNK -ck # Programmcode auf Fixed Bank
+grp .FIXBank=.const,.MCADS_FIXBNK # Liste von zusammenzufassenden Sections

#########härnånstans tror jag problemet ligger######
+seg .text -b 0x784000 -o 0x8000 -w 0x4000 -m 0x1C000 -n.text -s.flash -ck -x # Banked ROM $E1-E7
+seg .text -b 0x7E0000 -o 0x8000 -w 0x4000 -m 0x1C000 -n.text -s.flash -ck # Banked ROM $F8-FE
#+inc tmp_sbk.lk
+inc Test_App_Modules.lk
+inc lib_debug.lk

+seg .text -b 0x7FC000+i_CkSumGr -o 0xC000+i_CkSumGr -m 0x4000-i_CkSumGr -n.text -it -ck # Programmcode auf Fixed Bank $FF
.liblib.lib
# COMPILE WAS NOK -> +seg .MCADS_V120 -b 0x7FFF00 -o 0xff00 -n.text -m 0x0100 -ck
#+seg .MCADS_V120 -b 0x7FFF10 -o 0xff10 -n.MCADS_V120 -ck
+seg .vector -b 0x7FFF10 -o 0xff10 -n.vectors -ck
+inc tmp_fixb.lk


# ****************************************************************************
# * o LABELS-DEF Definition der extern verwendbaren Konstanten *
# ****************************************************************************
+def _MCAD_RAM_ANF=i_RamAnf_logical # Adr. erstes Byte im RAM
+def _MCAD_RAM_USED=end(.bss) # Adr. letztes verwendetes Byte im RAM
+def _MCAD_RAM_END=i_RamEnd_logical # Adr. letztes Byte im RAM

+def _MCAD_CLRRAM_ANF=start(.ubsct) # Adr. erstes zu löschende Byte im RAM
+def _MCAD_CLRRAM_END=i_RamEnd_logical # Adr. letztes zu löschendes Byte im RAM

+def _MCAD_EEP_ANF=i_EepAnf_logical
+def _MCAD_EEP_END=i_EepEnd_logical

+def __sbss=@.bss
+def __memory=@.bss
+def __stack=i_StackI
+def __sdirect=start(.ubsct)
+def __sgconst=start(.gconst)

kan säga nu direkt att det är inte min orginalfil,har fått det av företaget jag jobbar åt nu..så nej, jag kan inte tyska 8-)[/b]

Forum Timezone: Europe/Stockholm
Most Users Ever Online: 1030
Currently Online:
Guest(s) 306
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
PetrbonFU PetrbonFU
Karine Bembry
Dolores Mcdaniels
Anibal McLeish
Francisca Alt
Alfie Everhart
Lester Huitt
Orlando Jorgensen
Mikki Lundgren
Dakota Kozlowski
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967

 

Member Stats:
Guest Posters: 2
Members: 79425
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL