S32DS_power gcc lib issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32DS_power gcc lib issue

941 Views
b51447
NXP Employee
NXP Employee

I use the S32DS_power v1.1 and v1.2 to new a project of MPC5606B. However, there are different in the .map files. The v1.2 project add the libgcc, crtbegin, crtend etc. library in the .text and .init file, while the v1.1 project does not have it.

Could you please help to explain this issue? Customer concerns that it will increase the size of the .init and .text sections. And it is the black box for customer.

Original Attachment has been moved to: MPC5606B_TEST_V1.2.zip

Original Attachment has been moved to: MPC5606B_TEST_V1.1.zip

Original Attachment has been moved to: MPC5606B_TEST_V1.2.map.zip

Original Attachment has been moved to: MPC5606B_TEST_V1.1.map.zip

Labels (1)
0 Kudos
2 Replies

655 Views
stanish
NXP Employee
NXP Employee

Hello,

S32DS power v1.2 includes the new version of gcc which is now fully EABI compliant (in contrast to previous versions).

HOWTO: Migrate project created in S32DS Power v1.x into v1.2+ 

There are new mandatory linker sections required which are btw. also present  in GCC version for ARM.

If these sections and related initialization routines are missing it basically causes some EABI compliance issues:

Constructors of Global Variables Are Not Being Called 

newlib and standard c++ library 

Therefore an extra code to preform global object initialization (e.g. Constructor/Destructor init) which applies to both C and C++ project has been added. This is a static code size that doesn't grow with the project.

Several sections are just placeholders for C++ projects and has zero size for C project (.fini_array, init_array ... sections) so you don't have to worry about the code size.

Hope it  helps

Stan

0 Kudos

655 Views
b51447
NXP Employee
NXP Employee

Hi, Stanislav,

Thanks for your reply. It is very useful for us.

Could you please help to explain each of the crtbegin, crtend, libgcc, ecrti, ecrtn files used for? Or any document for us to study?

Customer also have a question that if they can put the static code together in the end of the code?If yes, How to do it?

Thank you,

Best Regards,

Remi

0 Kudos