Author: robhamerling
Date: Thu Mar 19 13:12:45 2009
New Revision: 871

Modified:
    trunk/doc/html/devicefiles.html

Log:

  Added chapter about Compiler Requirements and how device files handle
  exceptional situations.
  Currently only memory allocation issues are described. More info may be  
added later
  when discussions arise on Jallist or Jallib.



Modified: trunk/doc/html/devicefiles.html
==============================================================================
--- trunk/doc/html/devicefiles.html     (original)
+++ trunk/doc/html/devicefiles.html     Thu Mar 19 13:12:45 2009
@@ -595,6 +595,46 @@

  <hr>

+<h2>Compiler requirements</h2>
+
+<p>The compiler - at the moment of this writing version 2.4j - has a
+number of requirements for device specifications.
+The most important from a user perspective are the following:
+
+<h3>Memory allocation</h3>
+<p>The device files specify the amounts of available shared and unshared
+memory (RAM, gpr) in bytes.
+<p>For user program memory (variables, constants) the compiler allocates
+memory first in unshared RAM then in shared RAM.
+Some specific compiler 'internally' used bytes can be and should
+be allocated in shared RAM for optimum performance.
+<br>For the compiler 'shared' means: accessible in all banks.
+Memory which is accessible in more than one bank but not in all
+is declared as unshared RAM.
+<p>Most PICS have both shared and unshared RAM and then there is no
+issue, but some PICs have only shared memory while some others have no
+shared memory at all.
+This complication is solved in the device files as follows:
+<ul>
+<li>For PICs with <b>only shared</b> memory all memory is declared as
+unshared, except for the compiler-required bytes.
+Examples: 12F675, 16F676, 16F873A.
+<li>For PICs with <b>only unshared</b> memory the compiler-required
+bytes are declared in unshared memory (upper address limit)
+Examples: 10Fs, 16f54, 16F74.
+</ul>
+
+<p>The compiler supports a maximum of 4 memory banks for baseline and
+midrange PICs.
+When a PIC has more memory banks the device file declares only 4 of
+these, memory in the other banks is unusable.
+Example: 16F59.
+
+
+<h3>Analog modules</h3>
+<p>(to be done)
+
+
  <h2>Miscellaneous</h2>

  <p>These device files are part of the central JalV2 repository 'Jallib'
@@ -607,7 +647,7 @@

  <ul>

-<li>Bank switching functions are not needed with JalV2 and do not appear in
+<p>Bank switching functions are not needed with JalV2 and do not appear in
  the device files.
  This may cause compile-time errors when using programs or libraries which
  still use these procedures.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/jallib?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to