EmbeddedRelated.com
Forums

Re: C++ and CrossWorks for ARM

Started by Milos Prokic February 14, 2004
Hi Michael,

Thanks. I think I should be able to get away without the missing components. I'm getting now the following message from the linker:

"cyclic memory section dependency with section .fast_run ". I have declared
2 classes where one is inherited.

Thanks a million,

Cheers,

m.
_____

From: Michael Johnson [mailto:]
Sent: Monday, February 14, 2005 2:06 AM
To:
Subject: Re: [lpc2000] C++ and CrossWorks for ARM
Hi Milos,

It should just work - note that CrossWorks for ARM currently doesn't
support full C++. There are no exceptions, rtti, iostreams or STL as
yet. Which symbols are you missing?

Regards
Michael

>Hi,
>
>I'm working on this project and I'm using CW for ARM. I'm at the stage
where
>I have to implement more advanced concepts than drivers. I would like to do
>some of them in C++, but I'm having some problems getting the code to link.
>I would assume it's due to some missing labels/definitions. (I do see that
>.ctors / .dtors exist in the memory placement file).
>
>I was just wondering if someone has been using C++ with CW and has a
>"precooked" way of getting programs to link/compile.
>
>Thanks in advance,
>
>m. >
>
>> Terms of Service.



Re: C++ and CrossWorks for ARM

An Engineer's Guide to the LPC2100 Series

Michael,
Thanks for the quick reply.
I did change the section placement file, a bit, to tweak it towards my
needs. I attached it if you can give it a quick look.
I do not quite understand what you mean by saving it twice... What is the
section .fast_run used in this case?
Thanks,
m.

________________________________________
From: Michael Johnson [mailto:]
Sent: Monday, February 14, 2005 11:14 AM
To:
Subject: Re: [lpc2000] C++ and CrossWorks for ARM

Hi Milos,

Did you modify the section_placement file - there's a howler of a bug
(one of mine) that requires the section placement editor to save twice
to maintain the section order.

Regards
Michael

>Hi Michael,
>
>Thanks. I think I should be able to get away without the missing
components.
>
>
>I'm getting now the following message from the linker:
>
>"cyclic memory section dependency with section .fast_run ". I have declared
>2 classes where one is inherited.
>
>Thanks a million,
>
>Cheers,
>
>m. >
> _____
>
>From: Michael Johnson [mailto:]
>Sent: Monday, February 14, 2005 2:06 AM
>To:
>Subject: Re: [lpc2000] C++ and CrossWorks for ARM >
>Hi Milos,
>
>It should just work - note that CrossWorks for ARM currently doesn't
>support full C++. There are no exceptions, rtti, iostreams or STL as
>yet. Which symbols are you missing?
>
>Regards
>Michael
>
>
>
>>Hi,
>>
>>I'm working on this project and I'm using CW for ARM. I'm at the stage
>>
>>
>where
>
>
>>I have to implement more advanced concepts than drivers. I would like to
do
>>some of them in C++, but I'm having some problems getting the code to
link.
>>I would assume it's due to some missing labels/definitions. (I do see that
>>.ctors / .dtors exist in the memory placement file).
>>
>>I was just wondering if someone has been using C++ with CW and has a
>>"precooked" way of getting programs to link/compile.
>>
>>Thanks in advance,
>>
>>m.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> Terms of Service. >Yahoo! Groups Links >
>
>
>


________________________________________
Yahoo! Groups Links
To


Hi,

I'm working on this project and I'm using CW for ARM. I'm at the stage where
I have to implement more advanced concepts than drivers. I would like to do
some of them in C++, but I'm having some problems getting the code to link.
I would assume it's due to some missing labels/definitions. (I do see that
.ctors / .dtors exist in the memory placement file).

I was just wondering if someone has been using C++ with CW and has a
"precooked" way of getting programs to link/compile.

Thanks in advance,

m.


Hi Milos,

It should just work - note that CrossWorks for ARM currently doesn't
support full C++. There are no exceptions, rtti, iostreams or STL as
yet. Which symbols are you missing?

Regards
Michael

>Hi,
>
>I'm working on this project and I'm using CW for ARM. I'm at the stage where
>I have to implement more advanced concepts than drivers. I would like to do
>some of them in C++, but I'm having some problems getting the code to link.
>I would assume it's due to some missing labels/definitions. (I do see that
>.ctors / .dtors exist in the memory placement file).
>
>I was just wondering if someone has been using C++ with CW and has a
>"precooked" way of getting programs to link/compile.
>
>Thanks in advance,
>
>m. >
>
>Yahoo! Groups Links >




Hi Milos,

Did you modify the section_placement file - there's a howler of a bug
(one of mine) that requires the section placement editor to save twice
to maintain the section order.

