Link here

Error Messages

This document describes error messages you may encounter when using the Mosaic IDE Plus to develop your Forth or C language instrument control application on the PDQ Single Board Computer (SBC).

Tool Error Message
IDE Plus Setup
Unable to register the DLL/OCX: RegSvr32 failed with exit code 0x5.

This problem was observed on a computer running a 64-bit version of Windows, in which virus protection software appeared to redirect an attempt to register the Visual Basic ActiveX controls file listed above in the SysWOW64 folder to the system32 folder instead, where there was no comctl32.ocx file. If you see this error while trying to install Mosaic IDE Plus, disable any running virus protection or security software, and attempt to run the installer again. You may wish to disconnect your computer from the Internet before disabling virus protection or security software.

If you are having problems resolving this error, please Contact Us.

CodeBlocks Editor
The application was unable to start correctly (0xc0000005). Click OK to close the application.

When this error was observed, the Windows Event Viewer reported an application error on starting codeblocks.exe related to the DLL file mingwm10.dll, which is a runtime library used by programs compiled with the MinGW port of GCC for Windows. Codeblocks is itself compiled with MinGW, and this error was observed on a computer that had multiple installed programs that had been compiled with MinGW, and multiple different versions of mingwm10.dll. The solution is to rename the file C:\MosaicPlus\dev_tools\codeblocks\codeblocks.exe.manifest to codeblocks.exe.manifest-unused, or if you do not see the manifest extention, move the file of type MANIFEST in this folder to a different folder. This may affect visual styles of controls in the CodeBlocks editor on Windows XP.

If you are having problems resolving this error, please Contact Us.

GCC Compiler
make.exe: C:\Users\name\AppData\Local\Temp\cbmBAA8.tmp: No such file or directory
make.exe: * * * No rule to make target `C:\Users\name\AppData\Local\Temp\cbmBAA8.tmp'. Stop.

This means that your 'Temp' directory is getting too full. This directory can safely be cleaned out using the "Disk Cleanup" tool provided by Microsoft. Depending on your operating system, you can open the tool from here:

Windows XP: Start→ All Programs→ Accessories→ System Tools→ Disk Cleanup
Vista\7: Start, type "Disk Cleanup" into the search box.

After launching Disk Cleanup, make sure to check the box next to "Temporary files" ( not "Temporary Internet Files" ). Before clicking "OK" make sure that you review any additional files that will be deleted by this program. Mosaic recommends that you uncheck "Compress old files" because of the length of time that this operation takes.

GCC Compiler
C:\MosaicPlus\c\tools\gcc\bin\m6811-elf-ld.exe: Warning: size of symbol `Balance_Function' changed from 1349 in .objs/main.o to 1439 in .objs/scale.o

This message means that the function 'Balance_Function()' was defined twice; Once in 'main.c' and once in 'scale.c'. Although this message specifically addresses the size change, it is really warning you that the function is defined two times. Simply rename one of the functions to resolve this error.

GCC Compiler
Error: Ran out of room allocating section .text.1 object C:/MosaicPlus/my_projects/big/big_prelink1.elf of size 5700
m6811-elf-objalloc.exe has stopped working

This error or crash is generated when a function or file is too large. To resolve this error, create a new .C file in your project directory. Add this file to your project by clicking "Project→ Add files…" and choosing the file you just created.

You will need to break up extremely long functions into two or more parts. Do this by moving some code from the long function into a new function. Then just call your new function from the long function. Put your newly created function in the new .C file.

If you are having problems resolving this error, please Contact Us.

GCC Compiler
timekeep.c:137: error: 'FunctionTimer_ISR_xaddr' undeclared (first use in this function)

This error means that the requested name is undeclared. In general this error is resolved by making sure you have defined the requested variable, and that there are no typos in your program.

This error is mentioned here specifically because of the _xaddr postfix. The ATTACH(name) macro requires that name_xaddr is defined before ATTACH is called. This can be confusing because the _xaddr postfix is hidden, but still required.

You can resolve this error by calling MAKE_ISR(name) if this error was generated by ATTACH().

GCC Compiler
C:\MosaicPlus\dev_tools\msys\1.0\bin\make.exe: * * * Couldn't reserve space for cygwin's heap, Win32 error 0

