support

Our demos: odd setup issue

Have you tried to install one of our demos only to find a completely different setup program starts to run?

I'm invoking the compiler from CMD.EXE using "start", but another window appears. Why won't the compiler run?

The start command may require a "window title" on the command line before the name of the compiler executable. Invoke "help start" for the list of command line options.

I'm seeing a problem or error with compiler-generated code. What do I do?

First, try to determine the nature of the compiler-generated code. The compiler often puts labels in sections of code that it generates to distinguish them.

If errors appear in code generated at the end of the file, it is possibly the __DISPATCH() code that is at fault. This code is generated based on the #pragma thread directives found throughout the program; check each directive's expression and action to ensure that the symbols are declared, that the functions are defined or prototyped elsewhere, and so on.

I'm having trouble declaring structs as types. The compiler refuses typedefs of long structs

|

There is a legacy limit in the compiler: typedefs cannot be longer than 256 characters. In most cases, this limit is never reached.

How can I add a #define to the linker command file in BCLIDE?

|

If the #define is not already present in a header file or C program module, create a new header file for it and list the file in the Include Files list. Select the Include Files tab and click Add File. In the Open dialog, choose the file and click OK.

The compiler isn't obeying my customized layout of memory resources and functions. What's wrong?

|

Make sure you're supplying all #pragma directives to BClink. BClink uses the same device configuration information during linking as the compiler does during Absolute Code Mode. BClink performs a final code generation pass over your object files, and needs this information to allocate variables and program code locations.

How can the compiler link modules together?

In one of two ways. Byte Craft Limited supplies BClink, an optimizing linker. BClink takes a series of object files created by the compiler, and resolves references between them to create a single executable. For more information, see the product documentation.

Can the compiler generate an assembly source file?

|

No. The compiler does not generate an intermediate assembly source file. The compiler and linker have built-in macro assembly functionality, so a separate assembly source file is not necessary. The assembly found in the listing file is actually a disassembly of the generated opcodes.

Can my variables straddle resource boundaries?

|

In general, no. Boundaries created by the hardware or instruction set restrict how the compiler can allocate variables.

Wherever an architecture uses pages or other interrupted address spaces, there is the potential that a variable will straddle such a boundary. The risk is greatest when you specify the address of a variable in terms of another:

int one; //in one area
int two; //in another area
long three @ one; //oh oh... 

I'm getting lots of "redeclared" error messages in my header files. What's wrong?

If you've authored your own device header file or other header file (e.g., for a library), check to see if it has standard C header protection in it.

The code looks like this:

#ifndef __HEADER_H
#define __HEADER_H 
/* Body of the header file. */ 
#endif /* __HEADER_H */

Replace HEADER_H with the filename of your header file, changing any periods for underscores.

Syndicate content