Regards
Michael

>Hi Michael,
>
>Thanks. I think I should be able to get away without the missing components. >I'm getting now the following message from the linker:
>
>"cyclic memory section dependency with section .fast_run ". I have declared
>2 classes where one is inherited.
>
>Thanks a million,
>
>Cheers,
>
>m. >
> _____
>
>From: Michael Johnson [mailto:]
>Sent: Monday, February 14, 2005 2:06 AM
>To:
>Subject: Re: [lpc2000] C++ and CrossWorks for ARM >
>Hi Milos,
>
>It should just work - note that CrossWorks for ARM currently doesn't
>support full C++. There are no exceptions, rtti, iostreams or STL as
>yet. Which symbols are you missing?
>
>Regards
>Michael >
>>Hi,
>>
>>I'm working on this project and I'm using CW for ARM. I'm at the stage
>>
>>
>where >>I have to implement more advanced concepts than drivers. I would like to do
>>some of them in C++, but I'm having some problems getting the code to link.
>>I would assume it's due to some missing labels/definitions. (I do see that
>>.ctors / .dtors exist in the memory placement file).
>>
>>I was just wondering if someone has been using C++ with CW and has a
>>"precooked" way of getting programs to link/compile.
>>
>>Thanks in advance,
>>
>>m.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> Terms of Service. >Yahoo! Groups Links >




Hi Michael,

Thanks. I think I should be able to get away without the missing components. I'm getting now the following message from the linker:

"cyclic memory section dependency with section .fast_run ". I have declared
2 classes where one is inherited.

Thanks a million,

Cheers,

m. _____

From: Michael Johnson [mailto:]
Sent: Monday, February 14, 2005 2:06 AM
To:
Subject: Re: [lpc2000] C++ and CrossWorks for ARM
Hi Milos,

It should just work - note that CrossWorks for ARM currently doesn't
support full C++. There are no exceptions, rtti, iostreams or STL as
yet. Which symbols are you missing?

Regards
Michael

>Hi,
>
>I'm working on this project and I'm using CW for ARM. I'm at the stage
where
>I have to implement more advanced concepts than drivers. I would like to do
>some of them in C++, but I'm having some problems getting the code to link.
>I would assume it's due to some missing labels/definitions. (I do see that
>.ctors / .dtors exist in the memory placement file).
>
>I was just wondering if someone has been using C++ with CW and has a
>"precooked" way of getting programs to link/compile.
>
>Thanks in advance,
>
>m. >
>
>> Terms of Service.


Michael,

Thanks for the quick reply.

I did change the section placement file, a bit, to tweak it towards my
needs. I attached it if you can give it a quick look.

I do not quite understand what you mean by saving it twice... What is the
section .fast_run used for in this case?

Thanks,

m.

_____

From: Michael Johnson [mailto:]
Sent: Monday, February 14, 2005 11:14 AM
To:
Subject: Re: [lpc2000] C++ and CrossWorks for ARM
Hi Milos,

Did you modify the section_placement file - there's a howler of a bug
(one of mine) that requires the section placement editor to save twice
to maintain the section order.

Regards
Michael

>Hi Michael,
>
>Thanks. I think I should be able to get away without the missing
components.
>
>
>I'm getting now the following message from the linker:
>
>"cyclic memory section dependency with section .fast_run ". I have declared
>2 classes where one is inherited.
>
>Thanks a million,
>
>Cheers,
>
>m. >
> _____
>
>From: Michael Johnson [mailto:]
>Sent: Monday, February 14, 2005 2:06 AM
>To:
>Subject: Re: [lpc2000] C++ and CrossWorks for ARM >
>Hi Milos,
>
>It should just work - note that CrossWorks for ARM currently doesn't
>support full C++. There are no exceptions, rtti, iostreams or STL as
>yet. Which symbols are you missing?
>
>Regards
>Michael >
>>Hi,
>>
>>I'm working on this project and I'm using CW for ARM. I'm at the stage
>>
>>
>where >>I have to implement more advanced concepts than drivers. I would like to
do
>>some of them in C++, but I'm having some problems getting the code to
link.
>>I would assume it's due to some missing labels/definitions. (I do see that
>>.ctors / .dtors exist in the memory placement file).
>>
>>I was just wondering if someone has been using C++ with CW and has a
>>"precooked" way of getting programs to link/compile.
>>
>>Thanks in advance,
>>
>>m.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>> Terms of Service. >> Terms of Service.



Re: C++ and CrossWorks for ARM
Hi Milos,

Just edit the flash_placement.xml file and press the save button again.

The section .fast_run can be used to put code into RAM. So for example
if you want do IAP then those functions should be placed in the
.fast_run section.

Regards
Michael

