Loading ...
Sorry, an error occurred while loading the content.
 

Re: S12 In Linux need help

Expand Messages
  • Jefferson Smith
    ... I do not lie; page0 has just as much chance living there as any other place that is not 00..FF. Surely someone has hardware with external RAM mapped there.
    Message 1 of 30 , Nov 1, 2006
      --- In gnu-m68hc11@yahoogroups.com, "Eric Engler" <englere.geo@...> wrote:
      > You need to study your map. In the 9s12 it's possible to relocate
      > page0, but it's very uncommon. And there's no chance of it living at
      > 0x8000 and having a length of almost 16K.

      I do not lie; page0 has just as much chance living there as any other
      place that is not 00..FF. Surely someone has hardware with external
      RAM mapped there.

      My point is still that NOTHING is page0 except 00..FF
    • Jefferson Smith
      ... Only in HC11. In this one thing I am certain: For HC12 there is no RAM at page0 on powerup, and so for great reason, the default link must not place
      Message 2 of 30 , Nov 1, 2006
        --- In gnu-m68hc11@yahoogroups.com, Donald E Haselwood
        <dhaselwood@...> wrote:
        >
        > On Tuesday 31 October 2006 13:52, Jefferson Smith wrote:
        > > In normal case the linker does not
        > > place anything in page0 for HC12/S12.
        >
        > When C programs are involved I find that there are soft registers
        > stored in page0.

        Only in HC11. In this one thing I am certain: For HC12 there is no RAM
        at page0 on powerup, and so for great reason, the default link must
        not place ANYTHING in the page0 region. The exception would be if
        something were designed to use page0 to initialize the lower hardware
        registers (which I don't see as practical).

        If you see something linked to page0 in HC12, please post it because
        it would be a bug! Otherwise you are not linking correctly for HC12.

        Before linking, the compiler creates an "input section" called
        ".softregs" for soft registers. This is the most important thing that
        was sent to page0 in HC11. If you follow the linker scripts for HC12,
        you see that these .softregs are sent to output section ".bss" instead
        of ".page0".
      • Donald E Haselwood
        ... Ahah! Very interesting. The following .map shows that when the .ld file contains a memory configuration for .page0 the soft regs are put there, however
        Message 3 of 30 , Nov 1, 2006
          On Wednesday 01 November 2006 10:24, Jefferson Smith wrote:
          > --- In gnu-m68hc11@yahoogroups.com, Donald E Haselwood
          >
          > <dhaselwood@...> wrote:
          > > On Tuesday 31 October 2006 13:52, Jefferson Smith wrote:
          > > > In normal case the linker does not
          > > > place anything in page0 for HC12/S12.
          > >
          > > When C programs are involved I find that there are soft registers
          > > stored in page0.
          >
          > Only in HC11. In this one thing I am certain: For HC12 there is no RAM
          > at page0 on powerup, and so for great reason, the default link must
          > not place ANYTHING in the page0 region. The exception would be if
          > something were designed to use page0 to initialize the lower hardware
          > registers (which I don't see as practical).
          >
          > If you see something linked to page0 in HC12, please post it because
          > it would be a bug! Otherwise you are not linking correctly for HC12.
          >
          > Before linking, the compiler creates an "input section" called
          > ".softregs" for soft registers. This is the most important thing that
          > was sent to page0 in HC11. If you follow the linker scripts for HC12,
          > you see that these .softregs are sent to output section ".bss" instead
          > of ".page0".
          >
          >

          Ahah! Very interesting. The following .map shows that when the .ld file
          contains a memory configuration for .page0 the soft regs are put there,
          however if the .page0 line is removed, the soft regs go into .bss.

          Donald E Haselwood

          #######################################################
          Archive member included because of file (symbol)

          /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
          ./crt0.o (_.tmp)
          /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
          ./crt0.o (_.frame)
          /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_d1_2.o)
          ./crt0.o (_.d1)

          Allocating common symbols
          Common symbol size file

          _impure_ptr 0x2 ./crt0.o

          Memory Configuration

          Name Origin Length Attributes
          PAGE0 0x00000000 0x00000100 xw
          RAM 0x00000100 0x00001f00 xw
          FLASH 0x00004000 0x0000b000 xw
          BOOT 0x0000f000 0x00001000 xw
          *default* 0x00000000 0xffffffff

          Linker script and memory map

          0x00002000 PROVIDE (_stack, 0x2000)

          .page0
          *(.comm)

          .ram 0x00000100 0x628
          0x00000100 PROVIDE (_start_of_ram, .)
          0x00000100 PROVIDE (_start_of_bss, .)
          0x00000100 _start_of_bss = .
          0x00000100 PROVIDE (__bss_start, .)
          *(.bss)
          .bss 0x00000100 0x208 ./c_9s12ddpx.o
          0x00000307 b
          0x00000302 x
          0x00000304 y
          0x00000100 ddpRxSci
          0x00000200 ddpRxMax
          0x00000306 a
          0x00000300 uiSeqThis
          .bss 0x00000308 0x420 ./sci/scixc.o
          0x00000418 scirbuff2
          0x00000518 scitbuff0
          0x00000618 scitbuff1
          0x00000628 scitbuff2
          0x00000308 scirbuff0
          0x00000408 scirbuff1
          0x00000728 _end_of_bss = .
          0x00000728 PROVIDE (_end_of_bss, .)
          0x0000076f _end_of_ram = (__data_section_size
          + .)
          0x00000728 PROVIDE (_end_of_ram, .)
          0x00000628 PROVIDE (__bss_size, (_end_of_bss -
          _start_of_bss))

          .flash 0x00004000 0x846
          0x00004000 PROVIDE (_start_of_rom, .)
          *(.install0)
          .install0 0x00004000 0x2f ./crt0.o
          0x00004000 _start
          *(.text)
          .text 0x0000402f 0x173 ./c_9s12ddpx.o
          0x000040e1 Hc11SCRead
          ...snip...

          0x00004725 sci1_baud
          .text 0x0000475c 0xc0 ./sci/rti485.o
          0x0000475c rti_init
          0x00004771 RTIInt
          *(.rodata.str1.1)
          .rodata.str1.1
          0x0000481c 0x2a ./c_9s12ddpx.o
          *(.rodata)
          0x00004846 __data_image = .
          0x00004846 PROVIDE (__data_image, .)
          0x00004846 _end_of_rom1 = .
          0x00004846 PROVIDE (_start_of_init, .)

          .data 0x00000728 0x47 load address 0x00004846
          0x00000728 __data_section_start = .
          0x00000728 PROVIDE (__data_section_start, .)
          *(.data)
          .data 0x00000728 0x3 ./ddpcksum.o
          .data 0x0000072b 0x42 ./sci/scixc.o
          0x00000757 Sci2
          0x00000741 Sci1
          0x0000072b Sci0
          .data 0x0000076d 0x2 ./sci/rti485.o
          0x0000076f __data_image_end = .
          0x0000076f PROVIDE (__data_image_end, .)
          0x0000076f _end_data = .
          0x00000047 __data_section_size =
          (__data_image_end - __data_section_start)
          0x00000047 PROVIDE (__data_section_size,
          (__data_image_end - __data_section_start))

          .boot 0x0000f000 0x1000
          *(.boot)
          .boot 0x0000f000 0x6a ./StartE128.o
          0x0000f05d exit
          0x0000f063 IntTrap
          0x0000ff00 . = 0xf00
          *fill* 0x0000f06a 0xe96 00
          *(.special1)
          .special1 0x0000ff00 0x10 ./StartE128.o
          0x0000ff80 . = 0xf80
          *fill* 0x0000ff10 0x70 00
          *(.hardvectors)
          .hardvectors 0x0000ff80 0x80 ./StartE128.o
          0x0000ff80 Hardvectorstart
          0x0000ffd2 SCI2
          0x0000ffb8 Flash
          0x0000ffa0 Tim2ch7
          0x0000fff0 RTI
          0x0000fffe Reset
          0x0000ffc6 CRGplllck
          0x0000ffa2 Tim2ch6
          0x0000ffd4 SCI1
          0x0000ff88 Pwm8b6csd
          0x0000ffd6 SCI0
          LOAD ./crt0.o
          LOAD ./c_9s12ddpx.o
          LOAD ./StartE128.o
          LOAD ./ddppktsx.o
          LOAD ./ddpcksum.o
          LOAD ./sci/scix1.o
          LOAD ./sci/scixc.o
          LOAD ./sci/scix_baud.o
          LOAD ./sci/rti485.o
          LOAD /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a
          LOAD /home/deh/hc12/gel/gnu_hc12/gel-hc1x-1.6.1/lib/libc.a
          LOAD /home/deh/hc12/gel/gnu_hc12/gel-hc1x-1.6.1/lib/libbsp.a
          LOAD /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a
          LOAD /usr/m6811-elf/lib/m68hc12/mshort/libm.a
          LOAD /usr/m6811-elf/lib/m68hc12/mshort/libbcc.a
          LOAD /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a
          OUTPUT(c_9s12ddpx.obj elf32-m68hc12)
          LOAD linker stubs

          .bss 0x00000000 0x2
          COMMON 0x00000000 0x2 ./crt0.o
          0x0 (size before relaxing)
          0x00000000 _impure_ptr

          vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv .softregs
          0x00000002 0xc
          .softregs 0x00000002
          0x6 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
          0x00000002 _.tmp
          0x00000006 _.xy
          0x00000004 _.z
          .softregs 0x00000008
          0x2 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
          0x00000008 _.frame
          .softregs 0x0000000a
          0x4 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_d1_2.o)
          0x0000000a _.d1
          0x0000000c _.d2
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          .debug_line 0x00000000 0x4e
          .debug_line 0x00000000
          0x1a /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
          .debug_line 0x0000001a
          0x1a /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
          .debug_line 0x00000034
          0x1a /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_d1_2.o)

          ################################################################
          Archive member included because of file (symbol)

          /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
          ./crt0.o (_.tmp)
          /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
          ./crt0.o (_.frame)
          /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_d1_2.o)
          ./crt0.o (_.d1)

          Allocating common symbols
          Common symbol size file

          _impure_ptr 0x2 ./crt0.o

          Memory Configuration

          Name Origin Length Attributes
          RAM 0x00000100 0x00001f00 xw
          FLASH 0x00004000 0x0000b000 xw
          BOOT 0x0000f000 0x00001000 xw
          *default* 0x00000000 0xffffffff

          Linker script and memory map

          0x00002000 PROVIDE (_stack, 0x2000)

          .ram 0x00000100 0x628
          0x00000100 PROVIDE (_start_of_ram, .)
          0x00000100 PROVIDE (_start_of_bss, .)
          0x00000100 _start_of_bss = .
          0x00000100 PROVIDE (__bss_start, .)
          *(.bss)
          .bss 0x00000100 0x208 ./c_9s12ddpx.o
          0x00000307 b
          0x00000302 x
          0x00000304 y
          0x00000100 ddpRxSci
          0x00000200 ddpRxMax
          0x00000306 a
          0x00000300 uiSeqThis
          .bss 0x00000308 0x420 ./sci/scixc.o
          0x00000418 scirbuff2
          0x00000518 scitbuff0
          0x00000618 scitbuff1
          0x00000628 scitbuff2
          0x00000308 scirbuff0
          0x00000408 scirbuff1
          0x00000728 _end_of_bss = .
          0x00000728 PROVIDE (_end_of_bss, .)
          0x0000076f _end_of_ram = (__data_section_size
          + .)
          0x00000728 PROVIDE (_end_of_ram, .)
          0x00000628 PROVIDE (__bss_size, (_end_of_bss -
          _start_of_bss))

          .flash 0x00004000 0x846
          0x00004000 PROVIDE (_start_of_rom, .)
          *(.install0)
          .install0 0x00004000 0x2f ./crt0.o
          0x00004000 _start
          *(.text)
          .text 0x0000402f 0x173 ./c_9s12ddpx.o
          0x000040e1 Hc11SCRead
          0x0000402f main
          ...snip...
          0x00004725 sci1_baud
          .text 0x0000475c 0xc0 ./sci/rti485.o
          0x0000475c rti_init
          0x00004771 RTIInt
          *(.rodata.str1.1)
          .rodata.str1.1
          0x0000481c 0x2a ./c_9s12ddpx.o
          *(.rodata)
          0x00004846 __data_image = .
          0x00004846 PROVIDE (__data_image, .)
          0x00004846 _end_of_rom1 = .
          0x00004846 PROVIDE (_start_of_init, .)

          .data 0x00000728 0x47 load address 0x00004846
          0x00000728 __data_section_start = .
          0x00000728 PROVIDE (__data_section_start, .)
          *(.data)
          .data 0x00000728 0x3 ./ddpcksum.o
          .data 0x0000072b 0x42 ./sci/scixc.o
          0x00000757 Sci2
          0x00000741 Sci1
          0x0000072b Sci0
          .data 0x0000076d 0x2 ./sci/rti485.o
          0x0000076f __data_image_end = .
          0x0000076f PROVIDE (__data_image_end, .)
          0x0000076f _end_data = .
          0x00000047 __data_section_size =
          (__data_image_end - __data_section_start)
          0x00000047 PROVIDE (__data_section_size,
          (__data_image_end - __data_section_start))

          .boot 0x0000f000 0x1000
          *(.boot)
          .boot 0x0000f000 0x6a ./StartE128.o
          0x0000f05d exit
          0x0000f063 IntTrap
          0x0000ff00 . = 0xf00
          *fill* 0x0000f06a 0xe96 00
          *(.special1)
          .special1 0x0000ff00 0x10 ./StartE128.o
          0x0000ff80 . = 0xf80
          *fill* 0x0000ff10 0x70 00
          *(.hardvectors)
          .hardvectors 0x0000ff80 0x80 ./StartE128.o
          0x0000ff80 Hardvectorstart
          0x0000ffd2 SCI2
          0x0000ffb8 Flash
          0x0000ffa0 Tim2ch7
          0x0000fff0 RTI
          0x0000fffe Reset
          0x0000ffc6 CRGplllck
          0x0000ffa2 Tim2ch6
          0x0000ffd4 SCI1
          0x0000ff88 Pwm8b6csd
          0x0000ffd6 SCI0
          LOAD ./crt0.o
          LOAD ./c_9s12ddpx.o
          LOAD ./StartE128.o
          LOAD ./ddppktsx.o
          LOAD ./ddpcksum.o
          LOAD ./sci/scix1.o
          LOAD ./sci/scixc.o
          LOAD ./sci/scix_baud.o
          LOAD ./sci/rti485.o
          LOAD /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a
          LOAD /home/deh/hc12/gel/gnu_hc12/gel-hc1x-1.6.1/lib/libc.a
          LOAD /home/deh/hc12/gel/gnu_hc12/gel-hc1x-1.6.1/lib/libbsp.a
          LOAD /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a
          LOAD /usr/m6811-elf/lib/m68hc12/mshort/libm.a
          LOAD /usr/m6811-elf/lib/m68hc12/mshort/libbcc.a
          LOAD /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a
          OUTPUT(c_9s12ddpx.obj elf32-m68hc12)
          LOAD linker stubs

          .bss 0x0000076f 0x2
          COMMON 0x0000076f 0x2 ./crt0.o
          0x0 (size before relaxing)
          0x0000076f _impure_ptr

          vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv .softregs
          0x00000771 0xc
          .softregs 0x00000771
          0x6 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
          0x00000771 _.tmp
          0x00000775 _.xy
          0x00000773 _.z
          .softregs 0x00000777
          0x2 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
          0x00000777 _.frame
          .softregs 0x00000779
          0x4 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_d1_2.o)
          0x00000779 _.d1
          0x0000077b _.d2
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          .debug_line 0x00000000 0x4e
          .debug_line 0x00000000
          0x1a /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
          .debug_line 0x0000001a
          0x1a /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
          .debug_line 0x00000034
          0x1a /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_d1_2.o)
        • Jefferson Smith
          ... It sounds interresting, although I didn t see in your .map where something is being placed in .page0 Are you sure you re using the default link an didn t
          Message 4 of 30 , Nov 1, 2006
            --- In gnu-m68hc11@yahoogroups.com, Donald E Haselwood
            <dhaselwood@...> wrote:
            > Ahah! Very interesting. The following .map shows that when
            > the .ld file contains a memory configuration for .page0 the
            > soft regs are put there, however if the .page0 line is
            > removed, the soft regs go into .bss.

            It sounds interresting, although I didn't see in your .map where
            something is being placed in .page0

            Are you sure you're using the default link an didn't write your own
            stuff? Sounds like you have a custom ".ld" file, which is of course
            not what I'm talking about. I look in "lib/ldscripts/" of GCC
            installation to find the default ones. What are the commandlines that
            generated this output?

            How did you generate a map file? Mine crashes when I use "-Map", and
            so does everyone elses I've heard of. Maybe you are using a release
            version older than 2.9 (m68hc1x release, not gcc release)?

            This is my example commandlines:

            m6811-elf-gcc -m68hcs12 -mshort -Wall -Wmissing-prototypes -g -Os \
            -fomit-frame-pointer -msoft-reg-count=1 -I../include/ \
            -I../../gel/include/asm-m68hcs12/arch-dragon12 -I../../gel/include \
            -c -o test2.o test2.c

            m6811-elf-gcc -m68hcs12 -mshort -I../include/ \
            -I../../gel/include/asm-m68hcs12/arch-dragon12 -I../../gel/include \
            -c -o test2asm.o test2asm.S

            m6811-elf-as -m68hcs12 -mshort -o vectors.o vectors.s

            m6811-elf-gcc -m68hcs12 -mshort -Wl,-T,ldscript-rom.x \
            -L../../gel/config/dragon12-rom -mrelax -o test2.elf test2.o \
            test2asm.o vectors.o ../../gel/lib/libc.a
          • Jefferson Smith
            ... I realized that the example I posted was using a custom ld script (I meant to show how I use the default). This one uses ld option -m m68hc12elfb to link
            Message 5 of 30 , Nov 1, 2006
              --- In gnu-m68hc11@yahoogroups.com, "Jefferson Smith"
              <imajeff84663@...> wrote:
              > This is my example commandlines:
              >
              > m6811-elf-gcc -m68hcs12 -mshort -Wall -Wmissing-prototypes -g -Os \
              > -fomit-frame-pointer -msoft-reg-count=1 -I../include/ \
              > -I../../gel/include/asm-m68hcs12/arch-dragon12 -I../../gel/include \
              > -c -o test2.o test2.c
              >
              > m6811-elf-gcc -m68hcs12 -mshort -I../include/ \
              > -I../../gel/include/asm-m68hcs12/arch-dragon12 -I../../gel/include \
              > -c -o test2asm.o test2asm.S
              >
              > m6811-elf-as -m68hcs12 -mshort -o vectors.o vectors.s
              >
              > m6811-elf-gcc -m68hcs12 -mshort -Wl,-T,ldscript-rom.x \
              > -L../../gel/config/dragon12-rom -mrelax -o test2.elf test2.o \
              > test2asm.o vectors.o ../../gel/lib/libc.a
              >

              I realized that the example I posted was using a custom ld script (I
              meant to show how I use the default). This one uses ld option "-m
              m68hc12elfb" to link with default script:

              m6811-elf-gcc -m68hc12 -g -Os -mshort -Wl,-m,m68hc12elfb -o test.elf
              test.c

              I finally got my map to generate far enough (using ld commanline with
              -M) to show that .softregs was collected in the .bss output section:

              ====== Part of Map =======
              .bss 0x00001304 0xa
              0x00001304 __bss_start = .
              *(.softregs)
              .softregs 0x00001304 0x6
              /usr/lib/gcc-lib/m6811-elf/3.3.6-m68hc1x-20060122/m68hc12/mshort/libgcc.a(_regs_min.o)
              0x00001304 _.tmp
              0x00001308 _.xy
              0x00001306 _.z
              .softregs 0x0000130a 0x2
              /usr/lib/gcc-lib/m6811-elf/3.3.6-m68hc1x-20060122/m68hc12/mshort/libgcc.a(_regs_frame.o)
              0x0000130a _.frame
              *(.sbss)
              *(.scommon)
              *(.dynbss)
              *(.bss)
              .bss 0x0000130c 0x2 test2asm.o
              *(.bss.*)
              *(.gnu.linkonce.b.*)
              *(COMMON)
              0x0000130e PROVIDE (_end, .)
              0x0000000a __bss_size = SIZEOF (.bss)
              0x0000000a PROVIDE (__bss_size, SIZEOF
              (.bss))
            • Donald E Haselwood
              ... Yes I wrote my own, or rather hacked the stuff I could find. ... (I think we had this interchange some time ago. I never had any problem with crashes so I
              Message 6 of 30 , Nov 1, 2006
                On Wednesday 01 November 2006 17:51, Jefferson Smith wrote:
                > --- In gnu-m68hc11@yahoogroups.com, Donald E Haselwood
                >
                > <dhaselwood@...> wrote:
                > > Ahah! Very interesting. The following .map shows that when
                > > the .ld file contains a memory configuration for .page0 the
                > > soft regs are put there, however if the .page0 line is
                > > removed, the soft regs go into .bss.
                >
                > It sounds interresting, although I didn't see in your .map where
                > something is being placed in .page0
                >
                > Are you sure you're using the default link an didn't write your own
                > stuff? Sounds like you have a custom ".ld" file, which is of course
                > not what I'm talking about. I look in "lib/ldscripts/" of GCC
                > installation to find the default ones. What are the commandlines that
                > generated this output?
                Yes I wrote my own, or rather hacked the stuff I could find.

                >
                > How did you generate a map file? Mine crashes when I use "-Map", and
                > so does everyone elses I've heard of. Maybe you are using a release
                > version older than 2.9 (m68hc1x release, not gcc release)?
                >
                (I think we had this interchange some time ago. I never had any problem with
                crashes so I never gave the -Map a second thought!)
                Here are the versions for gcc and m6811-elf-gcc--

                deh@P4-1:/usr/m6811-elf/bin> gcc --version
                gcc (GCC) 3.3.5 20050117 (prerelease) (SUSE Linux)
                Copyright (C) 2003 Free Software Foundation, Inc.
                This is free software; see the source for copying conditions. There is NO
                warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

                deh@P4-1:/usr/m6811-elf/bin> m6811-elf-gcc --version
                m6811-elf-gcc (GCC) 3.3.5-m68hc1x-20050515
                Copyright (C) 2003 Free Software Foundation, Inc.
                This is free software; see the source for copying conditions. There is NO
                warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


                Here are the snips showing where the soft regs were put; it doesn't say
                ".page0" but the address is in page0. With the .page 0 removed from the mem
                config it goes in to .bss address space similar to what you are getting.

                vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv .softregs      
                0x00000002        0xc
                 .softregs      0x00000002      
                0x6 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
                                0x00000002                _.tmp
                                0x00000006                _.xy
                                0x00000004                _.z
                 .softregs      0x00000008        
                0x2 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
                                0x00000008                _.frame
                 .softregs      0x0000000a        
                0x4 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_d1_2.o)
                                0x0000000a                _.d1
                                0x0000000c                _.d2
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

                vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv .softregs      
                0x00000771        0xc
                 .softregs      0x00000771      
                0x6 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
                                0x00000771                _.tmp
                                0x00000775                _.xy
                                0x00000773                _.z
                 .softregs      0x00000777        
                0x2 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
                                0x00000777                _.frame
                 .softregs      0x00000779        
                0x4 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_d1_2.o)
                                0x00000779                _.d1
                                0x0000077b                _.d2
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

                Here is my .ld file (with .page0). It is something I hacked some time back.

                #################################################
                OUTPUT_FORMAT("elf32-m68hc12", "elf32-m68hc12", "elf32-m68hc12")
                OUTPUT_ARCH(m68hc12)

                MEMORY
                {
                PAGE0 (wx) : org = 0x0000, len = 0x0100
                RAM (wx) : org = 0x0100, len = 0x2000-0x0100
                FIXEDLO (wx) : org = 0x4000, len = 0x4000
                PAGED (wx) : org = 0x8000, len = 0x4000
                FIXEDHI (wx) : org = 0xc000, len = 0x3000
                BOOT (wx) : org = 0xf000, len = 0x1000
                }

                PROVIDE(_stack = 0x2000);

                SECTIONS
                {
                .page0 :
                {
                *(.comm)
                } >PAGE0

                .ram :
                {
                PROVIDE (_start_of_ram = .);
                PROVIDE (_start_of_bss = .);
                _start_of_bss = .;
                PROVIDE (__bss_start = .);
                *(.bss)
                _end_of_bss = .;
                PROVIDE (_end_of_bss = .);
                _end_of_ram = __data_section_size + .;
                PROVIDE (_end_of_ram = .);
                } >RAM
                PROVIDE (__bss_size = _end_of_bss - _start_of_bss );


                .fixedlo :
                {
                __data_image = .;
                PROVIDE( __data_image = . );
                } >FIXEDLO

                .paged :
                {
                } >PAGED

                .fixedhi :
                {
                PROVIDE(_start_of_rom = .);
                *(.install0)
                *(.text)
                *(.rodata.str1.1)
                *(.rodata)
                _end_of_rom1 = .;
                PROVIDE( _start_of_init = . );
                } >FIXEDHI

                .data :
                {
                __data_section_start = .;
                PROVIDE ( __data_section_start = .);
                *(.data)
                __data_image_end = .;
                PROVIDE( __data_image_end = . );
                _end_data = .;
                } >RAM AT>FIXEDLO

                __data_section_size = __data_image_end - __data_section_start;
                PROVIDE ( __data_section_size = __data_image_end - __data_section_start );

                .boot :
                {
                *(.boot)
                . = 0xff00 - 0xf000;
                *(.special1)
                . = 0xff80 - 0xf000;
                *(.hardvectors)
                } >BOOT

                }
                ############################################################

                And here is the make file used with it--

                ############################################################
                # Program name
                NAME=TestE128xmt
                # Board type
                BRD=E128xmt.ld
                # Current directory is source directory
                SRCDIR=.
                # Directory with SCI routines
                SCI=/home/deh/hc12/StartE128/sci
                # Directory with subroutines
                TIM=$(SRCDIR)/timer
                ATD=$(SRCDIR)/ATD
                NBYT=/home/deh/hc12/nbyt

                BINDIR=/usr/m6811-elf/bin

                LIBDIR=/usr/m6811-elf/lib/m68hc12/mshort
                LIBGELDIR=/home/deh/hc12/gel/gnu_hc12/gel-hc1x-1.6.1/lib
                LIBOLDGCC=/usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort
                INCLUDE=/usr/m6811-elf/include

                INSTALL=cp
                #DEVC_PREFIX=m6811-elf-
                DEVC_PREFIX=
                CC=$(BINDIR)/$(DEVC_PREFIX)gcc
                AS=$(BINDIR)/$(DEVC_PREFIX)as
                AR=$(BINDIR)/$(DEVC_PREFIX)ar
                LD=$(BINDIR)/$(DEVC_PREFIX)ld
                OC=$(BINDIR)/$(DEVC_PREFIX)objcopy
                OD=$(BINDIR)/$(DEVC_PREFIX)objdump
                RD=$(BINDIR)/$(DEVC_PREFIX)redir
                CXX=$(BINDIR)/$(DEVC_PREFIX)gcc
                SIZE=$(BINDIR)/$(DEVC_PREFIX)size
                GNATBIND=$(BINDIR)/$(DEVC_PREFIX)gnatbind

                # BD is file with board loader script
                BD=$(SRCDIR)/$(BRD)

                CFLAGS= -Os -m68hcs12 -mshort -fno-ident -fno-common -mauto-incdec
                -msoft-reg-count=8
                AFLAGS= -m68hcs12
                LFLAGS= -Map $(NAME).map
                OCFLAGS= -O srec

                #ARCHIVES= -L$(LIBDIR) -lc -lm -lbcc
                ARCHIVES=-L$(LIBOLDGCC) -lgcc -L$(LIBGELDIR) -lc -lbsp -L$(LIBOLDGCC) -lgcc
                #ARCHIVES=
                #-L$(LIBDIR) -lc

                CRT=crt0.o
                OBJS= $(CRT) $(NAME).o StartE128.o SPIpll.o $(SCI)/scix1.o $(SCI)/scixc.o
                $(SCI)/scix_baud.o \
                $(TIM)/PortT.o $(TIM)/MorseCode.o $(ATD)/ATD1.o $(ATD)/ATDmix.o
                $(ATD)/ATDcalibration.o \
                $(ATD)/ATDscale.o itoa.o



                .c.o:
                $(CC) $(CFLAGS) -S -o $@ $<
                $(CC) $(CFLAGS) -c -o $@ $<
                .s.o:
                $(AS) $(AFLAGS) -a=$*.lst -o $@ $<

                all:$(OBJS)
                $(LD) -T$(BD) $(LFLAGS) -o$(NAME).obj $(OBJS) $(ARCHIVES)
                $(OC) $(OCFLAGS) $(NAME).obj $(NAME).s19

                clean:
                rm $(NAME).o
                rm $(NAME).map
                rm $(NAME).lst
                rm $(NAME).s19
                rm $(NAME).s2

                .PHONY: clean

                ############################################################
              • Jefferson Smith
                ... wrote: [custom linker script?] ... is NO ... PURPOSE. ... is NO ... PURPOSE. It seems 20050117 is somewhere before r3.0, but the gcc in
                Message 7 of 30 , Nov 2, 2006
                  --- In gnu-m68hc11@yahoogroups.com, Donald E Haselwood
                  <dhaselwood@...> wrote:
                  [custom linker script?]
                  > Yes I wrote my own, or rather hacked the stuff I could find.


                  > (I think we had this interchange some time ago. I never had
                  > any problem with
                  > crashes so I never gave the -Map a second thought!)

                  > Here are the versions for gcc and m6811-elf-gcc--
                  >
                  > deh@P4-1:/usr/m6811-elf/bin> gcc --version
                  > gcc (GCC) 3.3.5 20050117 (prerelease) (SUSE Linux)
                  > Copyright (C) 2003 Free Software Foundation, Inc.
                  > This is free software; see the source for copying conditions. There
                  is NO
                  > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
                  PURPOSE.
                  >
                  > deh@P4-1:/usr/m6811-elf/bin> m6811-elf-gcc --version
                  > m6811-elf-gcc (GCC) 3.3.5-m68hc1x-20050515
                  > Copyright (C) 2003 Free Software Foundation, Inc.
                  > This is free software; see the source for copying conditions. There
                  is NO
                  > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
                  PURPOSE.

                  It seems "20050117" is somewhere before r3.0, but the gcc in 3.0 is
                  listed as "20050130".
                  The other "20050515" is r3.0.1.
                  Are you trying to be confusing--why two different versions of gcc? You
                  must not be using a Unix-like OS because your gcc would be for local
                  system, not a cross-compiler.

                  > Here are the snips showing where the soft regs were put; it doesn't say
                  > ".page0" but the address is in page0. With the .page 0 removed from
                  > the mem config it goes in to .bss address space similar to what you are
                  > getting.
                  ...
                  Well that time you listed two clips, both placing the soft registers
                  in ".softregs". That is interresting because I thought you were saying
                  that one of them would always go into oblivion (specify no section,
                  defaulting to the same address as .page0).

                  It is interresting that what you've showed me says that you are _not_
                  placing anything in ".page0". The .softregs is not being linked to any
                  output section, as you've said, and therefore defaults to an absolute
                  address which of course starts at 0. The fact that .page0 is
                  deliberately linked at 0 is irrelevant, except that placing data in
                  .page0 would have overlapped the .softregs, and hopefully cause a link
                  error (but maybe would not, allowing unknown results at execution).

                  So your error is in your linker script. It needs to place .softregs
                  somewhere. Your script apparently needs "*(.softregs)" before or after
                  the "*(.bss)" in the .ram section.
                  This is the default location:
                  === m68hc12elfb.x clip ===
                  /* Relocation for some bss and data sections. */
                  .bss :
                  {
                  __bss_start = .;
                  *(.softregs)
                  *(.sbss)
                  *(.scommon)
                  *(.dynbss)
                  *(.bss)
                  *(.bss.*)
                  *(.gnu.linkonce.b.*)
                  *(COMMON)
                  PROVIDE (_end = .);
                  } > data
                  =============

                  > Here is my .ld file (with .page0). It is something I hacked some
                  time back.
                  >
                  > #################################################
                  > OUTPUT_FORMAT("elf32-m68hc12", "elf32-m68hc12", "elf32-m68hc12")
                  > OUTPUT_ARCH(m68hc12)
                  >
                  > MEMORY
                  > {
                  > PAGE0 (wx) : org = 0x0000, len = 0x0100
                  > RAM (wx) : org = 0x0100, len = 0x2000-0x0100
                  > FIXEDLO (wx) : org = 0x4000, len = 0x4000
                  > PAGED (wx) : org = 0x8000, len = 0x4000
                  > FIXEDHI (wx) : org = 0xc000, len = 0x3000
                  > BOOT (wx) : org = 0xf000, len = 0x1000
                  > }

                  Note there is no page0 memory region defined here, only "PAGE0". Out
                  of curiosity, why are you changing *everything*, anyway? What's wrong
                  with the hard work that Stephane provided, which doesn't have the
                  problem with softregs? All I had to do with it is add .bank0,
                  .bank1,...(only if I need >48K Flash). Sure I suppose there might be
                  some reason you might need all different names. But you don't know if
                  there's some benefit by leaving the "page0" memory region alone as per
                  documentation.
                • Jefferson Smith
                  ... I admit that was a silly conclusion from me, since your command prompt indicates you are not in MS Windows (unless maybe a cygwin shell). It s just that
                  Message 8 of 30 , Nov 2, 2006
                    --- In gnu-m68hc11@yahoogroups.com, "Jefferson Smith"
                    <imajeff84663@...> wrote:
                    > You
                    > must not be using a Unix-like OS because your gcc would be for local
                    > system, not a cross-compiler.

                    I admit that was a silly conclusion from me, since your command prompt
                    indicates you are not in "MS Windows" (unless maybe a cygwin shell).

                    It's just that as a Linux user I have ignored "/usr/m6811-elf/bin"
                    where the names have no prefix. They are only used internally. The
                    PATH should only use "/usr/bin/m6811-elf-gcc" etc. because If I call
                    for "gcc" on the commandline, I'm trying to compile an application
                    with my OS, not the cross compiler (but perhaps you knew that). I'm
                    still curious why you have mixed versions, though. Probably not safe.

                    Heh, I just remembered that this was not the original topic of this
                    thread. I wonder how the original project is going.
                  • Donald E Haselwood
                    ... Those clips were the same as the earlier post that showed the entire map. ... From my experimenting it looks like softregs are placed according to the .ld
                    Message 9 of 30 , Nov 2, 2006
                      On Thursday 02 November 2006 10:53, Jefferson Smith wrote:
                      >
                      > ...
                      > Well that time you listed two clips, both placing the soft registers
                      > in ".softregs".
                      Those clips were the same as the earlier post that showed the entire map.

                      > That is interresting because I thought you were saying
                      > that one of them would always go into oblivion (specify no section,
                      > defaulting to the same address as .page0).
                      From my experimenting it looks like softregs are placed according to the .ld
                      file--
                      1) no .page0;no .softregs: place in space after .data section
                      2) yes .page0;no .softregs: place in .page0 space
                      3) yes .page0;yes .softregs: place in .softregs space

                      >
                      > It is interresting that what you've showed me says that you are _not_
                      > placing anything in ".page0". The .softregs is not being linked to any
                      > output section, as you've said, and therefore defaults to an absolute
                      > address which of course starts at 0. The fact that .page0 is
                      > deliberately linked at 0 is irrelevant, except that placing data in
                      > .page0 would have overlapped the .softregs, and hopefully cause a link
                      > error (but maybe would not, allowing unknown results at execution).
                      >
                      If I place data in .page0 and do not specify a .softregs the softregs are
                      place after the .page0 data. There is no conflict.

                      Yes this is a bit OT, but quite useful for understanding how the beast
                      behaves.

                      Regards,

                      Donald E Haselwood
                    • Jefferson Smith
                      ... I think it important to distinguish between place in the page0 region and place starting at 0 . You are saying that it is actually placing it in the
                      Message 10 of 30 , Nov 2, 2006
                        --- In gnu-m68hc11@yahoogroups.com, Donald E Haselwood
                        <dhaselwood@...> wrote:
                        > If I place data in .page0 and do not specify a .softregs the
                        > softregs are place after the .page0 data. There is no conflict.

                        I think it important to distinguish between "place in the page0
                        region" and "place starting at 0". You are saying that it is actually
                        placing it in the page0 region. How are you putting data in .page0 to
                        test this, or at least could you post the output from that?

                        Another test would be to move your "page0" region (maybe to 0x400),
                        and see if the excluded .softregs follows it, or stays at zero. What
                        it might tell me is that rather than dropping the extra stuff at 0 as
                        I assumed, could it be dropping it in the first region that is defined?
                      • Donald E Haselwood
                        ... To test the data in .page0 the following 3 lines were inserted in the beginning of on .s subroutine-- #################### .global page0test .section
                        Message 11 of 30 , Nov 2, 2006
                          On Thursday 02 November 2006 19:08, Jefferson Smith wrote:
                          > --- In gnu-m68hc11@yahoogroups.com, Donald E Haselwood
                          >
                          > <dhaselwood@...> wrote:
                          > > If I place data in .page0 and do not specify a .softregs the
                          > > softregs are place after the .page0 data. There is no conflict.
                          >
                          > I think it important to distinguish between "place in the page0
                          > region" and "place starting at 0". You are saying that it is actually
                          > placing it in the page0 region. How are you putting data in .page0 to
                          > test this, or at least could you post the output from that?
                          >
                          > Another test would be to move your "page0" region (maybe to 0x400),
                          > and see if the excluded .softregs follows it, or stays at zero. What
                          > it might tell me is that rather than dropping the extra stuff at 0 as
                          > I assumed, could it be dropping it in the first region that is defined?

                          To test the data in .page0 the following 3 lines were inserted in the
                          beginning of on .s subroutine--
                          ####################
                          .global page0test
                          .section .page0
                          page0test: .space 16
                          ####################
                          This data shows up in the .map as placed in .page0.

                          Furthermore, .page 0 was moved to 0x3000. There is no '*(.softregs)'
                          statement in the .ld file, so the placement of the softregs is not explicitly
                          specified.

                          It also shows that softregs placement does not default to the lowest memory
                          address.

                          As another test I swapped the order of the PAGE0 and RAM statements in the .ld
                          file. The softregs then showed up following the .data in .ram. This
                          supports your assumption that lacking a specification the softregs are placed
                          in the first region defined, and follows the .data (et al.) assignments.

                          Here is a clip from the .map output--
                          ###########################
                          Memory Configuration

                          Name Origin Length Attributes
                          PAGE0 0x00003000 0x00000100 xw
                          RAM 0x00000000 0x00002000 xw
                          FIXEDLO 0x00004000 0x00004000 xw
                          PAGED 0x00008000 0x00004000 xw
                          FIXEDHI 0x0000c000 0x00003000 xw
                          BOOT 0x0000f000 0x00001000 xw
                          *default* 0x00000000 0xffffffff

                          Linker script and memory map

                          0x00002000 PROVIDE (_stack, 0x2000)

                          .page0 0x00003000 0x10
                          *(.comm)
                          .page0 0x00003000 0x10 ./timer/PortT.o
                          0x00003000 page0test

                          .ram 0x00000000 0x35c
                          ...skip...
                          .bss 0x00003010 0x8
                          COMMON 0x00003010 0x2 crt0.o
                          0x0 (size before relaxing)
                          0x00003010 _impure_ptr
                          COMMON 0x00003012
                          0x6 /home/deh/hc12/gel/gnu_hc12/gel-hc1x-1.6.1/lib/libc.a(findfp.o)
                          0x0 (size before relaxing)
                          0x00003012 __sglue

                          .softregs 0x00003018 0x10
                          .softregs 0x00003018
                          0x6 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
                          0x00003018 _.tmp
                          0x0000301c _.xy
                          0x0000301a _.z
                          .softregs 0x0000301e
                          0x2 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
                          0x0000301e _.frame
                          .softregs 0x00003020
                          0x4 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_d1_2.o)
                          0x00003020 _.d1
                          0x00003022 _.d2
                          .softregs 0x00003024
                          0x4 /usr/lib/gcc-lib/m6811-elf/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_d3_4.o)
                          0x00003026 _.d4
                          0x00003024 _.d3

                          ...and more follows...
                          #########################
                        • oliveira_pedro
                          Hello thanks for the reply an help me! But now i still to have some questions!! ... Yes my concept of hello world is only to make the PH7 ( the led on the
                          Message 12 of 30 , Nov 3, 2006
                            Hello
                            thanks for the reply an help me!
                            But now i still to have some questions!!
                            > "Hello World" should simply turn an LED on and/or off.
                            Yes my concept of "hello world" is only to make the PH7 ( the led on
                            the board ) blink with some cadence.
                            > Next, I see some mistakes in your "memory.x" (although not the
                            problem you're asking about). The address space of page0 always
                            ranges 0x00 to 0xff (length 256), which needs only 8 bits to
                            address. 'page0' should be nothing more, nothing less. In normal
                            case the linker does not place anything in page0 for HC12/S12.

                            Yes i understand and i correct the problem! It was a dummy mustake!
                            Also i have a dout in memory.x

                            /* Memory definition for a 9S12DG256 program*/
                            MEMORY
                            {
                            page0 (rwx) : ORIGIN = 0x0000, LENGTH = 0x400
                            eeprom (rx) : ORIGIN = 0x400, LENGTH = 0x1000-0x400
                            text (rx) : ORIGIN = 0x4000, LENGTH = 0x4000
                            data : ORIGIN = 0x1000, LENGTH = 0x3E00-0x1000
                            }
                            PROVIDE (_stack = 0x3E00);

                            or

                            text (rx) : ORIGIN = 0x1000, LENGTH = 0x3E00-0x1000
                            data : ORIGIN = 0x4000, LENGTH = 0x4000


                            my stack is 0x3E00 as in manual of the board!

                            The TwinPEEKs Monitor is only to erase the flash and EEPROM and to
                            send to the board the .s19 file.

                            I also got problens when i have a .elf file because it gave problem
                            on vectors.s!!that i don't know how define it! as some flags in the
                            make file!!

                            tks
                          • Jefferson Smith
                            ... actually should be page0 (rwx) : ORIGIN = 0x0000, LENGTH = 0x100 ... So I still don t have these details: - What board is it; did it come with TwinPEEKs? -
                            Message 13 of 30 , Nov 3, 2006
                              --- In gnu-m68hc11@yahoogroups.com, "oliveira_pedro"
                              <oliveira_pedro@...> wrote:
                              > MEMORY
                              > {
                              > page0 (rwx) : ORIGIN = 0x0000, LENGTH = 0x400

                              actually should be
                              page0 (rwx) : ORIGIN = 0x0000, LENGTH = 0x100


                              > I also got problens when i have a .elf file because it gave problem
                              > on vectors.s!!that i don't know how define it! as some flags in the
                              > make file!!

                              So I still don't have these details:

                              - What board is it; did it come with TwinPEEKs?
                              - What is the error(s) you are getting (copy and paste)
                              - What is your specific source code? You have only posted the
                              memory.x, but hopefully you could post the example that causes the error.
                            • oliveira_pedro
                              ... The board is an CardS12 with MCU MC9S12DG256 bought in Elektronik Laden http://elmicro.com/en/cards12.php and it already it came with TwinPEEKs Monitor.
                              Message 14 of 30 , Nov 6, 2006
                                > - What board is it; did it come with TwinPEEKs?
                                The board is an CardS12 with MCU MC9S12DG256 bought in Elektronik
                                Laden http://elmicro.com/en/cards12.php and it already it came with
                                TwinPEEKs Monitor.
                                > - What is the error(s) you are getting (copy and paste)
                                > - What is your specific source code? You have only posted the
                                > memory.x, but hopefully you could post the example that causes the
                                error.

                                ok,your are right!I gone post the rest of my files! So you can help
                                me more!
                                In memory.x i correct my last error and i add PROVIDE (_io_ports =
                                0x0000); after the stack definition.


                                Vector.S
                                -------------------------------------------------------------------

                                .global _start
                                .section .text

                                ; a default handler, does nothing
                                def:
                                bra def

                                ; Vectors for hardware to call on specific interrupt

                                .section .vectors
                                .globl vectors
                                vectors:
                                .space 6*2 ; xx80-xx8b
                                .word def ; xx8c (PWM_SHUTDOWN)
                                .word def ; xx8e (PTPIF)
                                .word def ; xx90 (CAN4_TX)
                                .word def ; xx92 (CAN4_RX)
                                .word def ; xx94 (CAN4_ERR)
                                .word def ; xx96 (CAN4_WAKE)
                                .word def ; xx98 (CAN3_TX)
                                .word def ; xx9a (CAN3_RX)
                                .word def ; xx9c (CAN3_ERR)
                                .word def ; xx9e (CAN3_WAKE)
                                .word def ; xxa0 (CAN2_TX)
                                .word def ; xxa2 (CAN2_RX)
                                .word def ; xxa4 (CAN2_ERR)
                                .word def ; xxa6 (CAN2_WAKE)
                                .word def ; xxa8 (CAN1_TX)
                                .word def ; xxaa (CAN1_RX)
                                .word def ; xxac (CAN1_ERR)
                                .word def ; xxae (CAN1_WAKE)
                                .word def ; xxb0 (CAN0_TX)
                                .word def ; xxb2 (CAN0_RX)
                                .word def ; xxb4 (CAN0_ERR)
                                .word def ; xxb6 (CAN0_WAKE)
                                .word def ; xxb8 (FLASH)
                                .word def ; xxba (EEPROM)
                                .word def ; xxbc (SPI2)
                                .word def ; xxbe (SPI1)
                                .word def ; xxc0 (IIC)
                                .word def ; xxc2 (BDLC)
                                .word def ; xxc4 (SELFCLK_MODE)
                                .word def ; xxc6 (PLL_LOCK)
                                .word def ; xxc8 (ACCB_OVERFLOW)
                                .word def ; xxca (MCCNT_UNDERFLOW)
                                .word def ; xxcc (PTHIF)
                                .word def ; xxce (PTJIF)
                                .word def ; xxd0 (ATD1)
                                .word def ; xxd2 (ATD0)
                                .word def ; xxd4 (SCI1)
                                .word def ; xxd6 (SCI0)
                                .word def ; xxd8 (SPI0)

                                ;; pulse accumulator
                                .word def ; xxda (ACCA_INPUT)
                                .word def ; xxdc (ACCA_OVERFLOW)

                                .word def ; xxde (TIMER_OVERFLOW)

                                ;; Timer Input/Output Compare
                                .word def ; xxe0 (TC7)
                                .word testSpiInt ; xxe2 (TC6)
                                .word def ; xxe4 (TC5)
                                .word def ; xxe6 (TC4)
                                .word def ; xxe8 (TC3)
                                .word def ; xxea (TC2)
                                .word def ; xxec (TC1)
                                .word def ; xxee (TC0)

                                ;; Common
                                .word def ; xxf0 (RTI)
                                .word def ; xxf2 (IRQ)
                                .word def ; xxf4 (XIRQ)
                                .word def ; xxf6 (SWI)
                                .word def ; xxf8 (ILLEGAL_OPCODE_VECTOR)
                                .word _start ; xxfa (COP_FAIL)
                                .word _start ; xxfc (COP_CLOCK)
                                .word _start ; xxfe (RESET)

                                --------------------------------------------------------------------
                                In this file i think i have a lot of problems because the TwinPEEKs
                                Monitor. In windows using ICC12 if i want to define the interrupt
                                vectors to use i make in this way, example for a jump:

                                ldaa #$06 ; JMP opcode to
                                staa $3FEE ; IRQ pseudo vector
                                ldd #isrFunc ; ISR address to
                                std $3FEF ; IRQ pseudo vector + 1

                                or only put after the main()
                                // install IRQ pseudo vector in RAM
                                // (if running with TwinPEEKs monitor)
                                *((unsigned char *)0x3fee) = 0x06; // JMP opcode
                                *((void (**)(void))0x3fef) = isrFunc;

                                As you can see in
                                http://alunos.deec.uc.pt/~a501000634/temp/cards12v100_manual.pdf
                                That is my temporarely web page! :)


                                My ports.h is from 9s12dp256 but the diference is very smaller i
                                hope was not a problem!!
                                ------------------------------------------------------------------
                                /* HC12 i/o register locations (9s12dp256) 3.7.4 roa
                                from the original assembly language version that came with the
                                dragon board */

                                #define porta 0 /* port a = address lines a8 - a15 */
                                #define portb 1 /* port b = address lines a0 - a7 */
                                #define ddra 2 /* port a direction register */
                                #define ddrb 3 /* port a direction register */

                                #define porte 8 /* port e = mode,irqandcontrolsignals */
                                #define ddre 9 /* port e direction register */
                                #define pear 0xa /* port e assignments */
                                #define mode 0xb /* mode register */
                                #define pucr 0xc /* port pull-up control register */
                                #define rdriv 0xd /* port reduced drive control register
                                */
                                #define ebictl 0xe /* e stretch control */

                                #define initrm 0x10 /* ram location register */
                                #define initrg 0x11 /* register location register */
                                #define initee 0x12 /* eeprom location register */
                                #define misc 0x13 /* miscellaneous mapping control */
                                #define mtst0 0x14 /* reserved */
                                #define itcr 0x15 /* interrupt test control register */
                                #define itest 0x16 /* interrupt test register */
                                #define mtst1 0x17 /* reserved */

                                #define partidh 0x1a /* part id high */
                                #define partidl 0x1b /* part id low */
                                #define memsiz0 0x1c /* memory size */
                                #define memsiz1 0x1d /* memory size */
                                #define intcr 0x1e /* interrupt control register */
                                #define hprio 0x1f /* high priority reg */

                                #define bkpct0 0x28 /* break control register */
                                #define bkpct1 0x29 /* break control register */
                                #define bkp0x 0x2a /* break 0 index register */
                                #define bkp0h 0x2b /* break 0 pointer high */
                                #define brp0l 0x2c /* break 0 pointer low */
                                #define bkp1x 0x2d /* break 1 index register */
                                #define bkp1h 0x2e /* break 1 pointer high */
                                #define brp1l 0x2f /* break 1 pointer low */
                                #define ppage 0x30 /* program page register */

                                #define portk 0x32 /* port k data */
                                #define ddrk 0x33 /* port k direction */
                                #define synr 0x34 /* synthesizer / multiplier register
                                */
                                #define refdv 0x35 /* reference divider register */
                                #define ctflg 0x36 /* reserved */
                                #define crgflg 0x37 /* pll flags register */
                                #define crgint 0x38 /* pll interrupt register */
                                #define clksel 0x39 /* clock select register */
                                #define pllctl 0x3a /* pll control register */
                                #define rtictl 0x3b /* real time interrupt control */
                                #define copctl 0x3c /* watchdog control */
                                #define forbyp 0x3d /* */
                                #define ctctl 0x3e /* */
                                #define armcop 0x3f /* cop reset register */

                                #define tios 0x40 /* timer input/output select */
                                #define cforc 0x41 /* timer compare force */
                                #define oc7m 0x42 /* timer output compare 7 mask */
                                #define oc7d 0x43 /* timer output compare 7 data */
                                #define tcnt 0x44 /* timer counter register hi */
                                #define tcntl 0x45 /* timer counter register lo */
                                #define tscr 0x46 /* timer system control register */
                                #define ttov 0x47 /* reserved */
                                #define tctl1 0x48 /* timer control register 1 */
                                #define tctl2 0x49 /* timer control register 2 */
                                #define tctl3 0x4a /* timer control register 3 */
                                #define tctl4 0x4b /* timer control register 4 */
                                #define tmsk1 0x4c /* timer interrupt mask 1 */
                                #define tmsk2 0x4d /* timer interrupt mask 2 */
                                #define tflg1 0x4e /* timer flags 1 */
                                #define tflg2 0x4f /* timer flags 2 */
                                #define tc0 0x50 /* timer capture/compare register 0 */
                                #define tc1 0x52 /* timer capture/compare register 1 */
                                #define tc2 0x54 /* timer capture/compare register 2 */
                                #define tc3 0x56 /* timer capture/compare register 3 */
                                #define tc4 0x58 /* timer capture/compare register 4 */
                                #define tc5 0x5a /* timer capture/compare register 5 */
                                #define tc6 0x5c /* timer capture/compare register 6 */
                                #define tc7 0x5e /* timer capture/compare register 7 */
                                #define pactl 0x60 /* pulse accumulator controls */
                                #define paflg 0x61 /* pulse accumulator flags */
                                #define pacn3 0x62 /* pulse accumulator counter 3 */
                                #define pacn2 0x63 /* pulse accumulator counter 2 */
                                #define pacn1 0x64 /* pulse accumulator counter 1 */
                                #define pacn0 0x65 /* pulse accumulator counter 0 */
                                #define mcctl 0x66 /* modulus down conunter control */
                                #define mcflg 0x67 /* down counter flags */
                                #define icpar 0x68 /* input pulse accumulator control */
                                #define dlyct 0x69 /* delay count to down counter */
                                #define icovw 0x6a /* input control overwrite register */
                                #define icsys 0x6b /* input control system control */

                                #define timtst 0x6d /* timer test register */

                                #define pbctl 0x70 /* pulse accumulator b control */
                                #define pbflg 0x71 /* pulse accumulator b flags */
                                #define pa3h 0x72 /* pulse accumulator holding register
                                3 */
                                #define pa2h 0x73 /* pulse accumulator holding register
                                2 */
                                #define pa1h 0x74 /* pulse accumulator holding register
                                1 */
                                #define pa0h 0x75 /* pulse accumulator holding register
                                0 */
                                #define mccnt 0x76 /* modulus down counter register */
                                #define mccntl 0x77 /* low byte */
                                #define tcoh 0x78 /* capture 0 holding register */
                                #define tc1h 0x7a /* capture 1 holding register */
                                #define tc2h 0x7c /* capture 2 holding register */
                                #define tc3h 0x7e /* capture 3 holding register */

                                #define atd0ctl0 0x80 /* adc control 0 (reserved) */
                                #define atd0ctl1 0x81 /* adc control 1 (reserved) */
                                #define atd0ctl2 0x82 /* adc control 2 */
                                #define atd0ctl3 0x83 /* adc control 3 */
                                #define atd0ctl4 0x84 /* adc control 4 */
                                #define atd0ctl5 0x85 /* adc control 5 */
                                #define atd0stat 0x86 /* adc status register hi */
                                #define atd0statl 0x87 /* adc status register lo */
                                #define atd0test 0x88 /* adc test (reserved) */
                                #define atd0testl 0x89 /* */
                                #define atd0dien 0x8d /* */

                                #define portad0 0x8f /* port adc = input only */
                                #define adr00h 0x90 /* adc result 0 register */
                                #define adr01h 0x92 /* adc result 1 register */
                                #define adr02h 0x94 /* adc result 2 register */
                                #define adr03h 0x96 /* adc result 3 register */
                                #define adr04h 0x98 /* adc result 4 register */
                                #define adr05h 0x9a /* adc result 5 register */
                                #define adr06h 0x9c /* adc result 6 register */
                                #define adr07h 0x9e /* adc result 7 register */

                                #define pwme 0xa0 /* pwm enable */
                                #define pwmpol 0xa1 /* pwm polarity */
                                #define pwmclk 0xa2 /* pwm clock select register */
                                #define pwmprclk 0xa3 /* pwm prescale clock select register
                                */
                                #define pwmcae 0xa4 /* pwm center align select register */
                                #define pwmctl 0xa5 /* pwm control register */
                                #define pwmtst 0xa6 /* reserved */
                                #define pwmprsc 0xa7 /* reserved */
                                #define pwmscla 0xa8 /* pwm scale a */
                                #define pwmsclb 0xa9 /* pwm scale b */
                                #define pwmscnta 0xaa /* reserved */
                                #define pwmscntb 0xab /* reserved */
                                #define pwmcnt0 0xac /* pwm channel 0 counter */
                                #define pwmcnt1 0xad /* pwm channel 1 counter */
                                #define pwmcnt2 0xae /* pwm channel 2 counter */
                                #define pwmcnt3 0xaf /* pwm channel 3 counter */
                                #define pwmcnt4 0xb0 /* pwm channel 4 counter */
                                #define pwmcnt5 0xb1 /* pwm channel 5 counter */
                                #define pwmcnt6 0xb2 /* pwm channel 6 counter */
                                #define pwmcnt7 0xb3 /* pwm channel 7 counter */
                                #define pwmper0 0xb4 /* pwm channel 0 period */
                                #define pwmper1 0xb5 /* pwm channel 1 period */
                                #define pwmper2 0xb6 /* pwm channel 2 period */
                                #define pwmper3 0xb7 /* pwm channel 3 period */
                                #define pwmper4 0xb8 /* pwm channel 4 period */
                                #define pwmper5 0xb9 /* pwm channel 5 period */
                                #define pwmper6 0xba /* pwm channel 6 period */
                                #define pwmper7 0xbb /* pwm channel 7 period */
                                #define pwmdty0 0xbc /* pwm channel 0 duty cycle */
                                #define pwmdty1 0xbd /* pwm channel 1 duty cycle */
                                #define pwmdty2 0xbe /* pwm channel 2 duty cycle */
                                #define pwmdty3 0xbf /* pwm channel 3 duty cycle */
                                #define pwmdty4 0xc0 /* pwm channel 0 duty cycle */
                                #define pwmdty5 0xc1 /* pwm channel 1 duty cycle */
                                #define pwmdty6 0xc2 /* pwm channel 2 duty cycle */
                                #define pwmdty7 0xc3 /* pwm channel 3 duty cycle */
                                #define pwmsdn 0xc4 /* pwm shutdown register */

                                #define sc0bdh 0xc8 /* sci 0 baud reg hi byte */
                                #define sc0bdl 0xc9 /* sci 0 baud reg lo byte */
                                #define sc0cr1 0xca /* sci 0 control1 reg */
                                #define sc0cr2 0xcb /* sci 0 control2 reg */
                                #define sc0sr1 0xcc /* sci 0 status reg 1 */
                                #define sc0sr2 0xcd /* sci 0 status reg 2 */
                                #define sc0drh 0xce /* sci 0 data reg hi */
                                #define sc0drl 0xcf /* sci 0 data reg lo */
                                #define sc1bdh 0xd0 /* sci 1 baud reg hi byte */
                                #define sc1bdl 0xd1 /* sci 1 baud reg lo byte */
                                #define sc1cr1 0xd2 /* sci 1 control1 reg */
                                #define sc1cr2 0xd3 /* sci 1 control2 reg */
                                #define sc1sr1 0xd4 /* sci 1 status reg 1 */
                                #define sc1sr2 0xd5 /* sci 1 status reg 2 */
                                #define sc1drh 0xd6 /* sci 1 data reg hi */
                                #define sc1drl 0xd7 /* sci 1 data reg lo */
                                #define spi0cr1 0xd8 /* spi 0 control1 reg */
                                #define spi0cr2 0xd9 /* spi 0 control2 reg */
                                #define spi0br 0xda /* spi 0 baud reg */
                                #define spi0sr 0xdb /* spi 0 status reg hi */
                                #define sp0dr 0xdd /* spi 0 data reg */

                                #define ibad 0xe0 /* i2c bus address register */
                                #define ibfd 0xe1 /* i2c bus frequency divider */
                                #define ibcr 0xe2 /* i2c bus control register */
                                #define ibsr 0xe3 /* i2c bus status register */
                                #define ibdr 0xe4 /* i2c bus message data register */
                                #define dlcbcr1 0xe8 /* bdlc control regsiter 1 */
                                #define dlcbsvr 0xe9 /* bdlc state vector register */
                                #define dlcbcr2 0xea /* bdlc control register 2 */
                                #define dlcbdr 0xeb /* bdlc data register */
                                #define dlcbard 0xec /* bdlc analog delay register */
                                #define dlcbrsr 0xed /* bdlc rate select register */
                                #define dlcscr 0xee /* bdlc control register */
                                #define dlcbstat 0xef /* bdlc status register */
                                #define spi1cr1 0xf0 /* spi 1 control1 reg */
                                #define spi1cr2 0xf1 /* spi 1 control2 reg */
                                #define spi1br 0xf2 /* spi 1 baud reg */
                                #define spi1sr 0xf3 /* spi 1 status reg hi */
                                #define sp1dr 0xf5 /* spi 1 data reg */
                                #define spi2cr1 0xf8 /* spi 2 control1 reg */
                                #define spi2cr2 0xf9 /* spi 2 control2 reg */
                                #define spi2br 0xfa /* spi 2 baud reg */
                                #define spi2sr 0xfb /* spi 2 status reg hi */
                                #define sp2dr 0xfd /* spi 2 data reg */

                                #define fclkdiv 0x100 /* flash clock divider */
                                #define fsec 0x101 /* flash security register */

                                #define fcnfg 0x103 /* flash configuration register */
                                #define fprot 0x104 /* flash protection register */
                                #define fstat 0x105 /* flash status register */
                                #define fcmd 0x106 /* flash command register */

                                #define eclkdiv 0x110 /* eeprom clock divider */
                                #define ecnfg 0x113 /* eeprom configuration register */
                                #define eprot 0x114 /* eeprom protection register */
                                #define estat 0x115 /* eeprom status register */
                                #define ecmd 0x116 /* eeprom command register */

                                #define atd1ctl0 0x120 /* adc1 control 0 (reserved) */
                                #define atd1ctl1 0x121 /* adc1 control 1 (reserved) */
                                #define atd1ctl2 0x122 /* adc1 control 2 */
                                #define atd1ctl3 0x123 /* adc1 control 3 */
                                #define atd1ctl4 0x124 /* adc1 control 4 */
                                #define atd1ctl5 0x125 /* adc1 control 5 */
                                #define atd1stat 0x126 /* adc1 status register hi */
                                #define atd1statl 0x127 /* adc1 status register lo */
                                #define atd1test 0x128 /* adc1 test (reserved) */
                                #define atd1testl 0x129 /* */
                                #define atd1dien 0x12d /* adc1 input enable register */
                                #define portad1 0x12f /* port adc1 = input only */
                                #define adr10h 0x130 /* adc1 result 0 register */
                                #define adr11h 0x132 /* adc1 result 1 register */
                                #define adr12h 0x134 /* adc1 result 2 register */
                                #define adr13h 0x136 /* adc1 result 3 register */
                                #define adr14h 0x138 /* adc1 result 4 register */
                                #define adr15h 0x13a /* adc1 result 5 register */
                                #define adr16h 0x13c /* adc1 result 6 register */
                                #define adr17h 0x13e /* adc1 result 7 register */

                                #define can0ctl0 0x140 /* can0 control register 0 */
                                #define can0ctl1 0x141 /* can0 control register 1 */
                                #define can0btr0 0x142 /* can0 bus timing register 0 */
                                #define can0btr1 0x143 /* can0 bus timing register 1 */
                                #define can0rflg 0x144 /* can0 receiver flags */
                                #define can0rier 0x145 /* can0 receiver interrupt enables */
                                #define can0tflg 0x146 /* can0 transmit flags */
                                #define can0tier 0x147 /* can0 transmit interrupt enables */
                                #define can0tarq 0x148 /* can0 transmit message abort
                                control */
                                #define can0taak 0x149 /* can0 transmit message abort status
                                */
                                #define can0tbel 0x14a /* can0 transmit buffer select */
                                #define can0idac 0x14b /* can0 identfier acceptance control
                                */
                                #define can0rerr 0x14e /* can0 receive error counter */
                                #define can0terr 0x14f /* can0 transmit error counter */
                                #define can0ida0 0x150 /* can0 identifier acceptance
                                register 0 */
                                #define can0ida1 0x151 /* can0 identifier acceptance
                                register 1 */
                                #define can0ida2 0x152 /* can0 identifier acceptance
                                register 2 */
                                #define can0ida3 0x153 /* can0 identifier acceptance
                                register 3 */
                                #define can0idm0 0x154 /* can0 identifier mask register 0 */
                                #define can0idm1 0x155 /* can0 identifier mask register 1 */
                                #define can0idm2 0x156 /* can0 identifier mask register 2 */
                                #define can0idm3 0x157 /* can0 identifier mask register 3 */
                                #define can0ida4 0x158 /* can0 identifier acceptance
                                register 4 */
                                #define can0ida5 0x159 /* can0 identifier acceptance
                                register 5 */
                                #define can0ida6 0x15a /* can0 identifier acceptance
                                register 6 */
                                #define can0ida7 0x15b /* can0 identifier acceptance
                                register 7 */
                                #define can0idm4 0x15c /* can0 identifier mask register 4 */
                                #define can0idm5 0x15d /* can0 identifier mask register 5 */
                                #define can0idm6 0x15e /* can0 identifier mask register 6 */
                                #define can0idm7 0x15f /* can0 identifier mask register 7 */
                                #define can0rxfg 0x160 /* can0 rx foreground buffer thru
                                +$16f */
                                #define can0txfg 0x170 /* can0 tx foreground buffer thru
                                +$17f */

                                #define can1ctl0 0x180 /* can1 control register 0 */
                                #define can1ctl1 0x181 /* can1 control register 1 */
                                #define can1btr0 0x182 /* can1 bus timing register 0 */
                                #define can1btr1 0x183 /* can1 bus timing register 1 */
                                #define can1rflg 0x184 /* can1 receiver flags */
                                #define can1rier 0x185 /* can1 receiver interrupt enables */
                                #define can1tflg 0x186 /* can1 transmit flags */
                                #define can1tier 0x187 /* can1 transmit interrupt enables */
                                #define can1tarq 0x188 /* can1 transmit message abort
                                control */
                                #define can1taak 0x189 /* can1 transmit message abort status
                                */
                                #define can1tbel 0x18a /* can1 transmit buffer select */
                                #define can1idac 0x18b /* can1 identfier acceptance control
                                */
                                #define can1rerr 0x18e /* can1 receive error counter */
                                #define can1terr 0x18f /* can1 transmit error counter */
                                #define can1ida0 0x190 /* can1 identifier acceptance
                                register 0 */
                                #define can1ida1 0x191 /* can1 identifier acceptance
                                register 1 */
                                #define can1ida2 0x192 /* can1 identifier acceptance
                                register 2 */
                                #define can1ida3 0x193 /* can1 identifier acceptance
                                register 3 */
                                #define can1idm0 0x194 /* can1 identifier mask register 0 */
                                #define can1idm1 0x195 /* can1 identifier mask register 1 */
                                #define can1idm2 0x196 /* can1 identifier mask register 2 */
                                #define can1idm3 0x197 /* can1 identifier mask register 3 */
                                #define can1ida4 0x198 /* can1 identifier acceptance
                                register 4 */
                                #define can1ida5 0x199 /* can1 identifier acceptance
                                register 5 */
                                #define can1ida6 0x19a /* can1 identifier acceptance
                                register 6 */
                                #define can1ida7 0x19b /* can1 identifier acceptance
                                register 7 */
                                #define can1idm4 0x19c /* can1 identifier mask register 4 */
                                #define can1idm5 0x19d /* can1 identifier mask register 5 */
                                #define can1idm6 0x19e /* can1 identifier mask register 6 */
                                #define can1idm7 0x19f /* can1 identifier mask register 7 */
                                #define can1rxfg 0x1a0 /* can1 rx foreground buffer thru
                                +$1af */
                                #define can1txfg 0x1b0 /* can1 tx foreground buffer thru
                                +$1bf */

                                #define can2ctl0 0x1c0 /* can2 control register 0 */
                                #define can2ctl1 0x1c1 /* can2 control register 1 */
                                #define can2btr0 0x1c2 /* can2 bus timing register 0 */
                                #define can2btr1 0x1c3 /* can2 bus timing register 1 */
                                #define can2rflg 0x1c4 /* can2 receiver flags */
                                #define can2rier 0x1c5 /* can2 receiver interrupt enables */
                                #define can2tflg 0x1c6 /* can2 transmit flags */
                                #define can2tier 0x1c7 /* can2 transmit interrupt enables */
                                #define can2tarq 0x1c8 /* can2 transmit message abort
                                control */
                                #define can2taak 0x1c9 /* can2 transmit message abort status
                                */
                                #define can2tbel 0x1ca /* can2 transmit buffer select */
                                #define can2idac 0x1cb /* can2 identfier acceptance control
                                */
                                #define can2rerr 0x1ce /* can2 receive error counter */
                                #define can2terr 0x1cf /* can2 transmit error counter */
                                #define can2ida0 0x1d0 /* can2 identifier acceptance
                                register 0 */
                                #define can2ida1 0x1d1 /* can2 identifier acceptance
                                register 1 */
                                #define can2ida2 0x1d2 /* can2 identifier acceptance
                                register 2 */
                                #define can2ida3 0x1d3 /* can2 identifier acceptance
                                register 3 */
                                #define can2idm0 0x1d4 /* can2 identifier mask register 0 */
                                #define can2idm1 0x1d5 /* can2 identifier mask register 1 */
                                #define can2idm2 0x1d6 /* can2 identifier mask register 2 */
                                #define can2idm3 0x1d7 /* can2 identifier mask register 3 */
                                #define can2ida4 0x1d8 /* can2 identifier acceptance
                                register 4 */
                                #define can2ida5 0x1d9 /* can2 identifier acceptance
                                register 5 */
                                #define can2ida6 0x1da /* can2 identifier acceptance
                                register 6 */
                                #define can2ida7 0x1db /* can2 identifier acceptance
                                register 7 */
                                #define can2idm4 0x1dc /* can2 identifier mask register 4 */
                                #define can2idm5 0x1dd /* can2 identifier mask register 5 */
                                #define can2idm6 0x1de /* can2 identifier mask register 6 */
                                #define can2idm7 0x1df /* can2 identifier mask register 7 */
                                #define can2rxfg 0x1e0 /* can2 rx foreground buffer thru
                                +$1ef */
                                #define can2txfg 0x1f0 /* can2 tx foreground buffer thru
                                +$1ff */

                                #define can3ctl0 0x200 /* can3 control register 0 */
                                #define can3ctl1 0x201 /* can3 control register 1 */
                                #define can3btr0 0x202 /* can3 bus timing register 0 */
                                #define can3btr1 0x203 /* can3 bus timing register 1 */
                                #define can3rflg 0x204 /* can3 receiver flags */
                                #define can3rier 0x205 /* can3 receiver interrupt enables */
                                #define can3tflg 0x206 /* can3 transmit flags */
                                #define can3tier 0x207 /* can3 transmit interrupt enables */
                                #define can3tarq 0x208 /* can3 transmit message abort
                                control */
                                #define can3taak 0x209 /* can3 transmit message abort status
                                */
                                #define can3tbel 0x20a /* can3 transmit buffer select */
                                #define can3idac 0x20b /* can3 identfier acceptance control
                                */
                                #define can3rerr 0x20e /* can3 receive error counter */
                                #define can3terr 0x20f /* can3 transmit error counter */
                                #define can3ida0 0x210 /* can3 identifier acceptance
                                register 0 */
                                #define can3ida1 0x211 /* can3 identifier acceptance
                                register 1 */
                                #define can3ida2 0x212 /* can3 identifier acceptance
                                register 2 */
                                #define can3ida3 0x213 /* can3 identifier acceptance
                                register 3 */
                                #define can3idm0 0x214 /* can3 identifier mask register 0 */
                                #define can3idm1 0x215 /* can3 identifier mask register 1 */
                                #define can3idm2 0x216 /* can3 identifier mask register 2 */
                                #define can3idm3 0x217 /* can3 identifier mask register 3 */
                                #define can3ida4 0x218 /* can3 identifier acceptance
                                register 4 */
                                #define can3ida5 0x219 /* can3 identifier acceptance
                                register 5 */
                                #define can3ida6 0x21a /* can3 identifier acceptance
                                register 6 */
                                #define can3ida7 0x21b /* can3 identifier acceptance
                                register 7 */
                                #define can3idm4 0x21c /* can3 identifier mask register 4 */
                                #define can3idm5 0x21d /* can3 identifier mask register 5 */
                                #define can3idm6 0x21e /* can3 identifier mask register 6 */
                                #define can3idm7 0x21f /* can3 identifier mask register 7 */
                                #define can3rxfg 0x220 /* can3 rx foreground buffer thru
                                +$22f */
                                #define can3txfg 0x230 /* can3 tx foreground buffer thru
                                +$23f */

                                #define ptt 0x240 /* portt data register */
                                #define ptit 0x241 /* portt input register */
                                #define ddrt 0x242 /* portt direction register */
                                #define rdrt 0x243 /* portt reduced drive register */
                                #define pert 0x244 /* portt pull device enable */
                                #define ppst 0x245 /* portt pull polarity select */

                                #define pts 0x248 /* ports data register */
                                #define ptis 0x249 /* ports input register */
                                #define ddrs 0x24a /* ports direction register */
                                #define rdrs 0x24b /* ports reduced drive register */
                                #define pers 0x24c /* ports pull device enable */
                                #define ppss 0x24d /* ports pull polarity select */
                                #define woms 0x24e /* ports wired or mode register */

                                #define ptm 0x250 /* portm data register */
                                #define ptim 0x251 /* portm input register */
                                #define ddrm 0x252 /* portm direction register */
                                #define rdrm 0x253 /* portm reduced drive register */
                                #define perm 0x254 /* portm pull device enable */
                                #define ppsm 0x255 /* portm pull polarity select */
                                #define womm 0x256 /* portm wired or mode register */
                                #define modrr 0x257 /* portm module routing register */
                                #define ptp 0x258 /* portp data register */
                                #define ptip 0x259 /* portp input register */
                                #define ddrp 0x25a /* portp direction register */
                                #define rdrp 0x25b /* portp reduced drive register */
                                #define perp 0x25c /* portp pull device enable */
                                #define ppsp 0x25d /* portp pull polarity select */
                                #define piep 0x25e /* portp interrupt enable register */
                                #define pifp 0x25f /* portp interrupt flag register */
                                #define pth 0x260 /* porth data register */
                                #define ptih 0x261 /* porth input register */
                                #define ddrh 0x262 /* porth direction register */
                                #define rdrh 0x263 /* porth reduced drive register */
                                #define perh 0x264 /* porth pull device enable */
                                #define ppsh 0x265 /* porth pull polarity select */
                                #define pieh 0x266 /* porth interrupt enable register */
                                #define pifh 0x267 /* porth interrupt flag register */
                                #define ptj 0x268 /* portp data register */
                                #define ptij 0x269 /* portp input register */
                                #define ddrj 0x26a /* portp direction register */
                                #define rdrj 0x26b /* portp reduced drive register */
                                #define perj 0x26c /* portp pull device enable */
                                #define ppsj 0x26d /* portp pull polarity select */
                                #define piej 0x26e /* portp interrupt enable register */
                                #define pifj 0x26f /* portp interrupt flag register */

                                #define can4ctl0 0x280 /* can4 control register 0 */
                                #define can4ctl1 0x281 /* can4 control register 1 */
                                #define can4btr0 0x282 /* can4 bus timing register 0 */
                                #define can4btr1 0x283 /* can4 bus timing register 1 */
                                #define can4rflg 0x284 /* can4 receiver flags */
                                #define can4rier 0x285 /* can4 receiver interrupt enables */
                                #define can4tflg 0x286 /* can4 transmit flags */
                                #define can4tier 0x287 /* can4 transmit interrupt enables */
                                #define can4tarq 0x288 /* can4 transmit message abort
                                control */
                                #define can4taak 0x289 /* can4 transmit message abort status
                                */
                                #define can4tbel 0x28a /* can4 transmit buffer select */
                                #define can4idac 0x28b /* can4 identfier acceptance control
                                */
                                #define can4rerr 0x28e /* can4 receive error counter */
                                #define can4terr 0x28f /* can4 transmit error counter */
                                #define can4ida0 0x290 /* can4 identifier acceptance
                                register 0 */
                                #define can4ida1 0x291 /* can4 identifier acceptance
                                register 1 */
                                #define can4ida2 0x292 /* can4 identifier acceptance
                                register 2 */
                                #define can4ida3 0x293 /* can4 identifier acceptance
                                register 3 */
                                #define can4idm0 0x294 /* can4 identifier mask register 0 */
                                #define can4idm1 0x295 /* can4 identifier mask register 1 */
                                #define can4idm2 0x296 /* can4 identifier mask register 2 */
                                #define can4idm3 0x297 /* can4 identifier mask register 3 */
                                #define can4ida4 0x298 /* can4 identifier acceptance
                                register 4 */
                                #define can4ida5 0x299 /* can4 identifier acceptance
                                register 5 */
                                #define can4ida6 0x29a /* can4 identifier acceptance
                                register 6 */
                                #define can4ida7 0x29b /* can4 identifier acceptance
                                register 7 */
                                #define can4idm4 0x29c /* can4 identifier mask register 4 */
                                #define can4idm5 0x29d /* can4 identifier mask register 5 */
                                #define can4idm6 0x29e /* can4 identifier mask register 6 */
                                #define can4idm7 0x29f /* can4 identifier mask register 7 */
                                #define can4rxfg 0x2a0 /* can4 rx foreground buffer thru
                                +$2af */
                                #define can4txfg 0x2b0 /* can4 tx foreground buffer thru
                                +$2bf */
                                ------------------------------------------------------------------


                                Makefile - This i have a lot of doubts because there lot's of flags
                                that i not wight about them!
                                ---------------------------------------------------------------------
                                PROG = test
                                ASMS = vectors.s
                                SRCS = main.c
                                INCLUDES = ports.h
                                OBJS = $(SRCS:.c=.o) $(ASMS:.s=.o)


                                #
                                # C flags used by default to compile a program
                                #
                                CFLAGS
                                = -m68S12 -mnoshort -Wall -Wmissing-prototypes -Os -g0 -msoft-reg-count=0 -fomit-frame-pointer -ffixed-z -fshort-enums

                                LDFLAGS = -m68S12 -mnoshort -Wl,-m,m68hc12elfb \
                                -Wl,-defsym,_io_ports=0x0000


                                #
                                # Options to creates the .s19 or .b files from the elf
                                #
                                OBJCOPY_FLAGS = --remove-section=page0 \
                                --remove-section=.page0


                                ####################################
                                # This part should not be modified #
                                ####################################
                                #
                                # Programs location
                                #
                                DEVC_PREFIX=m68hc12-
                                CC=$(DEVC_PREFIX)gcc
                                CXX=$(DEVC_PREFIX)gcc
                                AS=$(DEVC_PREFIX)as
                                AR=$(DEVC_PREFIX)ar
                                SIZE=$(DEVC_PREFIX)size
                                OBJCOPY=$(DEVC_PREFIX)objcopy
                                OBJDUMP=$(DEVC_PREFIX)objdump
                                LD=$(DEVC_PREFIX)ld

                                #
                                # Main rules
                                #
                                all: $(PROG).elf $(PROG).s19 $(PROG).b

                                $(PROG).elf: $(OBJS) $(INCLUDES) memory.x
                                $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBADD)

                                clean:
                                rm -f *.o *.elf *.s19 *.b *.a

                                #
                                # Some useful rules
                                #
                                dump: $(PROG).elf
                                $(OBJDUMP) -d $(PROG).elf

                                size: $(PROG).s19
                                $(SIZE) $(PROG).s19


                                #
                                # Implicit rules
                                #
                                # .elf is for the simulator and gdb
                                # .s19 is for some downloader and the simulator
                                # .b is a binary dump
                                #
                                .SUFFIXES: .elf .s19 .b

                                .elf.s19:
                                $(OBJCOPY) --output-target=srec $(OBJCOPY_FLAGS) $< $*.s19

                                .elf.b:
                                $(OBJCOPY) --output-target=binary --gap-fill=255 \
                                $(OBJCOPY_FLAGS) $< $*.b

                                --------------------------------------------------------------------



                                Main.c
                                -------------------------------------------------------------------
                                void main(void) {

                                DDRH |= 0x80;
                                while(1) {
                                PTH ^= 0x80;
                                delay();
                                }
                                }
                                ------------------------------------------------------------------

                                and in icc12 i make this align:
                                sreccvt -m 0x00000 0xfffff 32 -o aligned_%1 %1

                                For now its all information that i remember to send!if i miss
                                something send me back a mail!
                                one more time thaks
                              • Jefferson Smith
                                ... The CardS12.DG256 looks like a neat little module. I wonder how much it cost. ... hmmm, it seems you would not need vectors.s because you said that you
                                Message 15 of 30 , Nov 6, 2006
                                  --- In gnu-m68hc11@yahoogroups.com, "oliveira_pedro"
                                  <oliveira_pedro@...> wrote:

                                  > The board is an CardS12 with MCU MC9S12DG256 bought in Elektronik

                                  The CardS12.DG256 looks like a neat little module. I wonder how much
                                  it cost.

                                  > Vector.S

                                  hmmm, it seems you would not need vectors.s because you said that you
                                  execute code to set pseudo vectors. Funny, you're not even using any
                                  vectors for this example. If later you want this to run without the
                                  twinpeeks monitor, you can add vectors.s, but right now it would be a
                                  problem trying to write to 0xffc0..0xffff which is protected Flash.

                                  I downloaded the CardS12 manual from the officail site:
                                  http://elmicro.com/files/manuals/cards12v100manual.zip

                                  > Makefile - This i have a lot of doubts because there lot's of flags
                                  > that i not wight about them!

                                  It's hard sometimes to tell what a make file will do, especially a
                                  complex one (but yours not too bad). It helps more to post the output
                                  from make, assuming that is where the error messages appear. For
                                  example, when I enter the command "make" in a terminal window
                                  (konsole), I can highlight the text with my cursor and paste it, which
                                  should look something like this:

                                  jsmith@softdev:~/src/test3> make
                                  m6811-elf-gcc -m68S12 -mnoshort -Wall -Wmissing-prototypes -Os -g0
                                  -msoft-reg-count=0 -fomit-frame-pointer -ffixed-z -fshort-enums -c
                                  -o main.o main.c
                                  main.c:1:19: ports.h: No such file or directory
                                  main.c:3: warning: return type of `main' is not `int'
                                  main.c: In function `main':
                                  main.c:5: error: `DDRH' undeclared (first use in this function)
                                  main.c:5: error: (Each undeclared identifier is reported only once
                                  main.c:5: error: for each function it appears in.)
                                  main.c:7: error: `PTH' undeclared (first use in this function)
                                  main.c:8: warning: implicit declaration of function `delay'
                                  make: *** [main.o] Error 1

                                  From the first error above, I added "-I." to CFLAGS so it finds
                                  ports.h in current directory.

                                  I notice that you refer to registers in all caps, but your ports.h is
                                  lower case (see other errors above). Next, it will not work because
                                  the way you define ddrh as just a number, you would have to add
                                  syntaxt like "_io_ports[ddrh]". You would have to add support for
                                  that, as is added in GEL.

                                  > and in icc12 i make this align:
                                  > sreccvt -m 0x00000 0xfffff 32 -o aligned_%1 %1

                                  Yes, you can use the same tool to align the s19 from GCC, but it might
                                  be easier to make sure the linker script aligns it already. We're not
                                  to that point yet.
                                • oliveira_pedro
                                  Thaks for help me, now its working but i change the make file and it print the hello world :) if it is allowed i put my compilation in the files directory!
                                  Message 16 of 30 , Nov 8, 2006
                                    Thaks for help me, now its working but i change the make file and it
                                    print the "hello world" :)
                                    if it is allowed i put my compilation in the files directory!
                                    One more time thanks and i will gone put more questions because i'm
                                    developing an sonar( at this time is with poloroid ) comunication
                                    method to measure the distance between 2 beacons.
                                  • Jefferson Smith
                                    ... Excellent! Yes I think people would like another example in the Files that works. Sometimes they say they can t find one.
                                    Message 17 of 30 , Nov 9, 2006
                                      --- In gnu-m68hc11@yahoogroups.com, "oliveira_pedro"
                                      <oliveira_pedro@...> wrote:
                                      >
                                      > Thaks for help me, now its working but i change the make file and it
                                      > print the "hello world" :)
                                      > if it is allowed i put my compilation in the files directory!

                                      Excellent! Yes I think people would like another example in the Files
                                      that works. Sometimes they say they can't find one.
                                    • oliveira_pedro
                                      Hello!! Now i m try to link my program with the m68hc11 lib but i got a link problem! The lib that i try to use is stdio.h! Please look to my file and see were
                                      Message 18 of 30 , Nov 14, 2006
                                        Hello!!
                                        Now i'm try to link my program with the m68hc11 lib but i got a link
                                        problem! The lib that i try to use is stdio.h!
                                        Please look to my file and see were is the problem! I think is the
                                        path to link but i almout shore that i installed well!! because was a
                                        deb package!!

                                        My Makefile:
                                        =====================================================================
                                        # Makefile -- Hello
                                        #

                                        NAME=hello

                                        # List of C sources
                                        CSRCS=$(NAME).c utils.c
                                        # List of H sources
                                        INCLUDE=utils.h


                                        # Host generic commands
                                        RM=rm -f
                                        INSTALL=cp


                                        # 68HC12 compiler and tools
                                        DEVC_PREFIX=m68hc12-
                                        CC=$(DEVC_PREFIX)gcc
                                        OBJCOPY=$(DEVC_PREFIX)objcopy


                                        # Compile with debugging info (-g), with size optimization (-Os)
                                        # and 16-bit integers (-mshort)
                                        CFLAGS=-I -I/usr/m68hc11/include -Wall -Wmissing-prototypes -m68hc12
                                        -g -Os -mshort

                                        # Must pass -mshort to the linker, use the m68hc12elfb linker script
                                        # which includes 'memory.x'.
                                        LDFLAGS=$(CFLAGS) -Wl,-m,m68hc12elfb

                                        LIBADD= -lm
                                        # -I. -I/usr/m68hc11/lib/m68hc12/libutil.a -I/usr/m68hc11/include
                                        -L/usr/local/lib -lc
                                        # -lbcc -lgcc
                                        # -lc -lbcc -lgcc
                                        # -lbfd -liberty
                                        # libutil.a
                                        # Flags for objcopy tool
                                        OBJCOPY_FLAGS=--only-section=.text \
                                        --only-section=.rodata \
                                        --only-section=.vectors \
                                        --only-section=.data

                                        # List of objects
                                        OBJS=$(CSRCS:.c=.o)


                                        all:: $(NAME).elf $(NAME).s19

                                        $(NAME).elf: $(OBJS) $(INCLUDES)
                                        $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBADD)

                                        $(NAME).s19: $(NAME).elf
                                        $(OBJCOPY) $(OBJCOPY_FLAGS) --output-target=srec $< $@

                                        install:: $(PROGS)

                                        clean::
                                        $(RM) *.elf *.o *.s19

                                        =====================================================================


                                        My hello.c

                                        ======================================================================


                                        #include "mc9s12dg256.h"
                                        #include <stdio.h>

                                        int main (void){
                                        float x;
                                        init_serial();
                                        DDRH |= 0x80;

                                        x=0;
                                        while(1){
                                        x+=0.1;
                                        printf("\n\r%f",x);
                                        if(x>1000) x=0;

                                        delay(1000);
                                        PTH^=0x80;
                                        print_f ("Hello World!\r\n");
                                        }
                                        return 0;
                                        }
                                        =====================================================================


                                        My utils.c

                                        #include "mc9s12dg256.h"
                                        /**********************************************************
                                        * inicialize the serial port to work in 19200 baud
                                        **********************************************************/
                                        void init_serial(void){

                                        /* Configure the SCI0 to send at 19200 baud (for a 16 MHz bus speed). */
                                        SCI0BD = 26; // 16M / 16 / 310 = 19200

                                        /* Setup character format 1 start, 8-bits, 1 stop. */
                                        SCI0CR1 = 0;
                                        }

                                        /********************************************************
                                        * make a real delay very near to ms *
                                        *********************************************************/
                                        void delay1ms(void) {
                                        asm("ldy #2650");
                                        asm("dbne y,."); // 3cyc x 125ns x 2650 = 0,99375ms
                                        }




                                        /***********************************************************
                                        * make a delay with delay in ms the input value is in ms *
                                        ***********************************************************/
                                        void delay(unsigned ms) {
                                        while(ms--)
                                        delay1ms();
                                        }


                                        /************************************************************
                                        * redirect all output by declaring a custom putchar() func
                                        *************************************************************/
                                        int put_char(char c) {

                                        while((SCI0SR1 & 0x80) == 0) ; // loop until TDRE set
                                        SCI0DRL = c;
                                        return c;
                                        }


                                        /**********************************************************
                                        * redirect (as above) receive channel
                                        **********************************************************/
                                        int get_char(void) {

                                        while((SCI0SR1 & 0x20) == 0) ; // loop until RDRF set
                                        return SCI0DRL;
                                        }


                                        /**********************************************************
                                        * print a mensage string by put_char method
                                        **********************************************************/
                                        void print_f(const char *msg){

                                        while (*msg != 0)
                                        put_char(*msg++);


                                        }
                                      • Jefferson Smith
                                        ... wrote: [...] ... Well, I know there was a typo in something I had posted. I see you have commented
                                        Message 19 of 30 , Nov 15, 2006
                                          --- In gnu-m68hc11@yahoogroups.com, "oliveira_pedro"
                                          <oliveira_pedro@...> wrote:
                                          [...]
                                          > # Must pass -mshort to the linker, use the m68hc12elfb linker script
                                          > # which includes 'memory.x'.
                                          > LDFLAGS=$(CFLAGS) -Wl,-m,m68hc12elfb
                                          >
                                          > LIBADD= -lm
                                          > # -I. -I/usr/m68hc11/lib/m68hc12/libutil.a -I/usr/m68hc11/include
                                          > -L/usr/local/lib -lc
                                          > # -lbcc -lgcc
                                          > # -lc -lbcc -lgcc
                                          > # -lbfd -liberty
                                          > # libutil.a
                                          > # Flags for objcopy tool
                                          > OBJCOPY_FLAGS=--only-section=.text \
                                          > --only-section=.rodata \
                                          > --only-section=.vectors \
                                          > --only-section=.data

                                          Well, I know there was a typo in something I had posted. I see you
                                          have commented "-I/usr/m68hc11/lib/m68hc12/libutil.a" which would not
                                          work because -I is for paths, not including the file name. But you're
                                          not using that because it's commented.

                                          Maybe I can help, if you will post the output of `make` which shows
                                          what error you get.

                                          It helps to add "-v" in order to see search paths internally added to
                                          the link command:

                                          LDFLAGS=$(CFLAGS) -Wl,-m,m68hc12elfb -v
                                        • oliveira_pedro
                                          ... My make messanges from my hello world with the flag -v m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort -Wmissing-prototypes -c -o
                                          Message 20 of 30 , Nov 16, 2006
                                            --- In gnu-m68hc11@yahoogroups.com, "Jefferson Smith"
                                            <imajeff84663@...> wrote:
                                            >
                                            > --- In gnu-m68hc11@yahoogroups.com, "oliveira_pedro"
                                            > <oliveira_pedro@> wrote:
                                            > [...]
                                            > > # Must pass -mshort to the linker, use the m68hc12elfb linker script
                                            > > # which includes 'memory.x'.
                                            > > LDFLAGS=$(CFLAGS) -Wl,-m,m68hc12elfb
                                            > >
                                            > > LIBADD= -lm
                                            > > # -I. -I/usr/m68hc11/lib/m68hc12/libutil.a -I/usr/m68hc11/include
                                            > > -L/usr/local/lib -lc
                                            > > # -lbcc -lgcc
                                            > > # -lc -lbcc -lgcc
                                            > > # -lbfd -liberty
                                            > > # libutil.a
                                            > > # Flags for objcopy tool
                                            > > OBJCOPY_FLAGS=--only-section=.text \
                                            > > --only-section=.rodata \
                                            > > --only-section=.vectors \
                                            > > --only-section=.data
                                            >
                                            > Well, I know there was a typo in something I had posted. I see you
                                            > have commented "-I/usr/m68hc11/lib/m68hc12/libutil.a" which would not
                                            > work because -I is for paths, not including the file name. But you're
                                            > not using that because it's commented.
                                            >
                                            > Maybe I can help, if you will post the output of `make` which shows
                                            > what error you get.
                                            >
                                            > It helps to add "-v" in order to see search paths internally added to
                                            > the link command:
                                            >
                                            > LDFLAGS=$(CFLAGS) -Wl,-m,m68hc12elfb -v
                                            >

                                            My make messanges from my hello world with the flag "-v"


                                            m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort
                                            -Wmissing-prototypes -c -o hello.o hello.c
                                            hello.c: In function `isr_rti':
                                            hello.c:170: warning: implicit declaration of function `print_f'
                                            hello.c: In function `main':
                                            hello.c:188: warning: implicit declaration of function `init_serial'
                                            m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort
                                            -Wmissing-prototypes -c -o utils.o utils.c
                                            m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort
                                            -Wmissing-prototypes -Wl,-m,m68hc12elfb -v -o hello.elf hello.o
                                            utils.o -L/usr/m68hc11/lib/m68hc12/libutil.a -lm
                                            Reading specs from /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/specs
                                            Configured with: ../src/configure --prefix=/usr
                                            --infodir=/usr/share/info --mandir=/usr/share/man --with-gnu-as
                                            --with-gnu-ld --enable-nls --without-included-gettext
                                            --disable-checking --enable-languages=c --build=i486-linux-gnu
                                            --host=i486-linux-gnu --target=m68hc11 --without-headers
                                            Thread model: single
                                            gcc version 3.3.5-m68hc1x-20050515
                                            /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/collect2 -m
                                            m68hc12elf -o hello.elf
                                            /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                            -L/usr/m68hc11/lib/m68hc12/libutil.a
                                            -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort
                                            -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515
                                            -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort
                                            -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib
                                            -m m68hc12elfb hello.o utils.o -lm -lgcc -lgcc
                                            hello.o(.text+0x101): In function `main':
                                            /home/lse2/Desktop/pedro/code/helloS12/hello.c:200: undefined
                                            reference to `printf'
                                            collect2: ld returned 1 exit status
                                            make: *** [hello.elf] Error 1
                                          • Jefferson Smith
                                            ... -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort ...
                                            Message 21 of 30 , Nov 17, 2006
                                              --- In gnu-m68hc11@yahoogroups.com, "oliveira_pedro"
                                              <oliveira_pedro@...> wrote:
                                              > My make messanges from my hello world with the flag "-v"
                                              >
                                              >
                                              > m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort
                                              > -Wmissing-prototypes -c -o hello.o hello.c
                                              > hello.c: In function `isr_rti':
                                              > hello.c:170: warning: implicit declaration of function `print_f'
                                              > hello.c: In function `main':
                                              > hello.c:188: warning: implicit declaration of function `init_serial'
                                              > m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort
                                              > -Wmissing-prototypes -c -o utils.o utils.c
                                              > m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort
                                              > -Wmissing-prototypes -Wl,-m,m68hc12elfb -v -o hello.elf hello.o
                                              > utils.o -L/usr/m68hc11/lib/m68hc12/libutil.a -lm
                                              > Reading specs from /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/specs
                                              > Configured with: ../src/configure --prefix=/usr
                                              > --infodir=/usr/share/info --mandir=/usr/share/man --with-gnu-as
                                              > --with-gnu-ld --enable-nls --without-included-gettext
                                              > --disable-checking --enable-languages=c --build=i486-linux-gnu
                                              > --host=i486-linux-gnu --target=m68hc11 --without-headers
                                              > Thread model: single
                                              > gcc version 3.3.5-m68hc1x-20050515
                                              > /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/collect2 -m
                                              > m68hc12elf -o hello.elf
                                              > /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                              > -L/usr/m68hc11/lib/m68hc12/libutil.a
                                              > -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort
                                              > -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515
                                              >
                                              -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort
                                              >
                                              -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib
                                              > -m m68hc12elfb hello.o utils.o -lm -lgcc -lgcc
                                              > hello.o(.text+0x101): In function `main':
                                              > /home/lse2/Desktop/pedro/code/helloS12/hello.c:200: undefined
                                              > reference to `printf'
                                              > collect2: ld returned 1 exit status
                                              > make: *** [hello.elf] Error 1
                                              >

                                              That last command (collect2) which has error is basically the ld
                                              command. The "-L" parameters tell the linker where and in what order
                                              to search for lib files to define external functions like 'printf'.
                                              Since it says "undefined reference to `printf'", you see that it is
                                              not finding a lib that defines it.

                                              The next step is to append -lc (use libc). The trick is that libc will
                                              need something from libbcc. The trick again is that libbcc will need
                                              something from libc. The way this works is by adding -lc twice, before
                                              and after -lbcc. The reason is the linker does not search backwards in
                                              the list of libs to search.
                                              Hence makefile can do this:

                                              LIBADD= -lm -lc -lbcc -lc
                                            • oliveira_pedro
                                              ... Yes i understand!!and its very usefull but i got ths error!! m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort -Wmissing-prototypes
                                              Message 22 of 30 , Nov 17, 2006
                                                >
                                                > That last command (collect2) which has error is basically the ld
                                                > command. The "-L" parameters tell the linker where and in what order
                                                > to search for lib files to define external functions like 'printf'.
                                                > Since it says "undefined reference to `printf'", you see that it is
                                                > not finding a lib that defines it.
                                                >
                                                > The next step is to append -lc (use libc). The trick is that libc will
                                                > need something from libbcc. The trick again is that libbcc will need
                                                > something from libc. The way this works is by adding -lc twice, before
                                                > and after -lbcc. The reason is the linker does not search backwards in
                                                > the list of libs to search.
                                                > Hence makefile can do this:
                                                >
                                                > LIBADD= -lm -lc -lbcc -lc
                                                >

                                                Yes i understand!!and its very usefull but i got ths error!!

                                                m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort
                                                -Wmissing-prototypes -Wl,-m,m68hc12elfb -v -o hello.elf hello.o
                                                utils.o -lm -lc -lbcc -lc
                                                Reading specs from /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/specs
                                                Configured with: ../src/configure --prefix=/usr
                                                --infodir=/usr/share/info --mandir=/usr/share/man --with-gnu-as
                                                --with-gnu-ld --enable-nls --without-included-gettext
                                                --disable-checking --enable-languages=c --build=i486-linux-gnu
                                                --host=i486-linux-gnu --target=m68hc11 --without-headers
                                                Thread model: single
                                                gcc version 3.3.5-m68hc1x-20050515
                                                /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/collect2 -m
                                                m68hc12elf -o hello.elf
                                                /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                                -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort
                                                -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515
                                                -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort
                                                -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib
                                                -m m68hc12elfb hello.o utils.o -lm -lc -lbcc -lc -lgcc -lgcc
                                                /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/bin/ld:
                                                region text is full (hello.elf section .text)
                                                /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/bin/ld:
                                                section .rodata [00004000 -> 000042d3] overlaps section .text
                                                [00004000 -> 00010679]
                                                /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/bin/ld:
                                                section .data [000042d4 -> 00004711] overlaps section .text [00004000
                                                -> 00010679]
                                                collect2: ld returned 1 exit status
                                                make: *** [hello.elf] Error 1

                                                may i have to look again to my memory.x?!?!?!?

                                                memory.x
                                                ===================================================================
                                                MEMORY
                                                {
                                                page0 (rwx) : ORIGIN = 0x0000, LENGTH = 0x100
                                                eeprom (rx) : ORIGIN = 0x400, LENGTH = 0x1000-0x100
                                                text (rx) : ORIGIN = 0x4000, LENGTH = 0x4000
                                                data : ORIGIN = 0x1000, LENGTH = 0x3E00-0x1000
                                                }
                                                PROVIDE (_stack = 0x3E00);
                                                PROVIDE (_io_ports = 0x0000);
                                              • Jefferson Smith
                                                ... wrote: [...] ... There s more... See http://m68hc11.serveftp.org/wiki/index.php/Soft:libs for reasons why you would still have problems.
                                                Message 23 of 30 , Nov 17, 2006
                                                  --- In gnu-m68hc11@yahoogroups.com, "Jefferson Smith"
                                                  <imajeff84663@...> wrote:
                                                  [...]
                                                  > The next step is to append -lc (use libc). The trick is that libc
                                                  > will need something from libbcc. The trick again is that libbcc
                                                  > will need something from libc. The way this works is by adding
                                                  > -lc twice, before and after -lbcc. The reason is the linker does
                                                  > not search backwards in the list of libs to search.
                                                  > Hence makefile can do this:
                                                  >
                                                  > LIBADD= -lm -lc -lbcc -lc
                                                  >
                                                  There's more...

                                                  See
                                                  http://m68hc11.serveftp.org/wiki/index.php/Soft:libs

                                                  for reasons why you would still have problems. Your app is trying to
                                                  use floating point (printf from libc also uses floating point), and
                                                  will often run out of memory.

                                                  Maybe you can still use "float.s" that Tim Housel optimized for HC12,
                                                  and use -fshort-double. I've never tried it though, and I wondered if
                                                  Stephane C. was integrating this into GCC.

                                                  See
                                                  http://tech.groups.yahoo.com/group/gnu-m68hc11/files/ for float.s
                                                • Jefferson Smith
                                                  ... The Sections .text, .rodata, .data all take space in the 16K bank of Flash currently defined [0x4000..0x7fff]. I looked at the errors and calculated the
                                                  Message 24 of 30 , Nov 17, 2006
                                                    --- In gnu-m68hc11@yahoogroups.com, "oliveira_pedro"
                                                    <oliveira_pedro@...> wrote:
                                                    > Yes i understand!!and its very usefull but i got ths error!!

                                                    The Sections .text, .rodata, .data all take space in the 16K bank of
                                                    Flash currently defined [0x4000..0x7fff]. I looked at the errors and
                                                    calculated the size of each overlapping section. For example .rodata
                                                    [00004000 -> 00004197] means length 0x198. These three sizes total
                                                    0x6584 (25988, 25.4K) bytes.

                                                    I linked it by editing memory.x so text length is 0x8000 (32K). The
                                                    problem is it would not work for my DP256 unless I did some special
                                                    preperation because Flash [0x8000..0xbfff] is reserved for banked memory.

                                                    ===== Link errors because text region too small ====

                                                    /usr/lib/gcc-lib/m6811-elf/3.3.6-m68hc1x-20060122/../../../../m6811-elf/bin/ld:
                                                    region text is full (hello.elf section .text)
                                                    /usr/lib/gcc-lib/m6811-elf/3.3.6-m68hc1x-20060122/../../../../m6811-elf/bin/ld:
                                                    section .rodata [00004000 -> 00004197] overlaps section .text
                                                    [00004000 -> 00009fb3]
                                                    /usr/lib/gcc-lib/m6811-elf/3.3.6-m68hc1x-20060122/../../../../m6811-elf/bin/ld:
                                                    section .data [00004198 -> 000045cf] overlaps section .text [00004000
                                                    -> 00009fb3]

                                                    ===== Linked without errors by making text region length=0x8000 =====

                                                    hello.elf: file format elf32-m68hc12

                                                    Sections:
                                                    Idx Name Size VMA LMA File off Algn
                                                    0 .text 00005fb4 00004000 00004000 00001000 2**0
                                                    CONTENTS, ALLOC, LOAD, READONLY, CODE
                                                    1 .rodata 00000198 00009fb4 00009fb4 00006fb4 2**0
                                                    CONTENTS, ALLOC, LOAD, READONLY, DATA
                                                    2 .rodata1 00000000 0000a14c 0000a14c 00008438 2**0
                                                    CONTENTS
                                                    3 .ctors 00000000 0000a14c 0000a14c 00008438 2**0
                                                    CONTENTS
                                                    4 .dtors 00000000 0000a14c 0000a14c 00008438 2**0
                                                    CONTENTS
                                                    5 .data 00000438 00001000 0000a14c 00008000 2**0
                                                    CONTENTS, ALLOC, LOAD, DATA
                                                    6 .bss 0000000c 00001438 00001438 00000438 2**0
                                                    ALLOC
                                                  • oliveira_pedro
                                                    ... memory. ... I changed in memory.x the leght to 0x8000 to but still the same to do the same type of error! m68hc12-gcc -I -I/usr/m68hc11/include -Wall
                                                    Message 25 of 30 , Nov 20, 2006
                                                      > I linked it by editing memory.x so text length is 0x8000 (32K). The
                                                      > problem is it would not work for my DP256 unless I did some special
                                                      > preperation because Flash [0x8000..0xbfff] is reserved for banked
                                                      memory.
                                                      >
                                                      > ===== Link errors because text region too small ====
                                                      >
                                                      >


                                                      I changed in memory.x the leght to 0x8000 to but still the same to do
                                                      the same type of error!

                                                      m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort
                                                      -Wmissing-prototypes -c -o hello.o hello.c
                                                      hello.c: In function `isr_rti':
                                                      hello.c:170: warning: implicit declaration of function `print_f'
                                                      hello.c: In function `main':
                                                      hello.c:188: warning: implicit declaration of function `init_serial'
                                                      m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort
                                                      -Wmissing-prototypes -c -o utils.o utils.c
                                                      m68hc12-gcc -I -I/usr/m68hc11/include -Wall -m68hc12 -g -Os -mshort
                                                      -Wmissing-prototypes -Wl,-m,m68hc12elfb,-Map,hello.map -v -o hello.elf
                                                      hello.o utils.o -lm -lc -lbcc -lc
                                                      Reading specs from /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/specs
                                                      Configured with: ../src/configure --prefix=/usr
                                                      --infodir=/usr/share/info --mandir=/usr/share/man --with-gnu-as
                                                      --with-gnu-ld --enable-nls --without-included-gettext
                                                      --disable-checking --enable-languages=c --build=i486-linux-gnu
                                                      --host=i486-linux-gnu --target=m68hc11 --without-headers
                                                      Thread model: single
                                                      gcc version 3.3.5-m68hc1x-20050515
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/collect2 -m
                                                      m68hc12elf -o hello.elf
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                                      -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort
                                                      -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515
                                                      -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort
                                                      -L/usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib
                                                      -m m68hc12elfb -Map hello.map hello.o utils.o -lm -lc -lbcc -lc -lgcc
                                                      -lgcc
                                                      collect2: ld terminated with signal 11 [Segmentation fault]
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/bin/ld:
                                                      region text is full (hello.elf section .text)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/bin/ld:
                                                      section .rodata [00004000 -> 000042d3] overlaps section .text
                                                      [00004000 -> 00010679]
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/bin/ld:
                                                      section .data [000042d4 -> 00004711] overlaps section .text [00004000
                                                      -> 00010679]
                                                      make: *** [hello.elf] Error 1




                                                      I build the hello.map file to see if i fond something but i only have
                                                      perception that is a lot of library function that are included!but it
                                                      could be normal?!?!?


                                                      hello.map
                                                      ===================================================================
                                                      Archive member included because of file (symbol)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(exit.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                                      (exit)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(impure.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(exit.o)
                                                      (_impure_ptr)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(printf.o)
                                                      hello.o (printf)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(printf.o)
                                                      (vfprintf)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wcrtomb.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (_wcrtomb_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wcsrtombs.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (_wcsrtombs_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wctomb_r.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wcrtomb.o)
                                                      (_wctomb_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wsetup.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (__swsetup)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (_dtoa_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fflush.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (fflush)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(findfp.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (__sinit)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(freer.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wsetup.o)
                                                      (_free_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fvwrite.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (__sfvwrite)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fwalk.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fflush.o)
                                                      (_fwalk)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(locale.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wctomb_r.o)
                                                      (__lc_ctype)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(makebuf.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wsetup.o)
                                                      (__smakebuf)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(malloc.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (free)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(mallocr.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(freer.o)
                                                      (__malloc_av_)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(memchr.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (memchr)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(memcpy.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (memcpy)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(memmove.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fvwrite.o)
                                                      (memmove)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(memset.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (memset)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(mlock.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(freer.o)
                                                      (__malloc_lock)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(mprec.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (_Balloc)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(reallocr.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fvwrite.o)
                                                      (_realloc_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(s_isinf.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (isinf)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(s_isnan.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (isnan)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(sbrkr.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(freer.o)
                                                      (_sbrk_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(stdio.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(findfp.o)
                                                      (__sread)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(strcmp.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wctomb_r.o)
                                                      (strcmp)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(strlen.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (strlen)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(writer.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(stdio.o)
                                                      (_write_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(callocr.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(mprec.o)
                                                      (_calloc_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(closer.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(stdio.o)
                                                      (_close_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fstatr.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(makebuf.o)
                                                      (_fstat_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(lseekr.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(stdio.o)
                                                      (_lseek_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(readr.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(stdio.o)
                                                      (_read_r)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(reent.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(sbrkr.o)
                                                      (errno)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(syscalls.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(readr.o)
                                                      (read)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(close.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(closer.o)
                                                      (close)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(fstat.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fstatr.o)
                                                      (fstat)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(isatty.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(makebuf.o)
                                                      (isatty)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(lseek.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(lseekr.o)
                                                      (lseek)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(sci-inout.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(syscalls.o)
                                                      (outbyte)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(errno.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(lseek.o)
                                                      (__errno)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_mulsi3.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (__mulsi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_ashlsi3.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (___ashlsi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_ashrsi3.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (___ashrsi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_lshrsi3.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (___lshrsi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
                                                      hello.o (_.tmp)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
                                                      hello.o (_.frame)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_premain.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                                      (__premain)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(__exit.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(exit.o)
                                                      (_exit)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_abort.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(syscalls.o)
                                                      (abort)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_lshlhi3.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(exit.o)
                                                      (___lshlhi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_map_data.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                                      (__map_data_section)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_init_bss.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                                      (__init_bss_section)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_gt_sf.o)
                                                      hello.o (__gtsf2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_sf_to_df.o)
                                                      hello.o (__extendsfdf2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_addsub_df.o)
                                                      hello.o (__adddf3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_mul_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (__muldf3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_div_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (__divdf3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_eq_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (__eqdf2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_ne_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (__nedf2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_gt_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (__gtdf2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_ge_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (__gedf2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_lt_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (__ltdf2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_si_to_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (__floatsidf)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_df_to_si.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (__fixdfsi)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_negate_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (__negdf2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_make_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_sf_to_df.o)
                                                      (__make_dp)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_df_to_sf.o)
                                                      hello.o (__truncdfsf2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_thenan_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_addsub_df.o)
                                                      (__thenan_df)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_usi_to_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      (__floatunsidf)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(udivmod.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      (__udivsi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_negsi2.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_si_to_df.o)
                                                      (___negsi2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_adddi3.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_addsub_df.o)
                                                      (___adddi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_subdi3.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_addsub_df.o)
                                                      (___subdi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_muldi3.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_mul_df.o)
                                                      (__muldi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_negdi2.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_addsub_df.o)
                                                      (__negdi2)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_lshrdi3.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_df_to_si.o)
                                                      (__lshrdi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_ashldi3.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_sf_to_df.o)
                                                      (__ashldi3)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_unpack_sf.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_gt_sf.o)
                                                      (__unpack_f)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_fpcmp_parts_sf.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_gt_sf.o)
                                                      (__fpcmp_parts_f)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_make_sf.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_df_to_sf.o)
                                                      (__make_fp)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_pack_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_addsub_df.o)
                                                      (__pack_d)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_unpack_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_addsub_df.o)
                                                      (__unpack_d)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_fpcmp_parts_df.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_eq_df.o)
                                                      (__fpcmp_parts_d)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(udivmodsi4.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(udivmod.o)
                                                      (__udivmodsi4)
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_pack_sf.o)

                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_make_sf.o)
                                                      (__pack_f)

                                                      Allocating common symbols
                                                      Common symbol size file

                                                      errno 0x2
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(reent.o)

                                                      Memory Configuration

                                                      Name Origin Length Attributes
                                                      page0 0x00000000 0x00000100 xrw
                                                      eeprom 0x00000400 0x00000f00 xr
                                                      text 0x00004000 0x00008000 xr
                                                      data 0x00001000 0x00002e00
                                                      *default* 0x00000000 0xffffffff

                                                      Linker script and memory map

                                                      LOAD /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                                      LOAD hello.o
                                                      LOAD utils.o
                                                      LOAD
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libm.a
                                                      LOAD
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a
                                                      LOAD
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a
                                                      LOAD
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a
                                                      LOAD
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a
                                                      LOAD
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a
                                                      0x00003e00 PROVIDE (_stack, 0x3e00)
                                                      0x00000000 PROVIDE (_io_ports, 0x0)

                                                      .hash
                                                      *(.hash)

                                                      .dynsym
                                                      *(.dynsym)

                                                      .dynstr
                                                      *(.dynstr)

                                                      .gnu.version
                                                      *(.gnu.version)

                                                      .gnu.version_d
                                                      *(.gnu.version_d)

                                                      .gnu.version_r
                                                      *(.gnu.version_r)

                                                      .rel.text
                                                      *(.rel.text)
                                                      *(.rel.text.*)
                                                      *(.rel.gnu.linkonce.t.*)

                                                      .rela.text
                                                      *(.rela.text)
                                                      *(.rela.text.*)
                                                      *(.rela.gnu.linkonce.t.*)

                                                      .rel.data
                                                      *(.rel.data)
                                                      *(.rel.data.*)
                                                      *(.rel.gnu.linkonce.d.*)

                                                      .rela.data
                                                      *(.rela.data)
                                                      *(.rela.data.*)
                                                      *(.rela.gnu.linkonce.d.*)

                                                      .rel.rodata
                                                      *(.rel.rodata)
                                                      *(.rel.rodata.*)
                                                      *(.rel.gnu.linkonce.r.*)

                                                      .rela.rodata
                                                      *(.rela.rodata)
                                                      *(.rela.rodata.*)
                                                      *(.rela.gnu.linkonce.r.*)

                                                      .rel.sdata
                                                      *(.rel.sdata)
                                                      *(.rel.sdata.*)
                                                      *(.rel.gnu.linkonce.s.*)
                                                      *(.rel.sdata)

                                                      .rela.sdata
                                                      *(.rela.sdata)
                                                      *(.rela.sdata.*)
                                                      *(.rela.gnu.linkonce.s.*)
                                                      *(.rela.sdata)

                                                      .rel.sbss
                                                      *(.rel.sbss)
                                                      *(.rel.sbss.*)
                                                      *(.rel.gnu.linkonce.sb.*)

                                                      .rela.sbss
                                                      *(.rela.sbss)
                                                      *(.rela.sbss.*)
                                                      *(.rel.gnu.linkonce.sb.*)

                                                      .rel.bss
                                                      *(.rel.bss)
                                                      *(.rel.bss.*)
                                                      *(.rel.gnu.linkonce.b.*)

                                                      .rela.bss
                                                      *(.rela.bss)
                                                      *(.rela.bss.*)
                                                      *(.rela.gnu.linkonce.b.*)

                                                      .rel.stext
                                                      *(.rel.stest)

                                                      .rela.stext
                                                      *(.rela.stest)

                                                      .rel.etext
                                                      *(.rel.etest)

                                                      .rela.etext
                                                      *(.rela.etest)

                                                      .rel.edata
                                                      *(.rel.edata)

                                                      .rela.edata
                                                      *(.rela.edata)

                                                      .rel.eit_v
                                                      *(.rel.eit_v)

                                                      .rela.eit_v
                                                      *(.rela.eit_v)

                                                      .rel.ebss
                                                      *(.rel.ebss)

                                                      .rela.ebss
                                                      *(.rela.ebss)

                                                      .rel.srodata
                                                      *(.rel.srodata)

                                                      .rela.srodata
                                                      *(.rela.srodata)

                                                      .rel.erodata
                                                      *(.rel.erodata)

                                                      .rela.erodata
                                                      *(.rela.erodata)

                                                      .rel.got
                                                      *(.rel.got)

                                                      .rela.got
                                                      *(.rela.got)

                                                      .rel.ctors
                                                      *(.rel.ctors)

                                                      .rela.ctors
                                                      *(.rela.ctors)

                                                      .rel.dtors
                                                      *(.rel.dtors)

                                                      .rela.dtors
                                                      *(.rela.dtors)

                                                      .rel.init
                                                      *(.rel.init)

                                                      .rela.init
                                                      *(.rela.init)

                                                      .rel.fini
                                                      *(.rel.fini)

                                                      .rela.fini
                                                      *(.rela.fini)

                                                      .rel.plt
                                                      *(.rel.plt)

                                                      .rela.plt
                                                      *(.rela.plt)

                                                      .page0
                                                      *(.page0)

                                                      .stext
                                                      *(.stext)

                                                      .init
                                                      *(.init)

                                                      .text 0x00004000 0xc67a
                                                      *(.install0)
                                                      .install0 0x00004000 0x3
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                                      0x00004000 _start
                                                      *(.install1)
                                                      *(.install2)
                                                      .install2 0x00004003 0x3
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                                      .install2 0x00004006 0x12
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_map_data.o)
                                                      0x00004006 __map_data_section
                                                      .install2 0x00004018 0xd
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_init_bss.o)
                                                      0x00004018 __init_bss_section
                                                      *(.install3)
                                                      *(.install4)
                                                      .install4 0x00004025 0xc
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/crt1.o
                                                      *(.init)
                                                      *(.text)
                                                      .text 0x00004031 0x12a hello.o
                                                      0x00004070 main
                                                      0x00004031 isr_rti
                                                      .text 0x0000415b 0xcf utils.o
                                                      0x0000415b init_serial
                                                      0x000041f7 print_f
                                                      0x000041db get_char
                                                      0x00004172 delay1ms
                                                      0x00004186 delay
                                                      0x000041b4 put_char
                                                      .text 0x0000422a 0x12e
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(exit.o)
                                                      0x0000422a exit
                                                      .text 0x00004358 0x4a
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(printf.o)
                                                      0x00004381 printf
                                                      0x00004358 _printf_r
                                                      .text 0x000043a2 0x2589
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      0x000044ab _vfprintf_r
                                                      0x00004471 vfprintf
                                                      .text 0x0000692b 0x86
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wcrtomb.o)
                                                      0x0000692b _wcrtomb_r
                                                      0x00006990 wcrtomb
                                                      .text 0x000069b1 0x1a7
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wcsrtombs.o)
                                                      0x000069b1 _wcsrtombs_r
                                                      0x00006b32 wcsrtombs
                                                      .text 0x00006b58 0x2dc
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wctomb_r.o)
                                                      0x00006b58 _wctomb_r
                                                      .text 0x00006e34 0x116
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wsetup.o)
                                                      0x00006e34 __swsetup
                                                      .text 0x00006f4a 0x2165
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      0x00007321 _dtoa_r
                                                      .text 0x000090af 0xe8
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fflush.o)
                                                      0x000090af fflush
                                                      .text 0x00009197 0x22d
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(findfp.o)
                                                      0x00009335 __sinit
                                                      0x000091dc __sfmoreglue
                                                      0x00009322 _cleanup
                                                      0x0000930a _cleanup_r
                                                      0x0000925a __sfp
                                                      .text 0x000093c4 0x4cd
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(freer.o)
                                                      0x000093c4 _free_r
                                                      0x00009762 _malloc_trim_r
                                                      .text 0x00009891 0x4ee
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fvwrite.o)
                                                      0x00009891 __sfvwrite
                                                      .text 0x00009d7f 0xec
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fwalk.o)
                                                      0x00009d7f _fwalk
                                                      .text 0x00009e6b 0xa7
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(locale.o)
                                                      0x00009e6b _setlocale_r
                                                      0x00009ebf __locale_charset
                                                      0x00009ed0 _localeconv_r
                                                      0x00009ee1 setlocale
                                                      0x00009eff localeconv
                                                      .text 0x00009f12 0x14f
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(makebuf.o)
                                                      0x00009f12 __smakebuf
                                                      .text 0x0000a061 0x2e
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(malloc.o)
                                                      0x0000a061 malloc
                                                      0x0000a078 free
                                                      .text 0x0000a08f 0xc79
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(mallocr.o)
                                                      0x0000a301 _malloc_r
                                                      .text 0x0000ad08 0x45
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(memchr.o)
                                                      0x0000ad08 memchr
                                                      .text 0x0000ad4d 0x4e
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(memcpy.o)
                                                      0x0000ad4d memcpy
                                                      .text 0x0000ad9b 0xb6
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(memmove.o)
                                                      0x0000ad9b memmove
                                                      .text 0x0000ae51 0x37
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(memset.o)
                                                      0x0000ae51 memset
                                                      .text 0x0000ae88 0x1c
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(mlock.o)
                                                      0x0000ae96 __malloc_unlock
                                                      0x0000ae88 __malloc_lock
                                                      .text 0x0000aea4 0x18ae
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(mprec.o)
                                                      0x0000c68a _mprec_log10
                                                      0x0000b2b5 _hi0bits
                                                      0x0000aea4 _Balloc
                                                      0x0000c2dd _d2b
                                                      0x0000b5c8 _multiply
                                                      0x0000c523 _ratio
                                                      0x0000b109 _s2b
                                                      0x0000b597 _i2b
                                                      0x0000b3f6 _lo0bits
                                                      0x0000bbdd __mcmp
                                                      0x0000b961 _pow5mult
                                                      0x0000bf52 _ulp
                                                      0x0000c0a3 _b2d
                                                      0x0000af5d _multadd
                                                      0x0000bca1 __mdiff
                                                      0x0000ba5a _lshift
                                                      0x0000af38 _Bfree
                                                      .text 0x0000c752 0x648
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(reallocr.o)
                                                      0x0000c752 _realloc_r
                                                      .text 0x0000cd9a 0xb9
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(s_isinf.o)
                                                      0x0000cd9a isinf
                                                      .text 0x0000ce53 0x8e
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(s_isnan.o)
                                                      0x0000ce53 isnan
                                                      .text 0x0000cee1 0x33
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(sbrkr.o)
                                                      0x0000cee1 _sbrk_r
                                                      .text 0x0000cf14 0x11f
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(stdio.o)
                                                      0x0000cfc9 __sseek
                                                      0x0000cf14 __sread
                                                      0x0000d017 __sclose
                                                      0x0000cf63 __swrite
                                                      .text 0x0000d033 0x7d
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(strcmp.o)
                                                      0x0000d033 strcmp
                                                      .text 0x0000d0b0 0x20
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(strlen.o)
                                                      0x0000d0b0 strlen
                                                      .text 0x0000d0d0 0x4f
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(writer.o)
                                                      0x0000d0d0 _write_r
                                                      .text 0x0000d11f 0xa8
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(callocr.o)
                                                      0x0000d11f _calloc_r
                                                      .text 0x0000d1c7 0x33
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(closer.o)
                                                      0x0000d1c7 _close_r
                                                      .text 0x0000d1fa 0x39
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(fstatr.o)
                                                      0x0000d1fa _fstat_r
                                                      .text 0x0000d233 0x4c
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(lseekr.o)
                                                      0x0000d233 _lseek_r
                                                      .text 0x0000d27f 0x4f
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(readr.o)
                                                      0x0000d27f _read_r
                                                      .text 0x0000d2ce 0x1b8
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(reent.o)
                                                      0x0000d2ce cleanup_glue
                                                      0x0000d303 _reclaim_reent
                                                      0x0000d3e7 _wrapup_reent
                                                      .text 0x0000d486 0xd1
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(syscalls.o)
                                                      0x0000d4db write
                                                      0x0000d486 read
                                                      0x0000d51f sbrk
                                                      .text 0x0000d557 0x11
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(close.o)
                                                      0x0000d557 close
                                                      .text 0x0000d568 0x23
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(fstat.o)
                                                      0x0000d568 fstat
                                                      .text 0x0000d58b 0x11
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(isatty.o)
                                                      0x0000d58b isatty
                                                      .text 0x0000d59c 0x1e
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(lseek.o)
                                                      0x0000d59c lseek
                                                      .text 0x0000d5ba 0x41
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(sci-inout.o)
                                                      0x0000d5ba outbyte
                                                      0x0000d5ce inbyte
                                                      0x0000d5dc _sci_init
                                                      .text 0x0000d5fb 0x11
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(errno.o)
                                                      0x0000d5fb __errno
                                                      .text 0x0000d60c 0x16
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_mulsi3.o)
                                                      0x0000d60c __mulsi3
                                                      .text 0x0000d622 0x14
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_ashlsi3.o)
                                                      0x0000d622 ___ashlsi3
                                                      .text 0x0000d636 0x15
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_ashrsi3.o)
                                                      0x0000d636 ___ashrsi3
                                                      .text 0x0000d64b 0x14
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_lshrsi3.o)
                                                      0x0000d64b ___lshrsi3
                                                      .text 0x0000d65f 0x4
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_premain.o)
                                                      0x0000d65f __premain
                                                      .text 0x0000d663 0x8
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_abort.o)
                                                      0x0000d663 abort
                                                      .text 0x0000d66b 0x12
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_lshlhi3.o)
                                                      0x0000d66b ___lshlhi3
                                                      .text 0x0000d67d 0x68
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_gt_sf.o)
                                                      0x0000d67d __gtsf2
                                                      .text 0x0000d6e5 0x92
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_sf_to_df.o)
                                                      0x0000d6e5 __extendsfdf2
                                                      .text 0x0000d777 0x68b
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_addsub_df.o)
                                                      0x0000dcbb __adddf3
                                                      0x0000dd5b __subdf3
                                                      .text 0x0000de02 0x77f
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_mul_df.o)
                                                      0x0000de02 __muldf3
                                                      .text 0x0000e581 0x394
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_div_df.o)
                                                      0x0000e581 __divdf3
                                                      .text 0x0000e915 0x88
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_eq_df.o)
                                                      0x0000e915 __eqdf2
                                                      .text 0x0000e99d 0x88
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_ne_df.o)
                                                      0x0000e99d __nedf2
                                                      .text 0x0000ea25 0x88
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_gt_df.o)
                                                      0x0000ea25 __gtdf2
                                                      .text 0x0000eaad 0x88
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_ge_df.o)
                                                      0x0000eaad __gedf2
                                                      .text 0x0000eb35 0x88
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_lt_df.o)
                                                      0x0000eb35 __ltdf2
                                                      .text 0x0000ebbd 0x184
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_si_to_df.o)
                                                      0x0000ebbd __floatsidf
                                                      .text 0x0000ed41 0xcb
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_df_to_si.o)
                                                      0x0000ed41 __fixdfsi
                                                      .text 0x0000ee0c 0x8f
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_negate_df.o)
                                                      0x0000ee0c __negdf2
                                                      .text 0x0000ee9b 0x69
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_make_df.o)
                                                      0x0000ee9b __make_dp
                                                      .text 0x0000ef04 0xd9
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_df_to_sf.o)
                                                      0x0000ef04 __truncdfsf2
                                                      .text 0x0000efdd 0xfa
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_usi_to_df.o)
                                                      0x0000efdd __floatunsidf
                                                      .text 0x0000f0d7 0x5c
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(udivmod.o)
                                                      0x0000f0d7 __udivsi3
                                                      0x0000f101 __umodsi3
                                                      .text 0x0000f133 0xd
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_negsi2.o)
                                                      0x0000f133 ___negsi2
                                                      .text 0x0000f140 0x26
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_adddi3.o)
                                                      0x0000f140 ___adddi3
                                                      .text 0x0000f166 0x26
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_subdi3.o)
                                                      0x0000f166 ___subdi3
                                                      .text 0x0000f18c 0x1e9
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_muldi3.o)
                                                      0x0000f18c __muldi3
                                                      .text 0x0000f375 0x6a
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_negdi2.o)
                                                      0x0000f375 __negdi2
                                                      .text 0x0000f3df 0x119
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_lshrdi3.o)
                                                      0x0000f3df __lshrdi3
                                                      .text 0x0000f4f8 0x119
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_ashldi3.o)
                                                      0x0000f4f8 __ashldi3
                                                      .text 0x0000f611 0x182
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_unpack_sf.o)
                                                      0x0000f611 __unpack_f
                                                      .text 0x0000f793 0x13f
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_fpcmp_parts_sf.o)
                                                      0x0000f793 __fpcmp_parts_f
                                                      .text 0x0000f8d2 0x2f
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_make_sf.o)
                                                      0x0000f8d2 __make_fp
                                                      .text 0x0000f901 0x557
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_pack_df.o)
                                                      0x0000f901 __pack_d
                                                      .text 0x0000fe58 0x22a
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_unpack_df.o)
                                                      0x0000fe58 __unpack_d
                                                      .text 0x00010082 0x1ae
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_fpcmp_parts_df.o)
                                                      0x00010082 __fpcmp_parts_d
                                                      .text 0x00010230 0x1bd
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(udivmodsi4.o)
                                                      0x00010230 __udivmodsi4
                                                      .text 0x000103ed 0x288
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_pack_sf.o)
                                                      0x000103ed __pack_f
                                                      *(.text.*)
                                                      *(.gnu.warning)
                                                      *(.gnu.linkonce.t.*)
                                                      *(.tramp)
                                                      *(.tramp.*)
                                                      *(.fini0)
                                                      *(.fini1)
                                                      *(.fini2)
                                                      *(.fini3)
                                                      *(.fini4)
                                                      .fini4 0x00010675 0x5
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(__exit.o)
                                                      0x0001067a _etext = .
                                                      0x0001067a PROVIDE (etext, .)
                                                      0x0001067a . = ALIGN (0x2)

                                                      .eh_frame
                                                      *(.eh_frame)

                                                      .gcc_except_table
                                                      *(.gcc_except_table)

                                                      .rodata 0x00004000 0x2d4
                                                      *(.rodata)
                                                      .rodata 0x00004000 0xd2
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      .rodata 0x000040d2 0xc
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      .rodata 0x000040de 0x1c
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(locale.o)
                                                      .rodata 0x000040fa 0x11e
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(mprec.o)
                                                      0x000041f0 __mprec_tinytens
                                                      0x00004100 __mprec_tens
                                                      0x000041c8 __mprec_bigtens
                                                      .rodata 0x00004218 0xc
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_thenan_df.o)
                                                      0x00004218 __thenan_df
                                                      *(.rodata.*)
                                                      .rodata.str1.1
                                                      0x00004224 0x14 hello.o
                                                      .rodata.str1.1
                                                      0x00004238 0x2
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(impure.o)
                                                      .rodata.str1.1
                                                      0x0000423a 0x4f
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(vfprintf.o)
                                                      .rodata.str1.1
                                                      0x00004289 0x1d
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(wctomb_r.o)
                                                      .rodata.str1.1
                                                      0x000042a6 0x9
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(dtoa.o)
                                                      0xf (size before relaxing)
                                                      .rodata.str1.1
                                                      0x000042af 0xb
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(locale.o)
                                                      0x10 (size before relaxing)
                                                      .rodata.str1.1
                                                      0x000042ba 0x1a
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(syscalls.o)
                                                      *(.gnu.linkonce.r*)
                                                      0x000042d4 . = ALIGN (0x2)

                                                      .rodata1 0x000042d4 0x0
                                                      *(.rodata1)
                                                      0x000042d4 . = ALIGN (0x2)

                                                      .ctors 0x000042d4 0x0
                                                      0x000042d4 PROVIDE (__CTOR_LIST__, .)
                                                      *(.ctors)
                                                      0x000042d4 PROVIDE (__CTOR_END__, .)

                                                      .dtors 0x000042d4 0x0
                                                      0x000042d4 PROVIDE (__DTOR_LIST__, .)
                                                      *(.dtors)
                                                      0x000042d4 PROVIDE (__DTOR_END__, .)

                                                      .jcr
                                                      *(.jcr)
                                                      0x000042d4 __data_image = .
                                                      0x000042d4 PROVIDE (__data_image, .)

                                                      .data 0x00001000 0x43e load address 0x000042d4
                                                      0x00001000 __data_section_start = .
                                                      0x00001000 PROVIDE
                                                      (__data_section_start, .)
                                                      *(.sdata)
                                                      *(.data)
                                                      .data 0x00001000 0x1fb
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(impure.o)
                                                      0x000011f9 _impure_ptr
                                                      .data 0x000011fb 0x16
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(locale.o)
                                                      0x000011fb __mb_cur_max
                                                      0x00001205 __lc_ctype
                                                      0x000011fd __nlocale_changed
                                                      0x000011ff __mlocale_changed
                                                      0x00001201 _PathLocale
                                                      .data 0x00001211 0x22a
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(mallocr.o)
                                                      0x00001419 __malloc_top_pad
                                                      0x0000141f __malloc_max_sbrked_mem
                                                      0x0000141d __malloc_sbrk_base
                                                      0x00001427 __malloc_current_mallinfo
                                                      0x00001211 __malloc_av_
                                                      0x00001423 __malloc_max_total_mem
                                                      0x00001415 __malloc_trim_threshold
                                                      .data 0x0000143b 0x2
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(sci-inout.o)
                                                      0x0000143b _m68hc12_ports
                                                      *(.data.*)
                                                      *(.data1)
                                                      *(.gnu.linkonce.d.*)
                                                      0x0000143d _edata = .
                                                      0x0000143d PROVIDE (edata, .)
                                                      0x0000143e . = ALIGN (0x2)
                                                      *fill* 0x0000143d 0x1 ffffffff
                                                      0x0000043e __data_section_size = SIZEOF
                                                      (.data)
                                                      0x0000043e PROVIDE
                                                      (__data_section_size, SIZEOF (.data))
                                                      0x00004712 __data_image_end =
                                                      (__data_image + __data_section_size)

                                                      .bss 0x0000143e 0xe
                                                      0x0000143e __bss_start = .
                                                      *(.softregs)
                                                      .softregs 0x0000143e 0x6
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_min.o)
                                                      0x0000143e _.tmp
                                                      0x00001442 _.xy
                                                      0x00001440 _.z
                                                      .softregs 0x00001444 0x2
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/m68hc12/mshort/libgcc.a(_regs_frame.o)
                                                      0x00001444 _.frame
                                                      *(.sbss)
                                                      *(.scommon)
                                                      *(.dynbss)
                                                      *(.bss)
                                                      .bss 0x00001446 0x2
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(findfp.o)
                                                      .bss 0x00001448 0x2
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libbcc.a(syscalls.o)
                                                      *(.bss.*)
                                                      *(.gnu.linkonce.b.*)
                                                      *(COMMON)
                                                      COMMON 0x0000144a 0x2
                                                      /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/../../../../m68hc11/lib/m68hc12/mshort/libc.a(reent.o)
                                                      0x0 (size before relaxing)
                                                      0x0000144a errno

                                                      =================================================================
                                                    • Jefferson Smith
                                                      ... BTW that -Map crashes your linker before finishing the map output, so it s not very useful. I d use m68hc12-objdump for most. Size varies for example when
                                                      Message 26 of 30 , Nov 20, 2006
                                                        --- In gnu-m68hc11@yahoogroups.com, "oliveira_pedro"
                                                        <oliveira_pedro@...> wrote:
                                                        > I changed in memory.x the leght to 0x8000 to but still the same
                                                        > to do the same type of error!

                                                        BTW that -Map crashes your linker before finishing the map output, so
                                                        it's not very useful. I'd use m68hc12-objdump for most.

                                                        Size varies for example when you use a different GCC release. The fact
                                                        remains, if it's too big you'll either have to reduce the code needed,
                                                        or increase the memory to fit it.

                                                        Eventually increasing the text region length would work, EXCEPT it
                                                        will only prove how much memory you need. It cannot be loaded into
                                                        Flash because there is not that much linear Flash. The way to use more
                                                        Flash is to use memory banks. I have not done it for libc. Maybe
                                                        someone has success using floating point routines, but it is not easy.
                                                        Maybe you could make (or find) FP routines that are aware of banks.

                                                        I suggest you try to remove all floating point requirements. What you
                                                        really want in your 'hello world' is to represent fractions, not
                                                        floating point. That can be done with integers and is good to learn
                                                        for all small MCU.


                                                        > collect2: ld terminated with signal 11 [Segmentation fault]

                                                        The Segmentation fault is caused by the -Map bug


                                                        > /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/
                                                        > ../../../../m68hc11/bin/ld:
                                                        > region text is full (hello.elf section .text)
                                                        > /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/
                                                        > ../../../../m68hc11/bin/ld:
                                                        > section .rodata [00004000 -> 000042d3] overlaps section .text
                                                        > [00004000 -> 00010679]
                                                        > /usr/lib/gcc-lib/m68hc11/3.3.5-m68hc1x-20050515/
                                                        > ../../../../m68hc11/bin/ld:
                                                        > section .data [000042d4 -> 00004711] overlaps section
                                                        > .text [00004000 -> 00010679]
                                                        > make: *** [hello.elf] Error 1

                                                        Now you can calculate LENGTH needed:
                                                        .rodata = (0x42d4 - 0x4000)
                                                        .data = (0x4712 - 0x42d4)
                                                        .text = (0x1067a - 0x4000)
                                                      Your message has been successfully submitted and would be delivered to recipients shortly.