<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/27927/need-a-compiler-which-can-support-code-size-upto-128kb</link><description> 
Hello. my name is santosh. i need some help in selecting a
compiler. i am developing an embedded application which is crossing
64KB code size and i am using AT89C51RE2 microcontroller which is
having (will support) 128 Kbytes of on-chip ROM (code memory</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/144977?ContentTypeID=1</link><pubDate>Tue, 19 Oct 2010 06:29:13 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:57955f74-adfb-46cc-830c-f5558f4ef143</guid><dc:creator>&amp;#178;erik malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
before we go on, where are you? can you fit it in 68k, in 72k in
100k ....&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/142740?ContentTypeID=1</link><pubDate>Tue, 19 Oct 2010 04:13:24 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:c90902f1-c350-4407-a34d-38a9e3a03937</guid><dc:creator>Per Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
Declaring variables as xdata makes the code bigger.&lt;/p&gt;

&lt;p&gt;
So you want variables what are large or used at few locations to
be stored in xdata, while the small and popular variables uses the
best possible addressing modes.&lt;/p&gt;

&lt;p&gt;
And you want to make sure that you use bit variables when
possible.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/139741?ContentTypeID=1</link><pubDate>Tue, 19 Oct 2010 00:49:20 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:28eacb75-975b-42d7-ba89-fdde6c5c9369</guid><dc:creator>santosh martha</dc:creator><description>&lt;p&gt;&lt;p&gt;
Yes, u all are right.&lt;/p&gt;

&lt;p&gt;
i have done these types of optimizations in my code like --- using
small memory model, declaring variables with &amp;#39;xdata&amp;#39;, and most
important i didn&amp;#39;t used even a single &amp;#39;printf&amp;#39; statement in my
code.&lt;/p&gt;

&lt;p&gt;
santosh.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/136290?ContentTypeID=1</link><pubDate>Mon, 18 Oct 2010 14:35:32 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:1054b239-5427-45b1-a1ac-0881f15086ea</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;&amp;quot;each with 10-50 characters of text.&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
That&amp;#39;s where putting the constants into XDATA-mapped ROM really
helps...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/136298?ContentTypeID=1</link><pubDate>Mon, 18 Oct 2010 13:43:59 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:fffc2687-686d-4ecd-83ff-8c8689288294</guid><dc:creator>&amp;#178;erik malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
if (s)he is at, say 68k there are many (easy) means, if he is at
120k drastic measures will be needed (and probably not be sufficient,
although I have done &amp;gt;50% code reductions)&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/126463?ContentTypeID=1</link><pubDate>Mon, 18 Oct 2010 13:23:26 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:016c5e04-c03a-45ba-a625-e65b95b021ed</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
It&amp;#39;s probably not the size of printf() that is important - but if
the code contains hundreds of printouts - each with 10-50 characters
of text.&lt;/p&gt;

&lt;p&gt;
If I need printouts, I often use tokenized prints, and use a
postprocessor that scans the data and expands it into readable
messages again. This both saves code space and required
bandwidth.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/119083?ContentTypeID=1</link><pubDate>Mon, 18 Oct 2010 13:04:00 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:8e0b03f7-f55e-4b91-ab0b-e90d12876edf</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
Of course it will. But, &lt;i&gt;out of a 64K application&lt;/i&gt;, it will
not save a &lt;b&gt;significant&lt;/b&gt; amount of code (less than 2K).&lt;/p&gt;

&lt;p&gt;
Changing from Large to Small memory model could make a significant
difference - as it is liekly to affect a very large number of
variable access...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/104324?ContentTypeID=1</link><pubDate>Mon, 18 Oct 2010 12:18:59 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:da93bcf1-78c4-4725-925e-5129ef688d78</guid><dc:creator>&amp;#178;erik malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
I have, most often seen &amp;#39;application&amp;#39;, when talking small
embedded, applied to ALL the code.&lt;/p&gt;

&lt;p&gt;
Getting rid of printf() etc WILL save codespace (in 99% of cases)
going &amp;#39;small&amp;#39; WILL save codespace compared to &amp;#39;large&amp;#39;. There are more
ways than these, but the main point is:&lt;br /&gt;
&amp;quot;the &amp;#39;51 ain&amp;#39;t no PC&amp;quot;&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/90673?ContentTypeID=1</link><pubDate>Mon, 18 Oct 2010 11:13:50 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:f1c340f4-577c-4b83-bb0f-c6828b3b9e4b</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
Not in terms of a &amp;gt;64K application, it won&amp;#39;t!&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;&amp;quot;changing &amp;#39;standard C&amp;#39; to &amp;#39;architure aware C&amp;#39; can do
much&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
Indeed.&lt;/p&gt;

&lt;p&gt;
See: &lt;a href="http://www.keil.com/support/man/docs/c51/c51_xc.htm"&gt;http://www.keil.com/support/man/docs/c51/c51_xc.htm&lt;/a&gt;
for starters...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/58767?ContentTypeID=1</link><pubDate>Mon, 18 Oct 2010 03:59:32 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:baed01ff-cad2-49c9-acce-dcc53615de7c</guid><dc:creator>&amp;#178;erik malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;i am developing an embedded application which is crossing 64KB
code size&lt;/i&gt;&lt;br /&gt;
have you considered &amp;#39;slimming&amp;#39; the code? e.g. getting rid of printf()
etc will gain a considerable amount of space. Also changing &amp;quot;standard
C&amp;quot; to &amp;quot;architure aware C&amp;quot; can do much. Of course, if you are using
the large model, the solution may be right there.&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/104323?ContentTypeID=1</link><pubDate>Mon, 18 Oct 2010 00:31:14 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:a7889ec2-2f12-48aa-ab6b-7dafb1d408c6</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
It&amp;#39;s great if the hw team thinks they have the hardware up and
running.&lt;/p&gt;

&lt;p&gt;
But one important fact is that smaller microcontrollers have very
low hardware binding - they need power and potentially an external
oscillator. Then most of the rest is basically GPIO signals, or pins
that may be used as UART, SPI, I2C, ...&lt;/p&gt;

&lt;p&gt;
As long as the external signals have the same voltages, it&amp;#39;s quite
easy to keep most of the external electronics but to slap in a
different processor. People don&amp;#39;t tape their PCB anymore, so they
don&amp;#39;t need to start from scratch with the hw design. Just make sure
that the dedicated pins gets correctly allocated to whatever special
hardware there are on the board.&lt;/p&gt;

&lt;p&gt;
The big issue - who did the prestudy that resulted in the
selection of the current processor? Anyone did a serious attempt at
guestimating memory needs? And having two teams means that the sw
developer(s) can start to program long before there is hardware. That
should quickly show if the software grows in a dangerous way in
regards to variable or code space. The only factor that may be hard
to figure out beforehand is the CPU speed needed. But the Keil
simulator can help out greatly there.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/90672?ContentTypeID=1</link><pubDate>Sun, 17 Oct 2010 23:56:51 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:0c9b2724-b111-4359-aeae-45279f447d0b</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
No, I didn&amp;#39;t say that!&lt;/p&gt;

&lt;p&gt;
I said that it&amp;#39;s something to which you should give serious
consideration, but I very carefully didn&amp;#39;t say that it was an
absolute necessecity!&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;&amp;quot;it is not possible to change hardware b&amp;#39;coz i am working under
an organization and developing the application officially&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
The fact that it&amp;#39;s a commercial development is not a reason not to
do it!&lt;br /&gt;
In fact, precisely &lt;i&gt;because&lt;/i&gt; it&amp;#39;s a commercial development,
someone in the organisation needs to carefully consider how muach it
is going to cost the organisation - in terms of development time,
added complexity, etc, etc...&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;&amp;quot;it is not possible to change hardware design, b&amp;#39;coz we have
seperate hardware design team&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
Again, that does not follow!&lt;br /&gt;
If you have a separate hardware team then, surely, it is their job to
develop appropriate hardware?!&lt;/p&gt;

&lt;p&gt;
Again, someone in the organisation needs to take an overview on
this - it would be stupid to &amp;quot;save&amp;quot; &lt;i&gt;(sic)&lt;/i&gt; one man-week of
hardware time at the cost of two man-weeks of software time!!&lt;br /&gt;
(those are just random example figures - I&amp;#39;m not saying they actually
relate to this issue).&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;&amp;quot; i feel compiler/IDE is the only tool which resolve this issue
for current version&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
You may be right - but you (or someone in your organisation)
really need to do a proper analysis to be sure!&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;&amp;quot;suggest me a good compiler which can support &amp;gt;64Kbytes of
code&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
If you ask on the &lt;b&gt;Keil&lt;/b&gt; forum, there&amp;#39;s obviously only going
to be one answer here, isn&amp;#39;t there?!!&lt;/p&gt;

&lt;p&gt;
You have already been given that answer!&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/58775?ContentTypeID=1</link><pubDate>Sun, 17 Oct 2010 22:55:22 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:0348050e-1fc2-4112-a078-e55fb0e7baf5</guid><dc:creator>santosh martha</dc:creator><description>&lt;p&gt;&lt;p&gt;
hello all. thanks for your valuable suggestions. and i am sorry,
that i could not respond u all immediately b&amp;#39;coz i was out of town in
past 3 days.&lt;br /&gt;
ok, coming to subject, from your words, i understood that i have to
replace existing architecture with new microcontroller which can
support &amp;gt;64Kytes.&lt;br /&gt;
but it is not possible to change hardware b&amp;#39;coz i am working under an
organization and developing the application officially. ofcourse i
will consider your suggestions and i am planning implement it for
next version of our application (project).&lt;br /&gt;
but for the current version, it is not possible to change hardware
design, b&amp;#39;coz we have seperate hardware design team and it is already
brought up into PCB board and some other sections of application are
working on this hardware PCB.&lt;br /&gt;
so, finally i feel compiler/IDE is the only tool which resolve this
issue for current version of my application. so, plz if possible
suggest me a good compiler which can support &amp;gt;64Kbytes of
code.&lt;/p&gt;

&lt;p&gt;
thanks and regards,&lt;br /&gt;
santosh.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/126458?ContentTypeID=1</link><pubDate>Fri, 15 Oct 2010 00:07:41 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:e2180bf2-6614-4fa2-b01b-28d0a227fe6d</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
It&amp;#39;s not a question of whether the processor is &amp;quot;good&amp;quot; or &amp;quot;bad&amp;quot; as
such.&lt;/p&gt;

&lt;p&gt;
The question is whether an 8051-based processor is an
&lt;i&gt;&lt;b&gt;appropriate&lt;/b&gt;&lt;/i&gt; choice for this project.&lt;/p&gt;

&lt;p&gt;
As already noted, the OP is fighting the specific limitations of
the architecture; so it is certainly worth considering whether using
a different architecture - which does not have those limitations -
would be a better idea...&lt;/p&gt;

&lt;p&gt;
See: &lt;a href="http://www.8052.com/forum/read/158656"&gt;www.8052.com/.../158656&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
Especially as the OP, apparently, doesn&amp;#39;t have the necessary tools
anyhow...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/116075?ContentTypeID=1</link><pubDate>Thu, 14 Oct 2010 23:55:21 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:51223405-c41d-4cd4-86e0-dcb232ce2726</guid><dc:creator>Steffen Rose</dc:creator><description>&lt;p&gt;&lt;p&gt;
martha search compiler hints, not a good/bad processor discussion,
I think.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/104325?ContentTypeID=1</link><pubDate>Thu, 14 Oct 2010 14:58:30 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:da4f2a57-f170-44e8-9fb2-f40456e6493f</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;&amp;quot;128K bytes On-chip Flash Program/Data Memory&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
Note the &amp;quot;program/&lt;b&gt;data&lt;/b&gt;&amp;quot; in that.&lt;/p&gt;

&lt;p&gt;
One thing that the PK51 kit gives you is the ability to move
constant data out of CODE space and into ROM mapped as XDATA. That
means that you can make full use of the 64K CODE space limit without
having to mess about with code banking.&lt;/p&gt;

&lt;p&gt;
I was using that about ten years ago when there were very few
ARM-based microcontrollers about (certainly no Cortex-M), and they
were a significant leap from an 8051.&lt;/p&gt;

&lt;p&gt;
Nowadays, I really wonder if it&amp;#39;s worth it...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/90671?ContentTypeID=1</link><pubDate>Thu, 14 Oct 2010 12:37:16 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:8b46424b-16bc-4dee-806a-620b89e78a61</guid><dc:creator>&amp;#178;erik malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;a href="http://www.atmel.com/dyn/resources/prod_documents/doc7663.pdf"&gt;www.atmel.com/.../doc7663.pdf&lt;/a&gt;
:&lt;/p&gt;

&lt;p&gt;
128K bytes On-chip Flash Program/Data Memory&lt;br /&gt;
&amp;ndash; 128 bytes Page Write with auto-erase&lt;/p&gt;

&lt;p&gt;
I do not know about the Arghmel chips, but the SILabs 128k flash
derivatives have a free paging support available for Keil software.
Obviously the standard Keil Paging does not work for &amp;gt;64k
&lt;b&gt;internal&lt;/b&gt; flash.&lt;/p&gt;

&lt;p&gt;
Anyhow I agree that with the chips available today it is almost
ridiculous to use a &amp;#39;51 if 64k is not enough.&lt;/p&gt;

&lt;p&gt;
Now, before the flames begin, please note &amp;#39;alomst&amp;#39; in the above
sentence.&lt;/p&gt;

&lt;p&gt;
Erik&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/65960?ContentTypeID=1</link><pubDate>Thu, 14 Oct 2010 11:38:02 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:3603dc84-ae9e-48bb-b9d8-9e2cdf003430</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
I&amp;#39;m sure an AT89C51RE2 does not, and can not, have 128 Kbytes of
&lt;i&gt;&lt;b&gt;on-chip&lt;/b&gt;&lt;/i&gt; ROM !!&lt;/p&gt;

&lt;p&gt;
You do understand that the 64K limit is an inherent linitation of
the 8051 architecture, don&amp;#39;t you?&lt;/p&gt;

&lt;p&gt;
SO using &amp;gt;64K means that you will have to mess about with
&lt;b&gt;Banking&lt;/b&gt; (aka &amp;quot;paging&amp;quot;).&lt;/p&gt;

&lt;p&gt;
Do you really want to do that?&lt;br /&gt;
Would it not be better to find a more suitable architecture for this
size of application?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: need a compiler which can support code size upto 128KB</title><link>https://community.arm.com/thread/58766?ContentTypeID=1</link><pubDate>Thu, 14 Oct 2010 05:44:53 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:f559ec5b-fef4-4562-9231-323d2cc607c9</guid><dc:creator>&amp;#178;erik malund</dc:creator><description>&lt;p&gt;&lt;p&gt;
PK51 Professional Developer&amp;#39;s Kit&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>