> Michael,
>
> Thanks for the quick reply.
>
> I did change the section placement file, a bit, to tweak it towards my
> needs. I attached it if you can give it a quick look.
>
> I do not quite understand what you mean by saving it twice... What is
> the section .fast_run used for in this case?
>
> Thanks,
>
> m. >
> *From:* Michael Johnson [mailto:]
> *Sent:* Monday, February 14, 2005 11:14 AM
> *To:*
> *Subject:* Re: [lpc2000] C++ and CrossWorks for ARM >
> Hi Milos,
>
> Did you modify the section_placement file - there's a howler of a bug
> (one of mine) that requires the section placement editor to save twice
> to maintain the section order.
>
> Regards
> Michael
>
>>Hi Michael,
>>
>>Thanks. I think I should be able to get away without the missing
> components.
>>
>>
>>I'm getting now the following message from the linker:
>>
>>"cyclic memory section dependency with section .fast_run ". I have
> declared
>>2 classes where one is inherited.
>>
>>Thanks a million,
>>
>>Cheers,
>>
>>m.
>>
>>
>>
>> _____
>>
>>From: Michael Johnson [mailto:]
>>Sent: Monday, February 14, 2005 2:06 AM
>>To:
>>Subject: Re: [lpc2000] C++ and CrossWorks for ARM
>>
>>
>>
>>Hi Milos,
>>
>>It should just work - note that CrossWorks for ARM currently doesn't
>>support full C++. There are no exceptions, rtti, iostreams or STL as
>>yet. Which symbols are you missing?
>>
>>Regards
>>Michael
>>
>>
>>
>>>Hi,
>>>
>>>I'm working on this project and I'm using CW for ARM. I'm at the stage
>>>
>>>
>>where
>>
>>
>>>I have to implement more advanced concepts than drivers. I would like
> to do
>>>some of them in C++, but I'm having some problems getting the code to
> link.
>>>I would assume it's due to some missing labels/definitions. (I do see
> that
>>>.ctors / .dtors exist in the memory placement file).
>>>
>>>I was just wondering if someone has been using C++ with CW and has a
>>>"precooked" way of getting programs to link/compile.
>>>
>>>Thanks in advance,
>>>
>>>m.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>> Terms of Service.
>>
>>
>>
>>
>>
>>
>>
>>
>>>. >
>
><!DOCTYPE Linker_Placement_File>
><Root name="Flash Section Placement" >
> <MemorySegment name="Internal SRAM;SRAM;SDRAM;DRAM" >
> <ProgramSection size="0x3C" load="No" name=".vectors_ram" />
> <ProgramSection alignment="4" load="No" name=".fast_run" />
> </MemorySegment>
> <MemorySegment name="FLASH" >
> <ProgramSection load="Yes" inputsections="*(.vectors .vectors.*)" name=".vectors" />
> <ProgramSection alignment="4" load="Yes" inputsections="*(.init .init.*)" name=".init" />
> <ProgramSection alignment="4" load="No" name=".text_load" />
> <ProgramSection alignment="4" load="Yes" inputsections="*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.*)" name=".text" />
> <ProgramSection alignment="4" load="Yes" inputsections="KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors))" name=".dtors" />
> <ProgramSection alignment="4" load="Yes" inputsections="KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors))" name=".ctors" />
> <ProgramSection alignment="4" load="Yes" inputsections="*(.rodata .rodata.* .gnu.linkonce.r.*)" name=".rodata" />
> <ProgramSection alignment="4" load="Yes" runin=".fast_run" inputsections="*(.fast .fast.*)" name=".fast" />
> <ProgramSection alignment="4" load="Yes" runin=".data_run" inputsections="*(.data .data.* .gnu.linkonce.d.*)" name=".data" />
> </MemorySegment>
> <MemorySegment name="External SRAM;SRAM;SDRAM;DRAM" >
> <ProgramSection alignment="4" load="No" name=".data_run" />
> <ProgramSection alignment="4" load="No" inputsections="*(.bss .bss.* .gnu.linkonce.b.*) *(COMMON)" name=".bss" />
> <ProgramSection alignment="4" size="0x4" load="No" name=".heap" />
> <ProgramSection alignment="4" size="0x800" load="No" name=".stack" />
> <ProgramSection alignment="4" size="0x400" load="No" name=".stack_irq" />
> <ProgramSection alignment="4" size="0x400" load="No" name=".stack_svc" />
> <ProgramSection alignment="4" size="0x4" load="No" name=".stack_fiq" />
> <ProgramSection alignment="4" size="0x4" load="No" name=".stack_abt" />
> <ProgramSection alignment="4" size="0x4" load="No" name=".stack_und" />
> </MemorySegment>
></Root>
>