LPCXpresso vs Keil IDE

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

LPCXpresso vs Keil IDE

2,995 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Karthik Venkatesh on Fri Dec 11 01:39:28 MST 2015
Hi,

Currently we are using Keil IDE and we would like to move to LPCXpresso since the free version itself supports 256KB code size, whereas Keil supports only 32KB.

But before that, I wanted to compare the code density i.e how much code size difference when building in keil and LPCXpresso.

I am aware that LPCXpresso uses --gc-sections optimization which helps reduce the code size considerably.

Similarly I tried playing with different Optimization levels like -O0,O1,O2,O3 etc.

But what I would like to have is a concrete proof that there will not be >5% code size variation between these two IDEs.

For that ideally I could like to have two exact same projects - one in keil and other in lpcxpresso. Build them and see the difference.

Is it possible ? Has this been done before ?

Please help, for it could help us immensely.


Thanks and regards,
Karthik
0 Kudos
Reply
6 Replies

2,378 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by rocketdawg on Fri Dec 11 10:34:49 MST 2015
You will have to look at the map files generated by both tools to get a real picture of the code size.
Just comparing the binary files is not good enough because of library differences and startup code,
which will be a real minor difference in a large project
0 Kudos
Reply

2,378 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by lpcxpresso-support on Fri Dec 11 06:28:24 MST 2015
What I suspect R2D2 is suggesting is that you have modified the build options for the Debug build of the main application project, but not those of the chip and board libraries that the application project links with.

But to be honest changing those as well is probably not what you want to do. You should instead change to build the "Release" Configuration of all of the projects. How to do this is described in

https://www.lpcware.com/content/faq/lpcxpresso/change-build-config

For background information, you might also want to look at the optimisation FAQ too :

https://www.lpcware.com/content/faq/lpcxpresso/compiler-optimization

But I also strongly suggest that you read the LPCXpresso IDE User Guide provided within the product itself. And watch the videos on the LPCzone youtube channel, starting with the "Rapid Embedded Development" one available via - https://www.lpcware.com/lpcxpresso

Regards,
LPCXpresso Support
0 Kudos
Reply

2,378 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Karthik Venkatesh on Fri Dec 11 05:21:44 MST 2015
Hi,

So do you mean, using lpcxpresso it is difficult to achieve the code size of Keil's ???


Regards,
Karthik
0 Kudos
Reply

2,378 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by R2D2 on Fri Dec 11 04:30:53 MST 2015

Quote: Karthik Venkatesh
Why there is this much difference ?



Optimization (of project and of all included libraries), library type and debug settings in board library  :O 
0 Kudos
Reply

2,378 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Karthik Venkatesh on Fri Dec 11 03:51:44 MST 2015
Hi,

As you said, I tried building the periph_blinky project from LPCOpen on both Keil and LPCxpresso and attached is the result:

periph_blinky on keil :-
Program Size: Code=1436     RO-data=236      RW-data=8      ZI-data=512 

periph_blinky on lpcx:- 
text         data    bss    dec    hexfilename
7612      0    472   8084   1f94periph_blinky.axf

So 1436 vs 7612 is the flash code size diff approximately.

I made sure the optimization levels are same.

Am using ubuntu as OS.


Why there is this much difference ?


Regards,
Karthik
0 Kudos
Reply

2,378 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by vtw.433e on Fri Dec 11 02:17:49 MST 2015
You can do this yourself by using any of the LPCOpen examples - they are provide for Keil, IAR and LPCXpresso. When comparing, make sure you compare like with like (i.e the same optimization levels etc).

I think you will find that GCC is pretty close to ARMCC - sometimes better, sometimes worse, but generally close.
0 Kudos
Reply