使用mspgcc-size我可以得到这样的输出:
text data bss dec hex
13072 236 65296 78604 1330c
我们知道:
Flash = data + text
RAM = data + bss
如何使用工具链从所选的-mmcu = msp430g2553中提取ROM / RAM的大小?
e.g. ROM: 8192 Byte, RAM: 512 Byte
目标是:
ROM usage XXX Bytes (40%)
RAM usage YYY Bytes (11%)
mspgcc-size并没有通过开关(不像avr-gcc)生成它。
地图文件:
Memory Configuration
Name Origin Length Attributes
sfr 0x00000000 0x00000010
peripheral_8bit 0x00000010 0x000000f0
peripheral_16bit 0x00000100 0x00000100
ram 0x00000200 0x00000080 xw
infomem 0x00001000 0x00000100
infod 0x00001000 0x00000040
infoc 0x00001040 0x00000040
infob 0x00001080 0x00000040
infoa 0x000010c0 0x00000040
rom 0x0000f800 0x000007e0 xr
vectors 0x0000ffe0 0x00000020
bsl 0x00000000 0x00000000
ram2 0x00000000 0x00000000 xw
ram_mirror 0x00000000 0x00000000 xw
usbram 0x00000000 0x00000000 xw
far_rom 0x00000000 0x00000000
*default* 0x00000000 0xffffffff
Linker script and memory map
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.text
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
.rela.text
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
.rel.rodata
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
.rela.rodata
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
.rel.data
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
.rela.data
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
.rel.bss
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
.rela.bss
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x0000f800 0x59e
0x0000f800 . = ALIGN (0x2)
*(.init .init.*)
*(.init0)
.init0 0x0000f800 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_reset_vector__.o)
0x0000f800 _reset_vector__
*(.init1)
.init1 0x0000f800 0xc c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__watchdog_support.o)
0x0000f800 __watchdog_support
*(.init2)
.init2 0x0000f80c 0x4 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__init_stack.o)
0x0000f80c __init_stack
*(.init3)
.init3 0x0000f810 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__low_level_init.o)
0x0000f810 __low_level_init
*(.init4)
.init4 0x0000f810 0x18 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_copy_data.o)
0x0000f810 __do_copy_data
.init4 0x0000f828 0x16 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_clear_bss.o)
0x0000f828 __do_clear_bss
*(.init5)
*(.init6)
*(.init7)
*(.init8)
*(.init9)
.init9 0x0000f83e 0x12 obj\main.o
0x0000f83e main
*(.fini9)
.fini9 0x0000f850 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__stop_progExec__.o)
0x0000f850 __stop_progExec__
*(.fini8)
*(.fini7)
*(.fini6)
*(.fini5)
*(.fini4)
*(.fini3)
*(.fini2)
*(.fini1)
*(.fini0)
.fini0 0x0000f850 0x6 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_endless_loop__.o)
0x0000f850 _endless_loop__
*(.fini .fini.*)
0x0000f856 . = ALIGN (0x2)
0x0000f856 __ctors_start = .
*(.ctors)
0x0000f856 __ctors_end = .
0x0000f856 __dtors_start = .
*(.dtors)
0x0000f856 __dtors_end = .
0x0000f856 . = ALIGN (0x2)
*(.text .text.* .gnu.linkonce.t.*)
.text 0x0000f856 0x4 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3/crt0ivtbl16.o
0x0000f856 __isr_14
0x0000f856 __isr_4
0x0000f856 __isr_11
0x0000f856 __isr_5
0x0000f856 __isr_2
0x0000f856 __isr_10
0x0000f856 __isr_7
0x0000f856 __isr_0
0x0000f856 __isr_8
0x0000f856 __isr_3
0x0000f856 __isr_12
0x0000f856 __isr_13
0x0000f856 __isr_6
0x0000f856 __isr_1
.text.crt0 0x0000f85a 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3/crt0ivtbl16.o
.text 0x0000f85a 0xec obj\adc.o
0x0000f85a adc_init
0x0000f868 analogRead
.text 0x0000f946 0x8 obj\adc_app.o
0x0000f946 ADC_app_Task
.text 0x0000f94e 0x28 obj\Clock.o
0x0000f94e Clock_init
.text 0x0000f976 0x202 obj\dio.o
0x0000f976 dio_init
0x0000f982 digitalRead
0x0000f9e6 digitalWrite
0x0000fa86 pinMode
.text 0x0000fb78 0x56 obj\Error_Handler.o
0x0000fb78 Error_Handler
.text 0x0000fbce 0xa obj\Generic_Interrupt.o
0x0000fbce Glob_Int_Enable
0x0000fbd2 Glob_Int_Disable
.text 0x0000fbd8 0x34 obj\MCU_Common.o
0x0000fbd8 MCU_Common_init
0x0000fbf2 _unexpected_
.text 0x0000fc0c 0x0 obj\main.o
.text 0x0000fc0c 0x12 obj\PID.o
0x0000fc0c PID_Task
.text 0x0000fc1e 0x4a obj\pwm.o
0x0000fc1e pwm_init
0x0000fc38 pwm_set
.text 0x0000fc68 0x2 obj\Prog_Flow_Mon.o
0x0000fc68 pfm_checkin
.text 0x0000fc6a 0x34 obj\Shut_Down_TMR.o
0x0000fc6a Shut_Down_TMR_Task
.text 0x0000fc9e 0x90 obj\Scheduler.o
0x0000fc9e Dispatch_Tasks
0x0000fcfa __isr_9
0x0000fcfa TIMER0_INT_isr
.text 0x0000fd2e 0x6 obj\Sleep.o
0x0000fd2e Sleep
.text 0x0000fd34 0x14 obj\Timer.o
0x0000fd34 timer_init
.text 0x0000fd48 0x34 obj\wdt.o
0x0000fd48 WDT_init
0x0000fd6c WDT_Reset_StartTimer
0x0000fd74 WDT_StopTimer
.text 0x0000fd7c 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libgcc.a(_udivmod16.o)
.text.libgcc 0x0000fd7c 0x22 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libgcc.a(_udivmod16.o)
0x0000fd7c __ext_udivmod16
0x0000fd7c __udivhi3
0x0000fd96 __umodhi3
.text 0x0000fd9e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_reset_vector__.o)
.text 0x0000fd9e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__watchdog_support.o)
.text 0x0000fd9e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__init_stack.o)
.text 0x0000fd9e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__low_level_init.o)
.text 0x0000fd9e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_copy_data.o)
.text 0x0000fd9e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_clear_bss.o)
.text 0x0000fd9e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__stop_progExec__.o)
.text 0x0000fd9e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_endless_loop__.o)
0x0000fd9e . = ALIGN (0x2)
.rodata 0x0000fd9e 0x6
0x0000fd9e . = ALIGN (0x2)
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata 0x0000fd9e 0x6 obj\adc.o
0x0000fda4 . = ALIGN (0x2)
0x0000fda4 _etext = .
.data 0x00000200 0xe load address 0x0000fda4
0x00000200 . = ALIGN (0x2)
0x00000200 PROVIDE (__data_start, .)
*(.data .data.* .gnu.linkonce.d.*)
.data 0x00000200 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3/crt0ivtbl16.o
.data 0x00000200 0x0 obj\adc.o
.data 0x00000200 0x0 obj\adc_app.o
.data 0x00000200 0x0 obj\Clock.o
.data 0x00000200 0x0 obj\dio.o
.data 0x00000200 0x0 obj\Error_Handler.o
.data 0x00000200 0x0 obj\Generic_Interrupt.o
.data 0x00000200 0x0 obj\MCU_Common.o
.data 0x00000200 0x0 obj\main.o
.data 0x00000200 0x0 obj\PID.o
.data 0x00000200 0x0 obj\pwm.o
.data 0x00000200 0x0 obj\Prog_Flow_Mon.o
.data 0x00000200 0x1 obj\Shut_Down_TMR.o
*fill* 0x00000201 0x1 00
.data 0x00000202 0xc obj\Scheduler.o
.data 0x0000020e 0x0 obj\Sleep.o
.data 0x0000020e 0x0 obj\Timer.o
.data 0x0000020e 0x0 obj\wdt.o
.data 0x0000020e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libgcc.a(_udivmod16.o)
.data 0x0000020e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_reset_vector__.o)
.data 0x0000020e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__watchdog_support.o)
.data 0x0000020e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__init_stack.o)
.data 0x0000020e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__low_level_init.o)
.data 0x0000020e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_copy_data.o)
.data 0x0000020e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_clear_bss.o)
.data 0x0000020e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__stop_progExec__.o)
.data 0x0000020e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_endless_loop__.o)
0x0000020e . = ALIGN (0x2)
0x0000020e _edata = .
0x0000fda4 PROVIDE (__data_load_start, LOADADDR (.data))
0x0000000e PROVIDE (__data_size, SIZEOF (.data))
.bss 0x0000020e 0xc load address 0x0000fdb2
0x0000020e PROVIDE (__bss_start, .)
*(.bss .bss.*)
.bss 0x0000020e 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3/crt0ivtbl16.o
.bss 0x0000020e 0x0 obj\adc.o
.bss 0x0000020e 0x8 obj\adc_app.o
0x0000020e ADC_App_Button_State
0x00000210 ADC_MotorCurrent
0x00000212 ADC_MotorBEMF
0x00000214 ADC_Current_SetPoint
.bss 0x00000216 0x0 obj\Clock.o
.bss 0x00000216 0x0 obj\dio.o
.bss 0x00000216 0x0 obj\Error_Handler.o
.bss 0x00000216 0x0 obj\Generic_Interrupt.o
.bss 0x00000216 0x0 obj\MCU_Common.o
.bss 0x00000216 0x0 obj\main.o
.bss 0x00000216 0x0 obj\PID.o
.bss 0x00000216 0x0 obj\pwm.o
.bss 0x00000216 0x0 obj\Prog_Flow_Mon.o
.bss 0x00000216 0x1 obj\Shut_Down_TMR.o
.bss 0x00000217 0x2 obj\Scheduler.o
0x00000217 elapsed_ticks
.bss 0x00000219 0x0 obj\Sleep.o
.bss 0x00000219 0x0 obj\Timer.o
.bss 0x00000219 0x0 obj\wdt.o
.bss 0x00000219 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libgcc.a(_udivmod16.o)
.bss 0x00000219 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_reset_vector__.o)
.bss 0x00000219 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__watchdog_support.o)
.bss 0x00000219 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__init_stack.o)
.bss 0x00000219 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__low_level_init.o)
.bss 0x00000219 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_copy_data.o)
.bss 0x00000219 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_clear_bss.o)
.bss 0x00000219 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__stop_progExec__.o)
.bss 0x00000219 0x0 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_endless_loop__.o)
*(COMMON)
0x0000021a . = ALIGN (0x2)
*fill* 0x00000219 0x1 00
0x0000021a PROVIDE (__bss_end, .)
0x0000000c PROVIDE (__bss_size, SIZEOF (.bss))
.noinit 0x0000021a 0x2 load address 0x0000fdb2
0x0000021a PROVIDE (__noinit_start, .)
*(.noinit .noinit.*)
.noinit.crt0 0x0000021a 0x2 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__watchdog_support.o)
0x0000021a __wdt_clear_value
0x0000021c . = ALIGN (0x2)
0x0000021c PROVIDE (__noinit_end, .)
0x0000021c . = ALIGN (0x2)
0x0000021c _end = .
.infomem 0x00001000 0x0
*(.infomem)
0x00001000 . = ALIGN (0x2)
*(.infomem.*)
.infomemnobits 0x00001000 0x0
*(.infomemnobits)
0x00001000 . = ALIGN (0x2)
*(.infomemnobits.*)
.infoa
*(.infoa .infoa.*)
.infob
*(.infob .infob.*)
.infoc
*(.infoc .infoc.*)
.infod
*(.infod .infod.*)
.vectors 0x0000ffe0 0x20
0x0000ffe0 PROVIDE (__vectors_start, .)
*(.vectors*)
.vectors 0x0000ffe0 0x20 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3/crt0ivtbl16.o
0x0000ffe0 __ivtbl_16
0x00010000 _vectors_end = .
.fartext 0x00000000 0x0
0x00000000 . = ALIGN (0x2)
*(.fartext)
0x00000000 . = ALIGN (0x2)
*(.fartext.*)
0x00000000 _efartext = .
.profiler
*(.profiler)
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment
*(.comment)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x1b8
*(.debug_aranges)
.debug_aranges
0x00000000 0x14 obj\adc.o
.debug_aranges
0x00000014 0x14 obj\adc_app.o
.debug_aranges
0x00000028 0x14 obj\Clock.o
.debug_aranges
0x0000003c 0x14 obj\dio.o
.debug_aranges
0x00000050 0x14 obj\Error_Handler.o
.debug_aranges
0x00000064 0x14 obj\Generic_Interrupt.o
.debug_aranges
0x00000078 0x14 obj\MCU_Common.o
.debug_aranges
0x0000008c 0x14 obj\main.o
.debug_aranges
0x000000a0 0x14 obj\PID.o
.debug_aranges
0x000000b4 0x14 obj\pwm.o
.debug_aranges
0x000000c8 0x14 obj\Prog_Flow_Mon.o
.debug_aranges
0x000000dc 0x14 obj\Shut_Down_TMR.o
.debug_aranges
0x000000f0 0x14 obj\Scheduler.o
.debug_aranges
0x00000104 0x14 obj\Sleep.o
.debug_aranges
0x00000118 0x14 obj\Timer.o
.debug_aranges
0x0000012c 0x14 obj\wdt.o
.debug_aranges
0x00000140 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libgcc.a(_udivmod16.o)
.debug_aranges
0x00000154 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__watchdog_support.o)
.debug_aranges
0x00000168 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__init_stack.o)
.debug_aranges
0x0000017c 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_copy_data.o)
.debug_aranges
0x00000190 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_clear_bss.o)
.debug_aranges
0x000001a4 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_endless_loop__.o)
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x00000000 0x1676
*(.debug_info)
.debug_info 0x00000000 0x244 obj\adc.o
.debug_info 0x00000244 0x12f obj\adc_app.o
.debug_info 0x00000373 0xc5 obj\Clock.o
.debug_info 0x00000438 0x2f2 obj\dio.o
.debug_info 0x0000072a 0x159 obj\Error_Handler.o
.debug_info 0x00000883 0x88 obj\Generic_Interrupt.o
.debug_info 0x0000090b 0x122 obj\MCU_Common.o
.debug_info 0x00000a2d 0x124 obj\main.o
.debug_info 0x00000b51 0xa6 obj\PID.o
.debug_info 0x00000bf7 0x116 obj\pwm.o
.debug_info 0x00000d0d 0x112 obj\Prog_Flow_Mon.o
.debug_info 0x00000e1f 0xd4 obj\Shut_Down_TMR.o
.debug_info 0x00000ef3 0x1d0 obj\Scheduler.o
.debug_info 0x000010c3 0xb8 obj\Sleep.o
.debug_info 0x0000117b 0xb3 obj\Timer.o
.debug_info 0x0000122e 0x177 obj\wdt.o
.debug_info 0x000013a5 0x8d c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libgcc.a(_udivmod16.o)
.debug_info 0x00001432 0x74 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__watchdog_support.o)
.debug_info 0x000014a6 0x74 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__init_stack.o)
.debug_info 0x0000151a 0x74 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_copy_data.o)
.debug_info 0x0000158e 0x74 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_clear_bss.o)
.debug_info 0x00001602 0x74 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_endless_loop__.o)
*(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x968
*(.debug_abbrev)
.debug_abbrev 0x00000000 0xef obj\adc.o
.debug_abbrev 0x000000ef 0x84 obj\adc_app.o
.debug_abbrev 0x00000173 0x5a obj\Clock.o
.debug_abbrev 0x000001cd 0x116 obj\dio.o
.debug_abbrev 0x000002e3 0x89 obj\Error_Handler.o
.debug_abbrev 0x0000036c 0x3f obj\Generic_Interrupt.o
.debug_abbrev 0x000003ab 0x6a obj\MCU_Common.o
.debug_abbrev 0x00000415 0x66 obj\main.o
.debug_abbrev 0x0000047b 0x5d obj\PID.o
.debug_abbrev 0x000004d8 0x8d obj\pwm.o
.debug_abbrev 0x00000565 0xac obj\Prog_Flow_Mon.o
.debug_abbrev 0x00000611 0x6e obj\Shut_Down_TMR.o
.debug_abbrev 0x0000067f 0xed obj\Scheduler.o
.debug_abbrev 0x0000076c 0x71 obj\Sleep.o
.debug_abbrev 0x000007dd 0x5a obj\Timer.o
.debug_abbrev 0x00000837 0xb9 obj\wdt.o
.debug_abbrev 0x000008f0 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libgcc.a(_udivmod16.o)
.debug_abbrev 0x00000904 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__watchdog_support.o)
.debug_abbrev 0x00000918 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__init_stack.o)
.debug_abbrev 0x0000092c 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_copy_data.o)
.debug_abbrev 0x00000940 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_clear_bss.o)
.debug_abbrev 0x00000954 0x14 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_endless_loop__.o)
.debug_line 0x00000000 0x1045
*(.debug_line)
.debug_line 0x00000000 0x157 obj\adc.o
.debug_line 0x00000157 0xed obj\adc_app.o
.debug_line 0x00000244 0xa9 obj\Clock.o
.debug_line 0x000002ed 0x1b5 obj\dio.o
.debug_line 0x000004a2 0x10f obj\Error_Handler.o
.debug_line 0x000005b1 0x5f obj\Generic_Interrupt.o
.debug_line 0x00000610 0x8d obj\MCU_Common.o
.debug_line 0x0000069d 0xad obj\main.o
.debug_line 0x0000074a 0xf3 obj\PID.o
.debug_line 0x0000083d 0xd8 obj\pwm.o
.debug_line 0x00000915 0xf9 obj\Prog_Flow_Mon.o
.debug_line 0x00000a0e 0xec obj\Shut_Down_TMR.o
.debug_line 0x00000afa 0x125 obj\Scheduler.o
.debug_line 0x00000c1f 0x69 obj\Sleep.o
.debug_line 0x00000c88 0xa2 obj\Timer.o
.debug_line 0x00000d2a 0xd3 obj\wdt.o
.debug_line 0x00000dfd 0x77 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libgcc.a(_udivmod16.o)
.debug_line 0x00000e74 0x5c c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__watchdog_support.o)
.debug_line 0x00000ed0 0x5a c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(__init_stack.o)
.debug_line 0x00000f2a 0x60 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_copy_data.o)
.debug_line 0x00000f8a 0x60 c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_clear_bss.o)
.debug_line 0x00000fea 0x5b c:/mspgcc/bin/../lib/gcc/msp430/4.6.3\libcrt0.a(_endless_loop__.o)
.debug_frame 0x00000000 0x2ac
*(.debug_frame)
.debug_frame 0x00000000 0x30 obj\adc.o
.debug_frame 0x00000030 0x1e obj\adc_app.o
.debug_frame 0x0000004e 0x1e obj\Clock.o
.debug_frame 0x0000006c 0x4e obj\dio.o
.debug_frame 0x000000ba 0x24 obj\Error_Handler.o
.debug_frame 0x000000de 0x2a obj\Generic_Interrupt.o
.debug_frame 0x00000108 0x3e obj\MCU_Common.o
.debug_frame 0x00000146 0x1e obj\main.o
.debug_frame 0x00000164 0x1e obj\PID.o
.debug_frame 0x00000182 0x2a obj\pwm.o
.debug_frame 0x000001ac 0x1e obj\Prog_Flow_Mon.o
.debug_frame 0x000001ca 0x1e obj\Shut_Down_TMR.o
.debug_frame 0x000001e8 0x52 obj\Scheduler.o
.debug_frame 0x0000023a 0x1e obj\Sleep.o
.debug_frame 0x00000258 0x1e obj\Timer.o
.debug_frame 0x00000276 0x36 obj\wdt.o
.debug_str 0x00000000 0x8cf
*(.debug_str)
.debug_str 0x00000000 0x32c obj\adc.o
0x37d (size before relaxing)
.debug_str 0x0000032c 0x93 obj\adc_app.o
0x1b2 (size before relaxing)
.debug_str 0x000003bf 0x4d obj\Clock.o
0x146 (size before relaxing)
.debug_str 0x0000040c 0xf5 obj\dio.o
0x39e (size before relaxing)
.debug_str 0x00000501 0x51 obj\Error_Handler.o
0x2c1 (size before relaxing)
.debug_str 0x00000552 0x4c obj\Generic_Interrupt.o
0x126 (size before relaxing)
.debug_str 0x0000059e 0x42 obj\MCU_Common.o
0x2a5 (size before relaxing)
.debug_str 0x000005e0 0x20 obj\main.o
0x288 (size before relaxing)
.debug_str 0x00000600 0x20 obj\PID.o
0x123 (size before relaxing)
.debug_str 0x00000620 0x5b obj\pwm.o
0x164 (size before relaxing)
.debug_str 0x0000067b 0xb0 obj\Prog_Flow_Mon.o
0x197 (size before relaxing)
.debug_str 0x0000072b 0x4c obj\Shut_Down_TMR.o
0x153 (size before relaxing)
.debug_str 0x00000777 0x7e obj\Scheduler.o
0x2ee (size before relaxing)
.debug_str 0x000007f5 0x46 obj\Sleep.o
0x126 (size before relaxing)
.debug_str 0x0000083b 0x30 obj\Timer.o
0x130 (size before relaxing)
.debug_str 0x0000086b 0x64 obj\wdt.o
0x2d3 (size before relaxing)
.debug_loc 0x00000000 0x264
*(.debug_loc)
.debug_loc 0x00000000 0x26 obj\adc.o
.debug_loc 0x00000026 0xc obj\adc_app.o
.debug_loc 0x00000032 0x150 obj\dio.o
.debug_loc 0x00000182 0x39 obj\Error_Handler.o
.debug_loc 0x000001bb 0x2c obj\MCU_Common.o
.debug_loc 0x000001e7 0x19 obj\pwm.o
.debug_loc 0x00000200 0x64 obj\Scheduler.o
.debug_macinfo
*(.debug_macinfo)
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges 0x00000000 0x8
*(.debug_ranges)
.debug_ranges 0x00000000 0x8 obj\main.o
0x00000280 PROVIDE (__stack, (ORIGIN (ram) + 0x80))
0x0000fda4 PROVIDE (__data_start_rom, _etext)
0x0000fdb2 PROVIDE (__data_end_rom, (_etext + SIZEOF (.data)))
OUTPUT(bin\DUMMY.elf elf32-msp430)