<?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>MicroLIB advantages and limitations?</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/43131/microlib-advantages-and-limitations</link><description> 
In the Target-Options dialogue there is the possibility to use
 MicroLIB . Unfortunately I was unable to find details about
this LIB. Can anybody tell what the main advantages of this lib are
and what are the limitations? The only information I found</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: MicroLIB advantages and limitations?</title><link>https://community.arm.com/thread/104366?ContentTypeID=1</link><pubDate>Tue, 02 Nov 2010 07:29:54 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:bb4c3ab9-d3e8-4782-a883-7092573eaf67</guid><dc:creator>Per Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;I wonder why it&amp;#39;s slower?&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
My guess is that the memcpy() function that they take as an
example of a slower function just copies byte for byte.&lt;/p&gt;

&lt;p&gt;
A good memcpy() does one or more byte copies until the data is
perfectly aligned, and then runs 16-bit, 32-bit or maybe 64-bit loops
before finally doing some optional odd bytes at the end of the
transfer. This obviously makes the code larger.&lt;/p&gt;

&lt;p&gt;
strstr() is also a function where you can look for a string by
matching the start of the needle with current position, or instead
optimize by matching the last character of needle and possibly be
able to step many steps in case of a failed match.&lt;/p&gt;

&lt;p&gt;
Lots of RTL functions can be written to be either small or smart,
depending on goal.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MicroLIB advantages and limitations?</title><link>https://community.arm.com/thread/104361?ContentTypeID=1</link><pubDate>Tue, 02 Nov 2010 07:08:27 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:50be3655-fc24-44c7-b70c-286b3d240fcf</guid><dc:creator>Fuchs Leonhard</dc:creator><description>&lt;p&gt;&lt;p&gt;
Thank you for the links!&lt;/p&gt;

&lt;p&gt;
Better to find &amp;quot;kind of sloppy&amp;quot; documentation than to don&amp;#39;t know
jack. But I aggree C51/C166 is suggestive to be documented more
assiduously.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MicroLIB advantages and limitations?</title><link>https://community.arm.com/thread/90699?ContentTypeID=1</link><pubDate>Tue, 02 Nov 2010 06:55:23 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:d972a944-264b-4e76-a2d0-191d517df901</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;&amp;quot;Some library functions are also slower, for example,
memcpy().&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.keil.com/support/man/docs/armlib/armlib_BAJHFADD.htm"&gt;http://www.keil.com/support/man/docs/armlib/armlib_BAJHFADD.htm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
I wonder why it&amp;#39;s slower? And by how much? And what other
functions are also slower?&lt;/p&gt;

&lt;p&gt;
This really isn&amp;#39;t the kind of sloppy documentation that one would
hope for from the likes of Keil/ARM...&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;:-(&lt;/b&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MicroLIB advantages and limitations?</title><link>https://community.arm.com/thread/58846?ContentTypeID=1</link><pubDate>Tue, 02 Nov 2010 06:44:59 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:a2b24415-9bad-4e3d-b57e-965aee9c7ed0</guid><dc:creator>Mike Kleshov</dc:creator><description>&lt;p&gt;&lt;p&gt;
I am guessing you have seen this:&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.keil.com/support/man/docs/armlib/armlib_bajfhfdi.htm"&gt;http://www.keil.com/support/man/docs/armlib/armlib_bajfhfdi.htm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;Where can I find the documentation with details when I should
use the lib and when better keep my hand off of it&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
The answer to this question can be found through the link above.
In short, microlib is there to save memory at the expense of
execution speed and some features.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>