<div dir="ltr"><div dir="ltr"></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 24, 2021 at 10:13 PM Christo Crause <<a href="mailto:christo.crause@gmail.com">christo.crause@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 19, 2021 at 8:52 AM Sven Barth via fpc-devel <<a href="mailto:fpc-devel@lists.freepascal.org" target="_blank">fpc-devel@lists.freepascal.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><br><div dir="auto">It isn't that hard. You essentially need to make sure that the necessary information is written in tpointerdef.ppuwrite and read again in tpointerdef.ppuload. You also need to increase the PPULongVersion in unit ppu and adjust the code in the ppudump utility. </div></div></blockquote><div><br></div><div>Thank you Sven and Jonas, your hints helped me a lot.  For AVR, pointer types can now refer to sections and the compiler can generate appropriate access for pointer parameter types.</div><div><br></div><div>My next challenge is to extend error checking so that call parameters are checked for section incompatibility.  <br></div></div></div></blockquote><div><br></div><div>A quick update:</div><div>By adding section information to type definitions (tdef) and type symbols it is possible to propagate the necessary information via parameters. Now it is possible to write overloaded procedures that handle section information correctly. </div><div><br></div><div>type<br>  Byte_e = type Byte; section '.eeprom';<br><br>procedure writeTest(var a: byte); overload;<br>begin<br>  a := 123;<br>end;<br><br>procedure writeTest(var a: byte_e); overload;<br>begin<br>  a := 234;<br>end;</div><div><br></div><div>Other functionality and error checking is demonstrated in the various test cases here: <a href="https://github.com/ccrause/freepascal/tree/sectionsupport-rtl/tests/test/avr">https://github.com/ccrause/freepascal/tree/sectionsupport-rtl/tests/test/avr</a></div><div><br></div><div>Comments and suggestions are welcome.  Next development will focus more on complicated types such as strings.<br></div></div></div>