Announcement

Collapse
No announcement yet.

LONG Arrays in PBP 3.0.9 may have issues

Collapse
X
Collapse

  • PBP 3.0.9 LONG Array bank-boundary vulnerability

    PBP 3.0.9 is the last version of PBP that will run on Windows XP. It also compiles large programs significantly faster than the newer versions. This post is intended as a warning and workaround for those who have reason to use version 3.0.9. This is the only known issue that could cause problems without generating a compile error. This issue is fixed in 3.0.10 and later.

    Individual LONGs are not vulnerable to this issue, only arrays. This is a rare issue that is most likely to be encountered in PIC18 programs that use most of the available ram and declare large LONG array variables.

    In 3.0.9, PBP may place LONG arrays at addresses that result in individual elements of the array spanning bank boundaries in RAM. This can cause unexpected and erroneous results when reading or writing to specific elements of the array.

    If you must use 3.0.9, manually specify hex addresses that end with 0, 4, 8, or C when you declare LONG ARRAY Variables:

    Code:
    array1 VAR LONG[100] $0100
    array2 VAR LONG[100] $02A8
    array3 VAR LONG[32]  $043C
      Posting comments is disabled.

    Article Tags

    Collapse

    There are no tags yet.

    Latest Articles

    Collapse

    • PBP3 errors on Windows 7 related to api-ms-win-crt-runtime-|1-1-0.dll
      Charles Leo
      The latest versions of PBP (3.0.10 and later) are dependent on some Windows 10 files that Microsoft made available in Windows 7 with an update. If your Windows 7 system isn't up to date, you might get an error related to api-ms-win-crt-runtime-|1-1-0.dll. If this happens and you want to download only the required files without updating Windows in general, see this link and download the appropriate package: https://support.microsoft.com/en-us/...untime-in-wind...
      03-29-2017, 06:41 AM
    • PBP 3.0.9 LONG Array bank-boundary vulnerability
      Charles Leo
      PBP 3.0.9 is the last version of PBP that will run on Windows XP. It also compiles large programs significantly faster than the newer versions. This post is intended as a warning and workaround for those who have reason to use version 3.0.9. This is the only known issue that could cause problems without generating a compile error. This issue is fixed in 3.0.10 and later.

      Individual LONGs are not vulnerable to this issue, only arrays. This is a rare issue that is most likely to be...
      02-25-2017, 06:57 AM
    • PBP 2.60 and later, PBP commands on PORTF and PORTG of 16F1946/1947
      Darrel Taylor
      With PBP 2.60 and later (up to 3.0.7.x), PBP commands that automatically set the TRIS bits will not work properly on PORTF or PORTG of the 16F1946/1947.

      An issue with bank selection for the TRIS register has been identified.

      There are no known workarounds except to avoid using High-Level commands on PORTF/PORTG. We recommend using a PIC18 device for 64-pin and larger packages.
      12-05-2013, 12:57 PM
    • PBP 2.60C and earlier, 64-Bit Systems and PM.exe (PBP versions 2.60C and earlier)
      Darrel Taylor


      Users of 64-bit systems must instruct PBP to use the Microchip Assembler, MPASMWIN. In MicroCode Studio, this is a simple check box setting in the Compile and Program Options dialog. On the Compiler tab, check the box labeled "Use MPASM". MPLAB must be installed. It can be downloaded from the Microchip site or installed from your PBP install CD

      ...
      09-29-2011, 04:54 PM
    Working...
    X