LPCXpresso vs Keil IDE

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

LPCXpresso vs Keil IDE

2,993 次查看
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 项奖励
回复
6 回复数

2,376 次查看
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 项奖励
回复

2,376 次查看
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 项奖励
回复

2,376 次查看
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 项奖励
回复

2,376 次查看
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 项奖励
回复

2,376 次查看
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 项奖励
回复

2,376 次查看
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 项奖励
回复