If you receive this error, please save all your work and restart your computer.

GCC Compiler
cannot find -lbsp_pdq


C:\MosaicPlus\c\tools\gcc\bin\m6811-elf-ld.exe: cannot find -lbsp_pdq

If you receive this error, you should click "Tools→ Rebuild libraries" from the toolbar of the Mosaic IDE Plus. This will pop-up a box with the title "", and messages will print. After the messages finish printing there should be the word "SUCCESS!" next to every kernel version listed. If this is not the case, you may need to re-install the Mosaic IDE Plus software. You can also contact Mosaic Industries in this situation.

Close the "" window by pressing enter. Rebuild your application by clicking "Build→ Clean & Rebuild".

GCC Compiler
Error: Offset out of 5-bit range for movw/movb insn: 66

found in a file similar to


If you receive this error, your program may have an extern forward declaration of a global variable that is actually local. This can happen if you are moving variables from global to local, and have forgotten to remove references in the .h file. To resolve this issue, remove the offending "extern" statements and rebuild your application by clicking "Build→ Clean & Rebuild".

This error can also happen when using the macro SET_XADDR() with a local variable, depending on the stack space used by the function. In this case, make the xaddr variable you are trying to assign a value to either static or global instead of local.

GCC Compiler
m6811-elf-objalloc.exe has stopped working.
Windows can check online for a solution to the problem.
- - - - Allocating code in into pages objects →  C:/MosaicPlus/my_projects/…/…_prelink.elf - - - -

make.exe: * * * [C:/MosaicPlus/my_projects/…/…_prelink.elf] Error 5
Process terminated with status 1 (0 minutes, 7 seconds)

This is a failure of the objalloc program which places blocks of code in the PDQ Board's paged flash storage. The fact that it crashes is a bug, but the root cause is that an individual function has grown too large to be allocated. In particular, this tends to happen when extensive calculations are performed using Double-precision_floating-point_format variables, the C double type. By default, floating point literals are interpreted as type double by GCC, and the basic standard library functions with headers in math.h such as log(), pow(), etc., accept arguments and return values of type double. This is unfortunate for the use of GCC in embedded systems, as the precision of the 32-bit float type is more than sufficient for measurement and control applications, and using the 64-bit double type balloons the code size.
If this problem is caused by complex calculations using the double type, switch to using the float type, add the f suffix to all numeric literals, and add the f suffix to math.h function calls, i.e.:
float a, b;
a = logf( 42.0f );
b = powf( a, 3.1415927f );
If you experience this error and your application does not use the double type, look for very long function definitions that may be broken into multiple shorter functions.

If you are having problems resolving this error, please Contact Us.

GCC Compiler Anti-Virus or Security Pop-up Warnings Regarding m6811-… Programs

Some anti-virus or security software suites enforce that every program run on the computer has been cryptographically signed by a recognized certificate authority. When attempting to run a program not cryptographically signed, the security software will generally display a pop-up dialog box asking the user whether or not to trust the program. Some security software suites will allow the user to "white-list" the program, in which case the security software suite will likely generate and save a cryptographic hash of the program, and then not interrupt future attempts to run the program so long as it remains unmodified.

We have observed instances of security software flagging the GNU toolchain programs used in Mosaic IDE Plus as suspicious. If your security software suite allows white-listing, you may be able to simply tell it to trust each of the m6811-… programs involved in building applications for the PDQ Board. If not, you will need to disable your security or anti-virus software before building applications in Mosaic IDE Plus.
Mosaic Terminal Mosaic Terminal stops downloading in the middle of S-record data with a beep for a project using web resources, with Stop On Error set to On in Settings→ Comm

If you are having difficulty downloading a compiled application to the PDQ Board, first ensure in Mosaic Terminal, under the Settings menu →  Comm window, that Stop On Error is set to On. A code download for a project using web resources (web_resources subfolder is not empty), generally for the EtherSmart or WiFi Wildcard, may stop with the last few lines being similar to those shown above. This bug can be identified by noting that the last or second-last line contains C000 six characters from the start. This is an invalid address at which to load code for the PDQ Board, produced by a bug in the image converter program used to convert web resources into S-record data. All released versions of Mosaic IDE Plus as of October 2014 include a version of the image converter program containing this bug; if you encounter it, please contact Mosaic Industries for an updated image converter program.

