################################################################################ # # # IAR Universal Linker V4.60I/386 # # # # Link time = 13/Mar/2008 04:52:03 # # Target CPU = A90 # # List file = C:\home\kevin\pub\src\bc100\IAR\Release\List\BC10 # # 0_tiny.map # # Output file 1 = C:\home\kevin\pub\src\bc100\IAR\Release\Exe\BC100 # # _tiny.hex # # Format: intel-extended, variant: -y(CODE) # # MISRA C Rules: # # Enabled = 5-9,11-12,14,16-17,19-21,24-26,29-32,34-35,38-39, # # 42-43,46,50,52-54,56-59,61-62,64-65,68-80,83-84,8 # # 7-91,94-95,98-100,103-110,112-126 # # Checked = 11,25-26 # # Output file 2 = C:\home\kevin\pub\src\bc100\IAR\Release\Exe\BC100 # # _tiny_data.hex # # Format: intel-extended, variant: -y(DATA) # # MISRA C Rules: # # Enabled = 5-9,11-12,14,16-17,19-21,24-26,29-32,34-35,38-39, # # 42-43,46,50,52-54,56-59,61-62,64-65,68-80,83-84,8 # # 7-91,94-95,98-100,103-110,112-126 # # Checked = 11,25-26 # # Output file 3 = C:\home\kevin\pub\src\bc100\IAR\Release\Exe\BC100 # # _tiny_eeprom.hex # # Format: intel-extended, variant: -y(XDATA) # # MISRA C Rules: # # Enabled = 5-9,11-12,14,16-17,19-21,24-26,29-32,34-35,38-39, # # 42-43,46,50,52-54,56-59,61-62,64-65,68-80,83-84,8 # # 7-91,94-95,98-100,103-110,112-126 # # Checked = 11,25-26 # # Command line = -y(CODE) # # -Ointel-extended,(DATA)=C:\home\kevin\pub\src\bc1 # # 00\IAR\Release\Exe\BC100_tiny_data.hex # # -Ointel-extended,(XDATA)=C:\home\kevin\pub\src\bc # # 100\IAR\Release\Exe\BC100_tiny_eeprom.hex # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\ADC.r # # 90 # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\NIMHc # # harge.r90 # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\OWI.r # # 90 # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\PWM.r # # 90 # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\USI.r # # 90 # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\batte # # ry.r90 # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\charg # # efunc.r90 # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\main. # # r90 # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\menu. # # r90 # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\state # # func.r90 # # C:\home\kevin\pub\src\bc100\IAR\Release\Obj\time. # # r90 # # -o # # C:\home\kevin\pub\src\bc100\IAR\Release\Exe\BC100 # # _tiny.hex # # -Fintel-extended -B -l # # C:\home\kevin\pub\src\bc100\IAR\Release\List\BC10 # # 0_tiny.map # # -xmsno # # "-IC:\Program Files\IAR Systems\Embedded Workbenc # # h 4.0\avr\LIB\" # # -f # # "C:\Program Files\IAR Systems\Embedded Workbench # # 4.0\avr\src\template\cfgtiny861.xcl" # # (-D_..X_INTVEC_SIZE=26 -D_..X_FLASH_END=1FFF # # -D_..X_SRAM_BASE=60 # # -D_..X_SRAM_TBASE=_..X_SRAM_BASE # # -D_..X_SRAM_TSIZE=(100-_..X_SRAM_BASE) # # -D_..X_SRAM_END=25F # # -D_..X_EXT_SRAM_BASE=_..X_SRAM_END # # -D_..X_EXT_SRAM_SIZE=0 # # -D_..X_EXT_ROM_BASE=_..X_SRAM_END # # -D_..X_EXT_ROM_SIZE=0 # # -D_..X_EXT_NV_BASE=_..X_SRAM_END # # -D_..X_EXT_NV_SIZE=0 -D_..X_EEPROM_END=1FF # # -D_..X_EEPROM_START=0) -D_..X_HEAP_SIZE=10 # # -D_..X_TINY_HEAP_SIZE=0 -D_..X_NEAR_HEAP_SIZE=0 # # -D_..X_FAR_HEAP_SIZE=0 -D_..X_HUGE_HEAP_SIZE=0 # # -D_..X_CSTACK_SIZE=40 -D_..X_RSTACK_SIZE=30 -f # # "C:\Program Files\IAR Systems\Embedded Workbench # # 4.0\avr\src\template\cfg1soim.xcl" # # (-ca90 -w29 -Z(CODE)INTVEC=0-_..X_INTVEC_SIZE # # -Z(CODE)TINY_F=_..X_FLASH_BASE-FF # # -Z(CODE)NEAR_F=_..X_FLASH_BASE-_..X_FLASH_END # # -Z(CODE)SWITCH=_..X_FLASH_BASE-_..X_FLASH_END # # -Z(CODE)INITTAB=_..X_FLASH_BASE-_..X_FLASH_END # # -Z(CODE)DIFUNCT=_..X_FLASH_BASE-_..X_FLASH_END # # -Z(CODE)CODE=_..X_FLASH_BASE-_..X_FLASH_END # # -Z(CODE)TINY_ID=_..X_FLASH_BASE-_..X_FLASH_END # # -Z(CODE)NEAR_ID=_..X_FLASH_BASE-_..X_FLASH_END # # -Z(CODE)CHECKSUM#_..X_FLASH_END # # -Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_TBASE:+_.. # # X_SRAM_TSIZE # # -Z(DATA)CSTACK+_..X_CSTACK_SIZE=_..X_CSTACK_BASE- # # _..X_CSTACK_END # # -Z(DATA)HEAP+_..X_HEAP_SIZE=_..X_SRAM_BASE-_..X_S # # RAM_END # # -Z(DATA)IOSTREAM_N#_..X_SRAM_BASE-_..X_SRAM_END # # -Z(DATA)NEAR_HEAP+_..X_NEAR_HEAP_SIZE=_..X_SRAM_B # # ASE-_..X_SRAM_END # # -Z(DATA)RSTACK+_..X_RSTACK_SIZE=_..X_RSTACK_BASE- # # _..X_RSTACK_END # # -Z(DATA)NEAR_I,NEAR_Z,NEAR_N=_..X_SRAM_BASE-_..X_ # # SRAM_END # # -Z(XDATA)EEPROM_I,EEPROM_N=_..X_EEPROM_START-_..X # # _EEPROM_END) # # -D_..X_FLASH_BASE=_..X_INTVEC_SIZE -H1895 # # -h(CODE)0-(_..X_INTVEC_SIZE-1) # # -D_..X_CSTACK_BASE=_..X_SRAM_BASE # # -D_..X_CSTACK_END=_..X_SRAM_END # # -D_..X_RSTACK_BASE=_..X_SRAM_BASE # # -D_..X_RSTACK_END=_..X_SRAM_END -s # # __program_start # # "C:\Program Files\IAR Systems\Embedded Workbench # # 4.0\avr\LIB\CLIB\cl1s-ec_nomul.r90" # # -e_small_write=_formatted_write # # -e_medium_read=_formatted_read # # --misrac=5-9,11-12,14,16-17,19-21,24-26,29-32,34- # # 35,38-39,42-43,46,50,52-54,56-59,61-62,64-65,68-8 # # 0,83-84,87-91,94-95,98-100,103-110,112-126 # # # # Copyright 1987-2007 IAR Systems. All rights reserved. # ################################################################################ **************************************** * * * CROSS REFERENCE * * * **************************************** Program entry at : CODE 00000000 Relocatable, from module : ?RESET **************************************** * * * RUNTIME MODEL * * * **************************************** EEPROM_SIZE = 2 R4 = REG R5 = REG R6 = REG R7 = REG R8 = REG R9 = REG __64bit_doubles = disabled __cpu = 1 __cpu_name = ATtiny861 __enhanced_core = enabled __has_elpm = false __memory_model = 2 __rt_version = 3 **************************************** * * * MODULE MAP * * * **************************************** DEFINED ABSOLUTE ENTRIES PROGRAM MODULE, NAME : ?ABS_ENTRY_MOD Absolute parts ENTRY ADDRESS REF BY ===== ======= ====== _..X_RSTACK_END 0000025F _..X_RSTACK_BASE 00000060 _..X_CSTACK_END 0000025F _..X_CSTACK_BASE 00000060 _..X_FLASH_BASE 00000026 _..X_RSTACK_SIZE 00000030 _..X_CSTACK_SIZE 00000040 _..X_HUGE_HEAP_SIZE 00000000 _..X_FAR_HEAP_SIZE 00000000 _..X_NEAR_HEAP_SIZE 00000000 _..X_TINY_HEAP_SIZE 00000000 _..X_HEAP_SIZE 00000010 _..X_EEPROM_START 00000000 _..X_EEPROM_END 000001FF _..X_EXT_NV_SIZE 00000000 _..X_EXT_NV_BASE 0000025F _..X_EXT_ROM_SIZE 00000000 _..X_EXT_ROM_BASE 0000025F _..X_EXT_SRAM_SIZE 00000000 _..X_EXT_SRAM_BASE 0000025F _..X_SRAM_END 0000025F _..X_SRAM_TSIZE 000000A0 _..X_SRAM_TBASE 00000060 _..X_SRAM_BASE 00000060 _..X_FLASH_END 00001FFF _..X_INTVEC_SIZE 00000026 ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\ADC.r90 PROGRAM MODULE, NAME : ADC SEGMENTS IN THE MODULE ====================== ABSOLUTE Relative segment, address: DATA 0000003B - 0000003B (0x1 bytes), align: 0 Segment part 1. Intra module refs: ADC_Init OWI_DetectPresence (OWI) OWI_Init (OWI) OWI_ReadBit (OWI) OWI_WriteBit0 (OWI) OWI_WriteBit1 (OWI) ENTRY ADDRESS REF BY ===== ======= ====== _A_PORTA 0000003B ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000003A - 0000003A (0x1 bytes), align: 0 Segment part 2. Intra module refs: ADC_Init OWI_DetectPresence (OWI) OWI_Init (OWI) OWI_ReadBit (OWI) OWI_WriteBit0 (OWI) OWI_WriteBit1 (OWI) ENTRY ADDRESS REF BY ===== ======= ====== _A_DDRA 0000003A ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000027 - 00000027 (0x1 bytes), align: 0 Segment part 3. Intra module refs: ADC_ISR ADC_Init ENTRY ADDRESS REF BY ===== ======= ====== _A_ADMUX 00000027 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000026 - 00000026 (0x1 bytes), align: 0 Segment part 4. Intra module refs: ADC_ISR ADC_Init Error (statefunc) Sleep (statefunc) ENTRY ADDRESS REF BY ===== ======= ====== _A_ADCSRA 00000026 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000024 - 00000025 (0x2 bytes), align: 0 Segment part 5. Intra module refs: ADC_ISR ADC_Init ENTRY ADDRESS REF BY ===== ======= ====== _A_ADC 00000024 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000023 - 00000023 (0x1 bytes), align: 0 Segment part 6. Intra module refs: ADC_ISR ADC_Init ENTRY ADDRESS REF BY ===== ======= ====== _A_ADCSRB 00000023 ------------------------------------------------------------------------- EEPROM_I Relative segment, address: XDATA 00000000 - 00000000 (0x1 bytes), align: 0 Segment part 16. Intra module refs: ADC_ISR ENTRY ADDRESS REF BY ===== ======= ====== VBAT_RANGE 00000000 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000050 - 000001E3 (0x194 bytes), align: 1 Segment part 17. Intra module refs: ADC_ISR::??INTVEC 22 ENTRY ADDRESS REF BY ===== ======= ====== ADC_ISR 00000050 interrupt function calls direct stack 1 = 00000000 ( 00000013 ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- NEAR_Z Relative segment, address: DATA 00000144 - 0000015C (0x19 bytes), align: 0 Segment part 14. Intra module refs: ADC_ISR ADC_Init ENTRY ADDRESS REF BY ===== ======= ====== ADCS 00000144 BatteryStatusRefresh (battery) ConstantCurrent (chargefunc) HaltNow (chargefunc) JumperCheck (statefunc) NTCLookUp (battery) RIDLookUp (battery) USI_OVF_ISR (USI) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000001E4 - 00000249 (0x66 bytes), align: 1 Segment part 18. Intra module refs: ADC_ISR ENTRY ADDRESS REF BY ===== ======= ====== ScaleU 000001E4 stack 1 = 00000000 ( 00000003 ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 0000024A - 000002BD (0x74 bytes), align: 1 Segment part 19. Intra module refs: ADC_ISR ENTRY ADDRESS REF BY ===== ======= ====== ScaleI 0000024A stack 1 = 00000000 ( 00000003 ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000002BE - 000002BF (0x2 bytes), align: 1 Segment part 20. ENTRY ADDRESS REF BY ===== ======= ====== ADC_Wait 000002BE BatteryControl (statefunc) ConstantCurrent (chargefunc) Error (statefunc) HaltNow (chargefunc) Initialize (statefunc) JumperCheck (statefunc) Sleep (statefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000002C0 - 00000339 (0x7a bytes), align: 1 Segment part 21. ENTRY ADDRESS REF BY ===== ======= ====== ADC_Init 000002C0 Initialize (statefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000001C, align: 0 Segment part 7. ENTRY ADDRESS REF BY ===== ======= ====== __?EECR 0000001C Segment part 0 (?EEPROM_16) Segment part 1 (?EEPROM_16) Segment part 8 (?EEPROM_16) ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000001D, align: 0 Segment part 8. ENTRY ADDRESS REF BY ===== ======= ====== __?EEDR 0000001D __eeget8_16 (?EEPROM_16) __eeput8_16 (?EEPROM_16) ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000001E, align: 0 Segment part 9. ENTRY ADDRESS REF BY ===== ======= ====== __?EEARL 0000001E Segment part 1 (?EEPROM_16) Segment part 8 (?EEPROM_16) ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000001F, align: 0 Segment part 10. ENTRY ADDRESS REF BY ===== ======= ====== __?EEARH 0000001F Segment part 1 (?EEPROM_16) Segment part 8 (?EEPROM_16) ------------------------------------------------------------------------- INTVEC Common segment, address: CODE 00000000 - 00000017 (0x18 bytes), align: 1 Segment part 11. ROOT. ENTRY ADDRESS REF BY ===== ======= ====== ADC_ISR::??INTVEC 22 00000016 ------------------------------------------------------------------------- INITTAB Relative segment, address: CODE 00000044 - 00000049 (0x6 bytes), align: 0 Segment part 15. Intra module refs: ADCS BattActive (battery) BattData (battery) CurrentState (main) SPI (USI) Segment part 13 (statefunc) Segment part 8 (chargefunc) timeval (time) ENTRY ADDRESS REF BY ===== ======= ====== ? 00000044 ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\NIMHcharge.r90 PROGRAM MODULE, NAME : NIMHcharge SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 0000033A - 00000445 (0x10c bytes), align: 1 Segment part 7. ENTRY ADDRESS REF BY ===== ======= ====== Charge 0000033A menu_state (menu) calls direct stack 1 = 00000000 ( 00000002 ) stack 2 = 00000000 ( 00000004 ) ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\OWI.r90 PROGRAM MODULE, NAME : OWI SEGMENTS IN THE MODULE ====================== ABSOLUTE Relative segment, address: DATA 00000039 - 00000039 (0x1 bytes), align: 0 Segment part 3. Intra module refs: OWI_DetectPresence OWI_ReadBit ENTRY ADDRESS REF BY ===== ======= ====== _A_PINA 00000039 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000446 - 00000461 (0x1c bytes), align: 1 Segment part 10. ENTRY ADDRESS REF BY ===== ======= ====== OWI_Init 00000446 Initialize (statefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000462 - 00000493 (0x32 bytes), align: 1 Segment part 11. Intra module refs: OWI_SendByte ENTRY ADDRESS REF BY ===== ======= ====== OWI_WriteBit1 00000462 stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000494 - 000004C5 (0x32 bytes), align: 1 Segment part 12. Intra module refs: OWI_SendByte ENTRY ADDRESS REF BY ===== ======= ====== OWI_WriteBit0 00000494 stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000004C6 - 00000507 (0x42 bytes), align: 1 Segment part 13. Intra module refs: OWI_ReceiveByte ENTRY ADDRESS REF BY ===== ======= ====== OWI_ReadBit 000004C6 stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000508 - 00000551 (0x4a bytes), align: 1 Segment part 14. ENTRY ADDRESS REF BY ===== ======= ====== OWI_DetectPresence 00000508 BatteryDataRefresh (battery) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000552 - 00000577 (0x26 bytes), align: 1 Segment part 15. ENTRY ADDRESS REF BY ===== ======= ====== OWI_SendByte 00000552 BatteryDataRefresh (battery) calls direct stack 1 = 00000000 ( 00000003 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000578 - 0000059D (0x26 bytes), align: 1 Segment part 16. ENTRY ADDRESS REF BY ===== ======= ====== OWI_ReceiveByte 00000578 BatteryDataRefresh (battery) calls direct stack 1 = 00000000 ( 00000003 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 0000059E - 000005C1 (0x24 bytes), align: 1 Segment part 22. ENTRY ADDRESS REF BY ===== ======= ====== OWI_ComputeCRC8 0000059E BatteryDataRefresh (battery) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\PWM.r90 PROGRAM MODULE, NAME : PWM SEGMENTS IN THE MODULE ====================== ABSOLUTE Relative segment, address: DATA 00000050 - 00000050 (0x1 bytes), align: 0 Segment part 1. Intra module refs: PWM_Start PWM_Stop ENTRY ADDRESS REF BY ===== ======= ====== _A_TCCR1A 00000050 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000004F - 0000004F (0x1 bytes), align: 0 Segment part 2. Intra module refs: PWM_Start PWM_Stop ENTRY ADDRESS REF BY ===== ======= ====== _A_TCCR1B 0000004F ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000004D - 0000004D (0x1 bytes), align: 0 Segment part 3. Intra module refs: PWM_Start ENTRY ADDRESS REF BY ===== ======= ====== _A_OCR1A 0000004D ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000004C - 0000004C (0x1 bytes), align: 0 Segment part 4. Intra module refs: BatteryStatusRefresh (battery) ConstantCurrent (chargefunc) PWM_DecrementDutyCycle PWM_IncrementDutyCycle PWM_Start PWM_Stop ENTRY ADDRESS REF BY ===== ======= ====== _A_OCR1B 0000004C ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000004B - 0000004B (0x1 bytes), align: 0 Segment part 5. Intra module refs: PWM_Start PWM_Stop ENTRY ADDRESS REF BY ===== ======= ====== _A_OCR1C 0000004B ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000004A - 0000004A (0x1 bytes), align: 0 Segment part 6. Intra module refs: PWM_Start PWM_Stop ENTRY ADDRESS REF BY ===== ======= ====== _A_OCR1D 0000004A ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000049 - 00000049 (0x1 bytes), align: 0 Segment part 7. Intra module refs: PWM_Start PWM_Stop ENTRY ADDRESS REF BY ===== ======= ====== _A_PLLCSR 00000049 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000047 - 00000047 (0x1 bytes), align: 0 Segment part 8. Intra module refs: PWM_Start PWM_Stop ENTRY ADDRESS REF BY ===== ======= ====== _A_TCCR1C 00000047 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000046 - 00000046 (0x1 bytes), align: 0 Segment part 9. Intra module refs: PWM_Start PWM_Stop ENTRY ADDRESS REF BY ===== ======= ====== _A_TCCR1D 00000046 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000044 - 00000044 (0x1 bytes), align: 0 Segment part 10. Intra module refs: PWM_Start PWM_Stop ENTRY ADDRESS REF BY ===== ======= ====== _A_DT1 00000044 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000037 - 00000037 (0x1 bytes), align: 0 Segment part 11. Intra module refs: Initialize (statefunc) PWM_Start SPI_Init (USI) ENTRY ADDRESS REF BY ===== ======= ====== _A_DDRB 00000037 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000020 - 00000020 (0x1 bytes), align: 0 Segment part 12. Intra module refs: PWM_Start ENTRY ADDRESS REF BY ===== ======= ====== _A_TCCR1E 00000020 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000005C2 - 000005D7 (0x16 bytes), align: 1 Segment part 19. ENTRY ADDRESS REF BY ===== ======= ====== PWM_Stop 000005C2 Charge (NIMHcharge) Error (statefunc) HaltNow (chargefunc) JumperCheck (statefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000005D8 - 00000627 (0x50 bytes), align: 1 Segment part 20. ENTRY ADDRESS REF BY ===== ======= ====== PWM_Start 000005D8 Charge (NIMHcharge) JumperCheck (statefunc) calls direct stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000628 - 0000063B (0x14 bytes), align: 1 Segment part 21. ENTRY ADDRESS REF BY ===== ======= ====== PWM_IncrementDutyCycle 00000628 ConstantCurrent (chargefunc) JumperCheck (statefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 0000063C - 0000064F (0x14 bytes), align: 1 Segment part 22. ENTRY ADDRESS REF BY ===== ======= ====== PWM_DecrementDutyCycle 0000063C ConstantCurrent (chargefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\USI.r90 PROGRAM MODULE, NAME : USI SEGMENTS IN THE MODULE ====================== ABSOLUTE Relative segment, address: DATA 00000038 - 00000038 (0x1 bytes), align: 0 Segment part 1. Intra module refs: DisableBatteries (battery) EnableBattery (battery) SPI_Init ENTRY ADDRESS REF BY ===== ======= ====== _A_PORTB 00000038 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000002F - 0000002F (0x1 bytes), align: 0 Segment part 3. Intra module refs: SPI_Put USI_OVF_ISR ENTRY ADDRESS REF BY ===== ======= ====== _A_USIDR 0000002F ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000002E - 0000002E (0x1 bytes), align: 0 Segment part 4. Intra module refs: SPI_Put USI_OVF_ISR ENTRY ADDRESS REF BY ===== ======= ====== _A_USISR 0000002E ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 0000002D - 0000002D (0x1 bytes), align: 0 Segment part 5. Intra module refs: SPI_Init ENTRY ADDRESS REF BY ===== ======= ====== _A_USICR 0000002D ------------------------------------------------------------------------- NEAR_Z Relative segment, address: DATA 0000015D - 00000160 (0x4 bytes), align: 0 Segment part 13. Intra module refs: SPI_Init SPI_Put USI_OVF_ISR ENTRY ADDRESS REF BY ===== ======= ====== SPI 0000015D ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000650 - 000007BD (0x16e bytes), align: 1 Segment part 15. Intra module refs: USI_OVF_ISR::??INTVEC 16 ENTRY ADDRESS REF BY ===== ======= ====== USI_OVF_ISR 00000650 interrupt function calls direct stack 1 = 00000000 ( 0000000F ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000007BE - 000007F5 (0x38 bytes), align: 1 Segment part 16. ENTRY ADDRESS REF BY ===== ======= ====== SPI_Init 000007BE Initialize (statefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000007F6 - 00000815 (0x20 bytes), align: 1 Segment part 17. Intra module refs: USI_OVF_ISR ENTRY ADDRESS REF BY ===== ======= ====== SPI_Put 000007F6 stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- INTVEC Common segment, address: CODE 00000000 - 00000011 (0x12 bytes), align: 1 Segment part 10. ROOT. ENTRY ADDRESS REF BY ===== ======= ====== USI_OVF_ISR::??INTVEC 16 00000010 ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\battery.r90 PROGRAM MODULE, NAME : battery SEGMENTS IN THE MODULE ====================== EEPROM_I Relative segment, address: XDATA 00000001 - 00000002 (0x2 bytes), align: 0 Segment part 9. ENTRY ADDRESS REF BY ===== ======= ====== BattControl 00000001 BatteryControl (statefunc) Charge (NIMHcharge) ConstantCurrent (chargefunc) HaltNow (chargefunc) USI_OVF_ISR (USI) ------------------------------------------------------------------------- NEAR_Z Relative segment, address: DATA 00000161 - 0000016C (0xc bytes), align: 0 Segment part 10. Intra module refs: BatteryCheck BatteryDataRefresh BatteryStatusRefresh NTCLookUp RIDLookUp ENTRY ADDRESS REF BY ===== ======= ====== BattData 00000161 BatteryControl (statefunc) Charge (NIMHcharge) HaltNow (chargefunc) USI_OVF_ISR (USI) ------------------------------------------------------------------------- EEPROM_I Relative segment, address: XDATA 00000003 - 00000082 (0x80 bytes), align: 0 Segment part 12. Intra module refs: BatteryDataRefresh ENTRY ADDRESS REF BY ===== ======= ====== BattEEPROM 00000003 Initialize (statefunc) ------------------------------------------------------------------------- NEAR_Z Relative segment, address: DATA 0000016D - 0000016D (0x1 bytes), align: 0 Segment part 13. Intra module refs: EnableBattery ENTRY ADDRESS REF BY ===== ======= ====== BattActive 0000016D Charge (NIMHcharge) ConstantCurrent (chargefunc) HaltNow (chargefunc) Initialize (statefunc) USI_OVF_ISR (USI) ------------------------------------------------------------------------- NEAR_I Relative segment, address: DATA 000000D0 - 00000107 (0x38 bytes), align: 0 Segment part 14. Intra module refs: RIDLookUp ENTRY ADDRESS REF BY ===== ======= ====== RID 000000D0 ------------------------------------------------------------------------- NEAR_I Relative segment, address: DATA 00000108 - 00000143 (0x3c bytes), align: 0 Segment part 17. Intra module refs: NTCLookUp ENTRY ADDRESS REF BY ===== ======= ====== NTC 00000108 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000816 - 00000847 (0x32 bytes), align: 1 Segment part 19. ENTRY ADDRESS REF BY ===== ======= ====== BatteryCheck 00000816 HaltNow (chargefunc) calls direct stack 1 = 00000000 ( 00000003 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000848 - 000008E5 (0x9e bytes), align: 1 Segment part 20. Intra module refs: BatteryCheck ENTRY ADDRESS REF BY ===== ======= ====== BatteryStatusRefresh 00000848 BatteryControl (statefunc) Initialize (statefunc) calls direct stack 1 = 00000000 ( 00000004 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000008E6 - 000009E3 (0xfe bytes), align: 1 Segment part 21. ENTRY ADDRESS REF BY ===== ======= ====== BatteryDataRefresh 000008E6 BatteryControl (statefunc) calls direct stack 1 = 00000000 ( 00000009 ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000009E4 - 00000A25 (0x42 bytes), align: 1 Segment part 22. ENTRY ADDRESS REF BY ===== ======= ====== EnableBattery 000009E4 BatteryControl (statefunc) Initialize (statefunc) calls direct stack 1 = 00000000 ( 00000001 ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000A26 - 00000A2D (0x8 bytes), align: 1 Segment part 23. ENTRY ADDRESS REF BY ===== ======= ====== DisableBatteries 00000A26 BatteryControl (statefunc) Error (statefunc) Initialize (statefunc) JumperCheck (statefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000A2E - 00000AB1 (0x84 bytes), align: 1 Segment part 24. Intra module refs: BatteryStatusRefresh ENTRY ADDRESS REF BY ===== ======= ====== RIDLookUp 00000A2E stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000AB2 - 00000B39 (0x88 bytes), align: 1 Segment part 25. Intra module refs: BatteryStatusRefresh ENTRY ADDRESS REF BY ===== ======= ====== NTCLookUp 00000AB2 stack 1 = 00000000 ( 00000003 ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- NEAR_ID Relative segment, address: CODE 000011FA - 00001231 (0x38 bytes), align: 0 Segment part 15. Intra module refs: RID ------------------------------------------------------------------------- INITTAB Relative segment, address: CODE 0000004A - 0000004F (0x6 bytes), align: 0 Segment part 16. Intra module refs: NTC RID ENTRY ADDRESS REF BY ===== ======= ====== ? 0000004A ------------------------------------------------------------------------- NEAR_ID Relative segment, address: CODE 00001232 - 0000126D (0x3c bytes), align: 0 Segment part 18. Intra module refs: NTC ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\chargefunc.r90 PROGRAM MODULE, NAME : chargefunc SEGMENTS IN THE MODULE ====================== NEAR_Z Relative segment, address: DATA 0000016E - 00000183 (0x16 bytes), align: 0 Segment part 8. Intra module refs: ConstantCurrent HaltNow ENTRY ADDRESS REF BY ===== ======= ====== ChargeParameters 0000017F Charge (NIMHcharge) HaltParameters 0000016E Charge (NIMHcharge) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000B3A - 00000BD1 (0x98 bytes), align: 1 Segment part 10. ENTRY ADDRESS REF BY ===== ======= ====== ConstantCurrent 00000B3A Charge (NIMHcharge) calls direct stack 1 = 00000000 ( 00000006 ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000BD2 - 00000D79 (0x1a8 bytes), align: 1 Segment part 12. Intra module refs: ConstantCurrent ENTRY ADDRESS REF BY ===== ======= ====== HaltNow 00000BD2 calls direct stack 1 = 00000000 ( 0000000A ) stack 2 = 00000000 ( 00000004 ) ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\main.r90 PROGRAM MODULE, NAME : main SEGMENTS IN THE MODULE ====================== NEAR_Z Relative segment, address: DATA 00000184 - 00000184 (0x1 bytes), align: 0 Segment part 7. Intra module refs: main ENTRY ADDRESS REF BY ===== ======= ====== CurrentState 00000184 BatteryControl (statefunc) Charge (NIMHcharge) SetErrorFlag (statefunc) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000D7A - 00000DFD (0x84 bytes), align: 1 Segment part 9. ENTRY ADDRESS REF BY ===== ======= ====== main 00000D7A ?cstartup_call_main (?C_STARTUP) calls indirect stack 1 = 00000000 ( 00000002 ) stack 2 = 00000000 ( 00000002 ) ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\menu.r90 PROGRAM MODULE, NAME : menu SEGMENTS IN THE MODULE ====================== NEAR_F Relative segment, address: CODE 00000026 - 00000043 (0x1e bytes), align: 0 Segment part 7. ENTRY ADDRESS REF BY ===== ======= ====== menu_state 00000026 main (main) ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\statefunc.r90 PROGRAM MODULE, NAME : statefunc SEGMENTS IN THE MODULE ====================== ABSOLUTE Relative segment, address: DATA 00000055 - 00000055 (0x1 bytes), align: 0 Segment part 1. Intra module refs: Error Sleep ENTRY ADDRESS REF BY ===== ======= ====== _A_MCUCR 00000055 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000054 - 00000054 (0x1 bytes), align: 0 Segment part 2. Intra module refs: Error Sleep ENTRY ADDRESS REF BY ===== ======= ====== _A_MCUSR 00000054 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000048 - 00000048 (0x1 bytes), align: 0 Segment part 3. Intra module refs: Initialize ENTRY ADDRESS REF BY ===== ======= ====== _A_CLKPR 00000048 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000041 - 00000041 (0x1 bytes), align: 0 Segment part 4. Intra module refs: Error Sleep ENTRY ADDRESS REF BY ===== ======= ====== _A_WDTCR 00000041 ------------------------------------------------------------------------- NEAR_Z Relative segment, address: DATA 00000185 - 00000186 (0x2 bytes), align: 0 Segment part 13. Intra module refs: BatteryControl Initialize SetErrorFlag ENTRY ADDRESS REF BY ===== ======= ====== ErrorFlags 00000185 ErrorState 00000186 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000DFE - 00000E4F (0x52 bytes), align: 1 Segment part 15. ENTRY ADDRESS REF BY ===== ======= ====== Initialize 00000DFE menu_state (menu) calls direct stack 1 = 00000000 ( 00000001 ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000E50 - 00000EC9 (0x7a bytes), align: 1 Segment part 16. ENTRY ADDRESS REF BY ===== ======= ====== BatteryControl 00000E50 menu_state (menu) calls direct stack 1 = 00000000 ( 00000004 ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000ECA - 00000ECD (0x4 bytes), align: 1 Segment part 17. ENTRY ADDRESS REF BY ===== ======= ====== Discharge 00000ECA menu_state (menu) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000ECE - 00000ED1 (0x4 bytes), align: 1 Segment part 18. ENTRY ADDRESS REF BY ===== ======= ====== Sleep 00000ECE menu_state (menu) calls direct stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000ED2 - 00000ED9 (0x8 bytes), align: 1 Segment part 20. ENTRY ADDRESS REF BY ===== ======= ====== Error 00000ED2 menu_state (menu) calls direct stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000EDA - 00000EEB (0x12 bytes), align: 1 Segment part 21. ENTRY ADDRESS REF BY ===== ======= ====== SetErrorFlag 00000EDA ConstantCurrent (chargefunc) HaltNow (chargefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000EEC - 00000F5F (0x74 bytes), align: 1 Segment part 22. Intra module refs: BatteryControl ENTRY ADDRESS REF BY ===== ======= ====== JumperCheck 00000EEC calls direct stack 1 = 00000000 ( 00000002 ) stack 2 = 00000000 ( 00000002 ) ************************************************************************* FILE NAME : C:\home\kevin\pub\src\bc100\IAR\Release\Obj\time.r90 PROGRAM MODULE, NAME : time SEGMENTS IN THE MODULE ====================== ABSOLUTE Relative segment, address: DATA 00000059 - 00000059 (0x1 bytes), align: 0 Segment part 1. Intra module refs: Time_Init ENTRY ADDRESS REF BY ===== ======= ====== _A_TIMSK 00000059 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000053 - 00000053 (0x1 bytes), align: 0 Segment part 2. Intra module refs: Time_Init Time_Start Time_Stop ENTRY ADDRESS REF BY ===== ======= ====== _A_TCCR0B 00000053 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000035 - 00000035 (0x1 bytes), align: 0 Segment part 3. Intra module refs: Time_Init ENTRY ADDRESS REF BY ===== ======= ====== _A_TCCR0A 00000035 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000033 - 00000033 (0x1 bytes), align: 0 Segment part 4. Intra module refs: Time_Init ENTRY ADDRESS REF BY ===== ======= ====== _A_OCR0A 00000033 ------------------------------------------------------------------------- ABSOLUTE Relative segment, address: DATA 00000032 - 00000032 (0x1 bytes), align: 0 Segment part 5. Intra module refs: Time_Init ENTRY ADDRESS REF BY ===== ======= ====== _A_OCR0B 00000032 ------------------------------------------------------------------------- NEAR_Z Relative segment, address: DATA 00000187 - 00000196 (0x10 bytes), align: 0 Segment part 13. Intra module refs: TICK_ISR Time_Left Time_Set ENTRY ADDRESS REF BY ===== ======= ====== timeval 00000187 USI_OVF_ISR (USI) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000F60 - 00000FB5 (0x56 bytes), align: 1 Segment part 15. Intra module refs: TICK_ISR::??INTVEC 28 ENTRY ADDRESS REF BY ===== ======= ====== TICK_ISR 00000F60 interrupt function stack 1 = 00000000 ( 00000009 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000FB6 - 00000FDD (0x28 bytes), align: 1 Segment part 16. ENTRY ADDRESS REF BY ===== ======= ====== Time_Left 00000FB6 EnableBattery (battery) HaltNow (chargefunc) JumperCheck (statefunc) PWM_Start (PWM) USI_OVF_ISR (USI) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00000FDE - 0000105B (0x7e bytes), align: 1 Segment part 17. ENTRY ADDRESS REF BY ===== ======= ====== Time_Set 00000FDE Charge (NIMHcharge) EnableBattery (battery) HaltNow (chargefunc) JumperCheck (statefunc) PWM_Start (PWM) USI_OVF_ISR (USI) stack 1 = 00000000 ( 00000008 ) stack 2 = 00000000 ( 00000004 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 0000105C - 00001061 (0x6 bytes), align: 1 Segment part 18. ENTRY ADDRESS REF BY ===== ======= ====== Time_Stop 0000105C ConstantCurrent (chargefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00001062 - 00001067 (0x6 bytes), align: 1 Segment part 19. ENTRY ADDRESS REF BY ===== ======= ====== Time_Start 00001062 ConstantCurrent (chargefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00001068 - 00001081 (0x1a bytes), align: 1 Segment part 20. ENTRY ADDRESS REF BY ===== ======= ====== Time_Init 00001068 Initialize (statefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- INTVEC Common segment, address: CODE 00000000 - 0000001D (0x1e bytes), align: 1 Segment part 10. ROOT. ENTRY ADDRESS REF BY ===== ======= ====== TICK_ISR::??INTVEC 28 0000001C ************************************************************************* FILE NAME : C:\Program Files\IAR Systems\Embedded Workbench 4.0\avr\LIB\CLIB\cl1s-ec_nomul.r90 LIBRARY MODULE, NAME : ?__exit SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 00001082 - 00001087 (0x6 bytes), align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== __exit 00001084 ?C_EXIT 00001084 ?C_FUNCALL 00001082 _exit 00001082 ?cstartup_call_main (?C_STARTUP) exit 00001082 ?cstartup_call_main (?C_STARTUP) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?abs SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 00001088 - 00001097 (0x10 bytes), align: 1 Segment part 3. ENTRY ADDRESS REF BY ===== ======= ====== abs 00001088 JumperCheck (statefunc) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?RESET SEGMENTS IN THE MODULE ====================== INTVEC Common segment, address: CODE 00000000 - 00000001 (0x2 bytes), align: 1 Segment part 0. ROOT. ENTRY ADDRESS REF BY ===== ======= ====== __program_start 00000000 Absolute parts (?ABS_ENTRY_MOD) ?RESET 00000000 Segment part 2 (?C_STARTUP) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?C_STARTUP SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 00001098, align: 1 Segment part 2. ENTRY ADDRESS REF BY ===== ======= ====== ?C_STARTUP 00001098 Segment part 0 (?RESET) __RESTART 00001098 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 00001098 - 000010A3 (0xc bytes), align: 1 Segment part 5. Intra module refs: Segment part 2 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000010A4 - 000010A5 (0x2 bytes), align: 1 Segment part 7. Intra module refs: Segment part 5 ENTRY ADDRESS REF BY ===== ======= ====== ?call_low_level_init 000010A4 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000010A6 - 000010AB (0x6 bytes), align: 1 Segment part 8. ENTRY ADDRESS REF BY ===== ======= ====== ?need_segment_init 000010A6 ? (battery) ? (ADC) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000010AC - 000010B1 (0x6 bytes), align: 1 Segment part 9. Intra module refs: ?call_low_level_init ENTRY ADDRESS REF BY ===== ======= ====== ?cstartup_call_main 000010AC ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?EEPROM_16 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 000010B2 - 000010B7 (0x6 bytes), align: 1 Segment part 0. Intra module refs: Segment part 1 __eeput8_16 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000010B8 - 000010C5 (0xe bytes), align: 1 Segment part 1. Intra module refs: __eeget8_16 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000010C6 - 000010CB (0x6 bytes), align: 1 Segment part 3. ENTRY ADDRESS REF BY ===== ======= ====== __eeget8_16 000010C6 ADC_ISR (ADC) BatteryControl (statefunc) Charge (NIMHcharge) ConstantCurrent (chargefunc) HaltNow (chargefunc) USI_OVF_ISR (USI) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000010CC - 000010DD (0x12 bytes), align: 1 Segment part 8. Intra module refs: __eeput8_16 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000010DE - 000010E5 (0x8 bytes), align: 1 Segment part 10. ENTRY ADDRESS REF BY ===== ======= ====== __eeput8_16 000010DE BatteryDataRefresh (battery) HaltNow (chargefunc) Initialize (statefunc) USI_OVF_ISR (USI) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?S_MUL_L02 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 000010E6 - 00001105 (0x20 bytes), align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?S_MUL_L02 000010E6 HaltNow (chargefunc) ScaleI (ADC) ScaleU (ADC) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?S_SHL_L02 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 00001106 - 00001111 (0xc bytes), align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?S_SHL_L02 00001106 EnableBattery (battery) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?US_SHR_L02 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 00001112 - 0000111D (0xc bytes), align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?US_SHR_L02 00001112 ScaleI (ADC) ScaleU (ADC) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?US_DIVMOD_L02 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 0000111E - 00001145 (0x28 bytes), align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?US_DIVMOD_L02 0000111E ?SS_DIVMOD_L02 (?SS_DIVMOD_L02) Charge (NIMHcharge) NTCLookUp (battery) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?SS_DIVMOD_L02 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 00001146 - 00001173 (0x2e bytes), align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?SS_DIVMOD_L02 0000114E ADC_ISR (ADC) Charge (NIMHcharge) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?L_MUL_L03 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 00001174 - 000011A5 (0x32 bytes), align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?L_MUL_L03 00001174 Time_Set (time) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?REGISTER_CGREGR4_L10 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 000011A6, align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?Register_R4_is_cg_reg 000011A6 ADC_ISR (ADC) BatteryDataRefresh (battery) ConstantCurrent (chargefunc) HaltNow (chargefunc) Time_Set (time) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?REGISTER_CGREGR5_L10 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 000011A6, align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?Register_R5_is_cg_reg 000011A6 BatteryDataRefresh (battery) ConstantCurrent (chargefunc) HaltNow (chargefunc) Time_Set (time) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?REGISTER_CGREGR6_L10 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 000011A6, align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?Register_R6_is_cg_reg 000011A6 BatteryDataRefresh (battery) HaltNow (chargefunc) Time_Set (time) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?REGISTER_CGREGR7_L10 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 000011A6, align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?Register_R7_is_cg_reg 000011A6 BatteryDataRefresh (battery) HaltNow (chargefunc) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?REGISTER_CGREGR8_L10 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 000011A6, align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?Register_R8_is_cg_reg 000011A6 BatteryDataRefresh (battery) HaltNow (chargefunc) Time_Set (time) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?REGISTER_CGREGR9_L10 SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 000011A6, align: 1 Segment part 0. ENTRY ADDRESS REF BY ===== ======= ====== ?Register_R9_is_cg_reg 000011A6 HaltNow (chargefunc) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?low_level_init SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 000011A6 - 000011A9 (0x4 bytes), align: 1 Segment part 3. ENTRY ADDRESS REF BY ===== ======= ====== __low_level_init 000011A6 ?call_low_level_init (?C_STARTUP) stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- LIBRARY MODULE, NAME : ?segment_init SEGMENTS IN THE MODULE ====================== CODE Relative segment, address: CODE 000011AA - 000011B1 (0x8 bytes), align: 1 Segment part 3. Intra module refs: __segment_init LOCAL ADDRESS ===== ======= __memclr 000011AA stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000011B2 - 000011B9 (0x8 bytes), align: 1 Segment part 4. Intra module refs: __segment_init LOCAL ADDRESS ===== ======= __flashcpy 000011B2 stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000011BA - 000011C5 (0xc bytes), align: 1 Segment part 5. Intra module refs: __flashcpy __memclr ------------------------------------------------------------------------- CODE Relative segment, address: CODE 000011C6 - 000011F9 (0x34 bytes), align: 1 Segment part 6. ENTRY ADDRESS REF BY ===== ======= ====== __segment_init 000011C6 ?need_segment_init (?C_STARTUP) calls direct stack 1 = 00000000 ( 00000000 ) stack 2 = 00000000 ( 00000002 ) ************************************************************************* DEFINED ABSOLUTE ENTRIES PROGRAM MODULE, NAME : ?FILLER_BYTES SEGMENTS IN THE MODULE ====================== INTVEC Common segment, address: CODE 00000000 - 0000001D (0x1e bytes), align: 0 Segment part 1. ------------------------------------------------------------------------- ?FILL1 Relative segment, address: CODE 0000001E - 00000025 (0x8 bytes), align: 0 Segment part 0. **************************************** * * * MODULE SUMMARY * * * **************************************** Module CODE DATA XDATA ------ ---- ---- ----- (Rel) (Rel) (Abs) (Rel) ?C_STARTUP 26 ?EEPROM_16 52 ?FILLER_BYTES 8 + common 30 ?L_MUL_L03 50 ?RESET + common 2 ?SS_DIVMOD_L02 46 ?S_MUL_L02 32 ?S_SHL_L02 12 ?US_DIVMOD_L02 40 ?US_SHR_L02 12 ?__exit 6 ?abs 16 ?low_level_init 4 ?segment_init 80 ADC 746 25 4 1 + shared 6 3 + common 24 NIMHcharge 268 OWI 380 1 PWM 142 10 + shared 2 USI 454 4 3 + shared 18 1 + common battery 926 129 130 chargefunc 576 22 main 132 1 menu 30 statefunc 354 2 4 time 290 16 5 + common 30 N/A (command line) 112 N/A (alignment) ---------- ----- --- -- --- Total: 4 688 311 33 131 + common 30 **************************************** * * * CALL GRAPH * * * **************************************** ->Sub-tree of type: Interrupt function tree that does not make : indirect calls CSTACK RSTACK | Stack used (prev) : 00000000 00000000 02 ScaleI | Stack used (prev) : 00000000 00000000 | + function block : 00000003 00000004 02 ScaleI | Stack used (prev) : 00000000 00000000 | + function block : 00000003 00000004 | Already listed 02 ScaleU | Stack used (prev) : 00000000 00000000 | + function block : 00000003 00000004 02 ScaleU | Stack used (prev) : 00000000 00000000 | + function block : 00000003 00000004 | Already listed 01 ADC_ISR | Stack used (prev) : 00000003 00000004 | + function block : 00000013 00000002 <-Sub-tree of type: Interrupt function tree that does not make : indirect calls | Stack used : 00000016 00000006 ->Sub-tree of type: Interrupt function tree that does not make : indirect calls CSTACK RSTACK | Stack used (prev) : 00000016 00000006 02 Time_Set | Stack used (prev) : 00000016 00000006 | + function block : 00000008 00000004 02 Time_Left | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 02 SPI_Put | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 02 SPI_Put | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 02 SPI_Put | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 02 SPI_Put | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 02 SPI_Put | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 02 SPI_Put | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 02 SPI_Put | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 02 SPI_Put | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 01 USI_OVF_ISR | Stack used (prev) : 0000001E 0000000A | + function block : 0000000F 00000002 <-Sub-tree of type: Interrupt function tree that does not make : indirect calls | Stack used : 0000002D 0000000C ->Sub-tree of type: Interrupt function tree that does not make : indirect calls CSTACK RSTACK | Stack used (prev) : 0000002D 0000000C 01 TICK_ISR | Stack used (prev) : 0000002D 0000000C | + function block : 00000009 00000002 <-Sub-tree of type: Interrupt function tree that does not make : indirect calls | Stack used : 00000036 0000000E ->Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) CSTACK RSTACK | Stack used (prev) : 00000036 0000000E 02 Time_Set | Stack used (prev) : 00000016 00000006 | + function block : 00000008 00000004 | Already listed 03 Time_Start | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 03 Time_Stop | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 03 SetErrorFlag | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 04 Time_Set | Stack used (prev) : 00000016 00000006 | + function block : 00000008 00000004 | Already listed 04 Time_Left | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 04 SetErrorFlag | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 06 NTCLookUp | Stack used (prev) : 00000036 0000000E | + function block : 00000003 00000004 06 RIDLookUp | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 05 BatteryStatusRefresh | Stack used (prev) : 00000039 00000012 | + function block : 00000004 00000002 04 BatteryCheck | Stack used (prev) : 0000003D 00000014 | + function block : 00000003 00000002 04 PWM_Stop | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 04 ADC_Wait | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 03 HaltNow | Stack used (prev) : 00000040 00000016 | + function block : 0000000A 00000002 03 PWM_DecrementDutyCycle | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 03 PWM_IncrementDutyCycle | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 03 ADC_Wait | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 02 ConstantCurrent | Stack used (prev) : 0000004A 00000018 | + function block : 00000006 00000002 03 Time_Set | Stack used (prev) : 00000016 00000006 | + function block : 00000008 00000004 | Already listed 03 Time_Left | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 02 PWM_Start | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 02 PWM_Stop | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 01 Charge | Stack used (prev) : 00000050 0000001A | + function block : 00000002 00000002 <-Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) | Stack used : 00000052 0000001C ->Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) CSTACK RSTACK | Stack used (prev) : 00000036 0000000E 02 Time_Init | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 02 DisableBatteries | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 03 Time_Set | Stack used (prev) : 00000016 00000006 | + function block : 00000008 00000004 | Already listed 03 Time_Left | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 02 EnableBattery | Stack used (prev) : 00000036 0000000E | + function block : 00000001 00000004 02 BatteryStatusRefresh | Stack used (prev) : 00000039 00000012 | + function block : 00000004 00000002 | Already listed 02 SPI_Init | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 02 OWI_Init | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 02 ADC_Init | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 02 ADC_Wait | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 01 Initialize | Stack used (prev) : 0000003D 00000014 | + function block : 00000001 00000002 <-Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) | Stack used : 0000003E 00000016 ->Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) CSTACK RSTACK | Stack used (prev) : 00000036 0000000E 03 abs | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 03 Time_Set | Stack used (prev) : 00000016 00000006 | + function block : 00000008 00000004 | Already listed 03 Time_Left | Stack used (prev) : 00000016 00000006 | + function block : 00000000 00000002 | Already listed 03 DisableBatteries | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 03 PWM_IncrementDutyCycle | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 03 PWM_Start | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 03 PWM_Stop | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 03 ADC_Wait | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 02 JumperCheck | Stack used (prev) : 00000036 00000010 | + function block : 00000002 00000002 02 DisableBatteries | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 02 EnableBattery | Stack used (prev) : 00000036 0000000E | + function block : 00000001 00000004 | Already listed 03 OWI_ComputeCRC8 | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 04 OWI_ReadBit | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 03 OWI_ReceiveByte | Stack used (prev) : 00000036 00000010 | + function block : 00000003 00000002 04 OWI_WriteBit0 | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 04 OWI_WriteBit1 | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 03 OWI_SendByte | Stack used (prev) : 00000036 00000010 | + function block : 00000003 00000002 03 OWI_DetectPresence | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 02 BatteryDataRefresh | Stack used (prev) : 00000039 00000012 | + function block : 00000009 00000002 02 BatteryStatusRefresh | Stack used (prev) : 00000039 00000012 | + function block : 00000004 00000002 | Already listed 02 ADC_Wait | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 01 BatteryControl | Stack used (prev) : 00000042 00000014 | + function block : 00000004 00000002 <-Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) | Stack used : 00000046 00000016 ->Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) CSTACK RSTACK | Stack used (prev) : 00000036 0000000E 01 Discharge | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 <-Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) | Stack used : 00000036 00000010 ->Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) CSTACK RSTACK | Stack used (prev) : 00000036 0000000E 02 ADC_Wait | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 01 Sleep | Stack used (prev) : 00000036 00000010 | + function block : 00000000 00000002 <-Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) | Stack used : 00000036 00000012 ->Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) CSTACK RSTACK | Stack used (prev) : 00000036 0000000E 02 DisableBatteries | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 02 PWM_Stop | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 02 ADC_Wait | Stack used (prev) : 00000036 0000000E | + function block : 00000000 00000002 | Already listed 01 Error | Stack used (prev) : 00000036 00000010 | + function block : 00000000 00000002 <-Sub-tree of type: Indirectly called function tree that does not make : indirect calls (Is not an interrupt and is not flagged : as not overlayable) | Stack used : 00000036 00000012 ->Sub-tree of type: Function tree that makes indirect calls CSTACK RSTACK | Stack used (prev) : 00000052 0000001C 01 main | Stack used (prev) : 00000052 0000001C | + function block : 00000002 00000002 <-Sub-tree of type: Function tree that makes indirect calls | Stack used : 00000054 0000001E ->Sub-tree of type: Function tree CSTACK RSTACK | Stack used (prev) : 00000054 0000001E 01 __low_level_init | Stack used (prev) : 00000054 0000001E | + function block : 00000000 00000002 <-Sub-tree of type: Function tree | Stack used : 00000054 00000020 ->Sub-tree of type: Function tree CSTACK RSTACK | Stack used (prev) : 00000054 00000020 02 __flashcpy | Stack used (prev) : 00000054 00000020 | + function block : 00000000 00000002 02 __memclr | Stack used (prev) : 00000054 00000020 | + function block : 00000000 00000002 01 __segment_init | Stack used (prev) : 00000054 00000022 | + function block : 00000000 00000002 <-Sub-tree of type: Function tree | Stack used : 00000054 00000024 **************************************** * * * SEGMENTS IN ADDRESS ORDER * * * **************************************** SEGMENT SPACE START ADDRESS END ADDRESS SIZE TYPE ALIGN ======= ===== ============= =========== ==== ==== ===== INTVEC CODE 00000000 - 0000001D 1E com 1 ?FILL1 CODE 0000001E - 00000025 8 rel 0 NEAR_F CODE 00000026 - 00000043 1E rel 0 INITTAB CODE 00000044 - 0000004F C rel 0 CODE CODE 00000050 - 000011F9 11AA rel 1 NEAR_ID CODE 000011FA - 0000126D 74 rel 0 ABSOLUTE DATA 0000001C rel 0 DATA 0000001D DATA 0000001E DATA 0000001F DATA 00000020 - 00000020 1 DATA 00000023 - 00000027 5 DATA 0000002D - 0000002F 3 DATA 00000032 - 00000033 2 DATA 00000035 - 00000035 1 DATA 00000037 - 0000003B 5 DATA 00000041 - 00000041 1 DATA 00000044 - 00000044 1 DATA 00000046 - 0000004D 8 DATA 0000004F - 00000050 2 DATA 00000053 - 00000055 3 DATA 00000059 - 00000059 1 CSTACK DATA 00000060 - 0000009F 40 dse 0 RSTACK DATA 000000A0 - 000000CF 30 dse 0 NEAR_I DATA 000000D0 - 00000143 74 rel 0 NEAR_Z DATA 00000144 - 00000196 53 rel 0 EEPROM_I XDATA 00000000 - 00000082 83 rel 0 **************************************** * * * END OF CROSS REFERENCE * * * **************************************** 4 710 bytes of CODE memory (+ 8 range fill ) 311 bytes of DATA memory (+ 33 absolute ) 131 bytes of XDATA memory Errors: none Warnings: none