This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
projects:vlam:pbcc:pbcc [2011/11/25 12:53] – krivka | projects:vlam:pbcc:pbcc [2012/04/19 19:06] – krivka | ||
---|---|---|---|
Line 56: | Line 56: | ||
==== Limits of the compiler ==== | ==== Limits of the compiler ==== | ||
- | * no linkage - PicoBlaze-3 processsor is so small that linkage has no practical | + | * no linkage - PicoBlaze-3 processsor is so small that linkage has no practical |
* no standard library - there is no implementation for standard C library such as stdio, string, etc. (most of the functions are just too big to fit into its small memory) | * no standard library - there is no implementation for standard C library such as stdio, string, etc. (most of the functions are just too big to fit into its small memory) | ||
+ | * no dynamic allocation - there is no malloc or free function to do the memory management | ||
==== Known bugs ==== | ==== Known bugs ==== | ||
As the compiler still has many bugs and missing features, it is good to know them: | As the compiler still has many bugs and missing features, it is good to know them: | ||
- | * Global variables | + | * Global variables |
* Optimized switch does not work (JUMPTABLE) | * Optimized switch does not work (JUMPTABLE) | ||
* Missing: Get highest bit, get value at address, pointer set, address of (SDCC iCodes) | * Missing: Get highest bit, get value at address, pointer set, address of (SDCC iCodes) | ||
* Inlining not supported yet | * Inlining not supported yet | ||
* Problems with passing array as a function argument | * Problems with passing array as a function argument | ||
+ | * Generated invalid interrupt vector jump code (as a trivial IVT) | ||
==== Code Examples ==== | ==== Code Examples ==== | ||
Line 94: | Line 96: | ||
* version 2011-10-27 (based on [[http:// | * version 2011-10-27 (based on [[http:// | ||
* Binary package: {{: | * Binary package: {{: | ||
- | * Source code: {{: | + | * Source code: {{: |
- | (GNU GPL v2) | + | |
* Modifications by [[http:// | * Modifications by [[http:// | ||
* New command-line argument -o that denotes output file without extension (.hex is added) | * New command-line argument -o that denotes output file without extension (.hex is added) | ||
Line 109: | Line 110: | ||
===== Related links ===== | ===== Related links ===== | ||
- | * [[http:// | + | * [[http:// |
+ | * [[http:// | ||