Mosaic Terminal
* * * * * * * * * * * *
Error Writing to Flash!
* * * * * * * * * * * *

When downloading compiled code to the PDQ Board, the code is first placed in paged RAM and then copied to shadow flash at the end of the download. This message indicates that the routine that saves the application code to shadow flash encountered some kind of error.

One reason this error may appear is a low power supply voltage. The PDQ Board requires a regulated 5 volt supply within a tolerance of ±5%, i.e. 4.75V to 5.25V. If the supply voltage is near the bottom of this range, the extra current drawn while writing to flash may cause the voltage to drop out of this range briefly and the flash write to fail. Check the power supply using a voltmeter by CAREFULLY measuring the voltage between pins 1 and 2 on either Wildcard Bus or Module Bus header, or the Digital I/O header. Do not touch the voltmeter probe to any two pins simultaneously; in particular, pin 4 adjacent to pin 2 carries the high V+RAW supply if the PDQ Board is mounted on a Docking Panel, and shorting pins 2 and 4 will permanently damage the PDQ Board.

If the power supply voltage is above 4.9V, the problem may be due to defective or worn-out flash memory cells, in which case the board needs to be replaced.

Mosaic Terminal
Error! Program Compiled for Wrong Kernel Version!
6.03L vs 6.02L

This error is displayed at download time if your program has been compiled for the wrong Kernel Version.

To check your current kernel version, type:


To resolve this issue, click Project→ Project Compiler Options from the Mosaic IDE Plus. Click the dropdown box and choose the correct version. When you click close, the project will automatically clean. After the clean process has finished, click Build→ Build. Now load the newly created .DLF file to your board. This error will not appear and your program will load completely.

Runtime Message
C malloc heap has run out of space

This error will appear on the Mosaic Terminal when connected to serial1. This error can be generated for two reasons. Using malloc() and requesting too many bytes will result in this error. Calling the memory hungry printf() can also cause this error.

If a call to printf() emits this error, it means that your program has defined too many strings or variables in common memory. To resolve this problem, put some or all of your strings and variables in paged memory. See Using Paged Memory for more information about paged memory. For sample code that uses arrays in paged memory, see using-lookup-tables.

Note: In general it is a bad idea to use malloc() or asprintf() with any embedded system because of memory limits.

Error at CMOVE Data stack underflow!

This error indicates that a word tried to remove an item from the stack, but the stack was empty. In this case, the "CMOVE" word requires 5 items on the stack to execute. See Forth V6 Function Summary for a list of all Forth words and their stack requirements.

See error-and-warning-messages for more information about Forth error messages.

anew globals_section Error at GLOBALS_SECTION Can't compile–Not RAM!

If you receive this error, it most likely means that RAM on your PDQ Board is write protected. See this note.

VARIABLE NEWVAR ↓ NEWVAR isn’t unique ok

This error means that you have defined the same name twice. See error-and-warning-messages for more information about Forth error messages.

Can't compile deferred lib-to-lib call!

In compilation mode, an error occurs if <name> is in a different library or application segment than the segment that CFA.FOR is located in. To resolve this condition, simply define a colon definition synonym for <name> in the current library or application segment, and use the synonym as the argument of CFA.FOR.

This limitation and error message applies to:
→ '

Error at VALLOT Page boundary was crossed!

When allocating variable space with VALLOT, or defining a word using a colon definition, a page boundary may not be crossed.

If this error was generated when allocating a variable, use this line to increment the page of the variable pointer:

0x8000 VHERE NIP 1+ VP X!

If this error was generated by a colon definition, place the following code before the definition to increment the page of the dictionary pointer:

0x8000 HERE NIP 1+ DP X!

The code for the colon definition will then be placed on the new page.

Memory write failed during segment loading; try reloading all libraries.

Attempting to reload a segment whose definition is still in memory may produce this error message. To resolve this, do a COLD restart and reload the code.

This page is about: GCC Compiler Error Messages, Runtime Error Messages, QED-Forth Error Messages – This document describes error messages you may encounter when using the Mosaic IDE Plus to develop your C or Forth language instrument control application on the PDQ Board.