ARM Overview: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
Pancakes (talk | contribs)
m fixed link and added new link
Pancakes (talk | contribs)
Line 249:
==Coding Gotchas==
===== Missing Division Functions (__aeabi_uidivmod, __aeabi_idiv) / No Division Support =====
This is caused by using GCC and not linking with ''libgcc''. YouIt mustis also''highly'' makerecommended surethat you uselink thewith ''libgcc'' thatwhen hasusing beenGCC. compiledFor forinformation yourabout targetwhy machine/architecture/platform.you Seeshould [[Libgcc]] forlink moreand information. Youabout can produce''libgcc'', theread correct library for GCC by[[Libgcc]] readingand [[GCC_Cross-Compiler]].
 
You must also make sure you use the ''libgcc'' that has been compiled for your target machine/architecture/platform. See [[Libgcc]] for more information. You can produce the correct library for GCC by reading [[GCC_Cross-Compiler]].
 
This issue is actually complicated because different CPUs may not support hardware division, support it only through the floating point operations, in thumb mode, in native mode, or a combination. Also, in certain situations you may find it faster or more compact to use different methods because you may be interested in code size or performance. Normally, ''libgcc'' will handle all of these situations and provide the needed symbols, however here are some various sources of information that can give you a more in-depth understanding: