/ General FAQ
Cosmic Software Frequently Asked Questions - General section
This page contains all those Frequently Asked Questions that are not specific to a micro or architecture.
Please read the very useful
The C Language Specifications Manual
as well as the Cosmic compiler manual.
What are the limitations of evaluation software?
Can I get a time-limited, full features evaluation license?
Can the compiler automatically remove unused functions from my application?
How do I access global variables declared in C from an Assembly module?
Why do I receive the linker error "function not defined" when the function is defined in an assembly source file?
Why does my non-zero initialized global data appear as all zeros when I view memory in my debugger?
Why does the compiler optimize (remove) code necessary to access some of my data objects?
Do I have access to library functions used by Cosmic to change its default behavior?
When I use printf() and sprintf() with float arguments and include the floating point library (libf) in my link command file, why do I get the unexpected results?
What order should I link the Cosmic libraries?
How do I use the Compilers on-chip EEPROM data erase and write features?
How can I copy a block of data to the on-chip EEPROM?
What is the zero page and what is it used for?
How do I locate data objects explicitly in the zero page or external memory?
What is the difference between the Data and BSS sections?
Can I create my own segment names other than the reserved segment names used by the linker?
How do I set a data object or function to a predefined address?
What is the VOLATILE qualifier?
Will the compiler work with my specific processor?
What does the acronym BSS represent?
I would like to use printf or sprintf, but the code is too large for my available space. Are there smaller versions for simple applications?
When I declare a global zero page, eeprom or const pointer it does not seem to be allocated in the correct memory section?
The results of an expression evaluation seem to be truncated or incorrect. When do I need to add a cast to a C expression?
How do I force the compiler to check for ANSI C prototypes?
Are there any options to force the compiler to perform stricter type checking then ANSI C requires?
How do I locate a piece of code in ROM and copy it into RAM for execution such as with a boot loader?
How do I write my own ISRs (Interrupt Service Routines) and can I call an interrupt function from another function?
Do I have to change the vector table when writing an ISR?
I have an application that requires the Cosmic libraries to be linked in two locations. How do I link more than one copy of the same library without name conflicts?
How do I extract S-Records for just a segment of code or data?
How do I store a specific value at a specific memory location in ROM/Flash? Why Can't I use the absolute addressing feature?
How do I force the compiler to allocate data objects in the order I declare them. It seems some are allocated in the reverse order and some are allocated in the order declared.
The end record (S7, S8 or S9) in my application's S-record is not compatible with my ROM burning program and/or the verification utility. Can I change this?
How are bitfields allocated?
How do I remove all events in ZAP. i.e. breakpoints and watchpoints
Support Quick Links
Partners & Links
Online Support Form