Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
projects:vlam:pbcc:pbcc [2011/10/31 18:32] krivkaprojects:vlam:pbcc:pbcc [2012/08/23 14:53] – [Related links] krivka
Line 28: Line 28:
     * Source code: {{:projects:vlam:pbcc:pbccv2-src-2011-09-01.zip|pbccv2-src-2011-09-01.zip}} (9.3 MB)     * Source code: {{:projects:vlam:pbcc:pbccv2-src-2011-09-01.zip|pbccv2-src-2011-09-01.zip}} (9.3 MB)
     * Changes:      * Changes: 
-      * new command-line parameter <code>--port-kw=PORTARRAYID</code> to set the keyword used to identify the virtual array to access PicoBlaze ports using INPUT/OUPUT instruction from C code by setting <code>PORTARRAYID[0] = 0x20;</code> or reading <code>int val = PORTARRAYID[255];</code>+      * new command-line parameter <code>--port-kw=PORTARRAYID</code> to set the keyword used to identify the virtual array to access PicoBlaze ports using INPUT/OUPUT instruction from C code by setting <code>PORTARRAYID[0] = 0x20;</code> or reading <code>int val = PORTARRAYID[255];</code> To use this code, add to the begining  of your source <code>extern volatile char PBLAZEPORT[];</code>
       * fixed bug with duplicity of labels       * fixed bug with duplicity of labels
  
Line 54: Line 54:
   * [[http://sdcc.sourceforge.net/doc/sdccman.html/|SDCC User Manual]]   * [[http://sdcc.sourceforge.net/doc/sdccman.html/|SDCC User Manual]]
   * [[http://www.xilinx.com/support/documentation/ip_documentation/ug129.pdf|Xilinx PicoBlaze-3 Processor Manual]]   * [[http://www.xilinx.com/support/documentation/ip_documentation/ug129.pdf|Xilinx PicoBlaze-3 Processor Manual]]
 +
 +==== Limits of the compiler ====
 +  * no linkage - PicoBlaze-3 processsor is so small that linkage has no practical use, you can use only text-based header/source include using #include directive for the preprocessor
 +  * 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 not supported yet (working on register allocation optimizations along with the support of global variables) +  * Global variables just partially supported (working on register allocation optimizations along with the support of 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 90: Line 96:
   * version 2011-10-27 (based on [[http://marksix.home.xs4all.nl/downloads/Picoasm_29mar08.tar.gz|Picoasm_29mar08.tar.gz]])   * version 2011-10-27 (based on [[http://marksix.home.xs4all.nl/downloads/Picoasm_29mar08.tar.gz|Picoasm_29mar08.tar.gz]])
     * Binary package: {{:projects:vlam:pbcc:picoasm-bin-win32-2011-10-27.zip}} (493 KB)     * Binary package: {{:projects:vlam:pbcc:picoasm-bin-win32-2011-10-27.zip}} (493 KB)
-    * Source code: {{:projects:vlam:pbcc:picoasm-src-2011-10-27.zip}} (23 KB) +    * Source code: {{:projects:vlam:pbcc:picoasm-src-2011-10-27.zip}} (23 KB) (GNU GPL v2)
-(GNU GPL v2)+
     * Modifications by [[http://www.fit.vutbr.cz/~vasicek|Zdeněk Vašíček]]:     * Modifications by [[http://www.fit.vutbr.cz/~vasicek|Zdeněk Vašíček]]:
       * 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 105: Line 110:
  
 ===== Related links ===== ===== Related links =====
-  * [[http://www.openpicide.org|openPICIDE Homepage]] +  * [[http://openpicide.org/content/about/|openPICIDE Homepage]] - IDE for developing assembly code for PicoBlaze 
- +  * [[http://code.google.com/p/pblazasm/|pblazeasm]] - assembler command-line tool for PicoBlaze-3 and PicoBlaze-6 with several useful extensions 
 +  * [[http://www.mediatronix.org/pages/Tools|Mediatronix Tools]] - tools and new graphical simulator for PicoBlaze-3 and PicoBlaze-6
projects/vlam/pbcc/pbcc.txt · Last modified: 2017/08/30 12:09 by krivka
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki