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
projects:vlam:pbcc:pbcc [2011/10/31 18:32] krivkaprojects:vlam:pbcc:pbcc [2017/08/30 12:09] (current) – [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 
 +  * [[https://www.fautronix.com/en/fidex|FIDEx]] - new IDE for soft-core processors (supports PicoBlaze-3, -6 and its clones)
projects/vlam/pbcc/pbcc.1320082359.txt.gz · Last modified: 2011/10/31 18:32 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