<?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>Going Embedded</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/38328/going-embedded</link><description> 
Hey, I&amp;#39;ve been programming higher level laguages writing windows
apps in c++/c# for years now, but increasingly I am being put to work
at a lower level with 8051 micro-controllers. Having a very minimal
background in electronics I have found a lot of</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Going Embedded</title><link>https://community.arm.com/thread/89674?ContentTypeID=1</link><pubDate>Sat, 11 Apr 2009 04:04:00 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:a2193fe0-f982-41d8-b27c-e6f5d6fd1ccf</guid><dc:creator>ImPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
The most important things here:&lt;br /&gt;
- The 8051 has a lousy stack, so the Keil compiler will try to
convert auto variables to global variables.&lt;/p&gt;

&lt;p&gt;
- The automatic conversion of auto variables to global variables
requires that you do not write recursive code.&lt;/p&gt;

&lt;p&gt;
- Using function pointers will destroy the compiler/linker ability
to build call trees to figure out which functions that may call other
functions for the above optimization. So try to avoid function
pointers.&lt;/p&gt;

&lt;p&gt;
- The processor is 8-bit, so don&amp;#39;t create int variables if an
8-bit variable is enough.&lt;/p&gt;

&lt;p&gt;
- The strong point of the processor is one-bit variables, so try
to use one-bit variables for your boolean conditions.&lt;/p&gt;

&lt;p&gt;
- The processor has limited RAM, so make sure that constants are
stored in the code space, i.e. in the flash.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Going Embedded</title><link>https://community.arm.com/thread/55835?ContentTypeID=1</link><pubDate>Sat, 11 Apr 2009 03:47:06 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:7347e0e0-994a-406a-ad82-ddd5b9e3b8ae</guid><dc:creator>Mike Kleshov</dc:creator><description>&lt;p&gt;&lt;p&gt;
Some level of understanding of electronics is required when
working with 8051-based MCU&amp;#39;s. I would recommend the book &amp;#39;The Art of
Electronics.&amp;#39; Very easy to read, excellent for self-teaching. It
might seem like an overkill to you, but you don&amp;#39;t have to read all of
it - it could be used as a reference. There should be some info on
the net, like application notes. Here is one of them:&lt;br /&gt;
&lt;a href="http://www.maxim-ic.com/appnotes.cfm/appnote_number/939/"&gt;www.maxim-ic.com/.../&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
Probably unrelated to the question, but as has been pointed out
many times in this forum, the 8051 architecture is not good at
supporting the C programming language. It has severe limitations. You
need to keep this in mind, especially having extensive background in
PC programming: a PC has virtually unlimited resources compared to a
8051 CPU.&lt;/p&gt;

&lt;p&gt;
Regards,&lt;br /&gt;
- mike&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>