Why does the "Error 335:...Invalid register number" appear on build?
FAQ #100491
When choosing the dynamic registers above 8191 on a PCD2.M5xx0, a PCD2.M480 or a PCD3, this error message can appear in case FBoxes are used which apply "indirect instructions".
Symptom
A build in PG5 1.4 failes with error 335:
Error 335: Komm.obj (432): JPI: __stc_C0001_00_01_02: Invalid register number
A build in PG5 2.0 failes with error 2035:
Error 2035: Komm.obj (432): TFRI: PCD.HDA.MacWrk.Reg: Invalid register number, max is 8191 for register indirect instructions
Reason
The problem is that 'register indirect' instructions (SASII, TFRI, STXMI, SRXMI etc.) do not allow register addresses above 8191. As these instructions are used by many FBoxes (Modem-Driver, HDLog or the HMI Editor), the last address of the "Dynamic Space" for registers must not be higher than 8191.
Solution
- In case plenty of registers are available:
When using indirect instructions with dynamic addresses, the dynamic address range must not exceed the address 8191. This configuration is made in the "Sofware Settings" (PG5 1.4) or "Build Options" (PG5 2.0) of the according CPU/Device:
PG5 1.4:
PG5 2.0: - In case no more registers are available, try the following procedure
- Execute a "Clean files" of the CPU/Device
- Rebuild the project - In case a simple "Clean files" does not help,
- Execute a "Clean Files"
- Check which library causes the problem
- Modify the "Link order" in order to link the program which contains the TFRI as first program
- Open the Fupla and export and then delete pages/blocks which do not cause the problem
- Rebuild the project
- In case the build is successful: Add the previously removed blocks
- In case the build still fails: continue to execute the "Clean files" and remove more Fupla blocks/pages
Categories
Local FAQ Deutschland / PG5 1.4 FBox Libraries
PCD3 / Mxxx
PCD2 / M5xxx
PCD2 / M48x
Last update: 25.05.2015 07:35
First release: 24.11.2005 06:27
Views: 11471