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/23 23:08] krivkaprojects:vlam:pbcc:pbcc [2012/08/23 14:53] – [Related links] krivka
Line 19: Line 19:
 ===== Download ===== ===== Download =====
 By downloading any of the following files, you agree with its GNU GPL v3 license (see [[http://www.gnu.org/licenses/gpl.html|GNU General Public License 3]]): By downloading any of the following files, you agree with its GNU GPL v3 license (see [[http://www.gnu.org/licenses/gpl.html|GNU General Public License 3]]):
-  * version 2011-10-?? (in progress)+  * version 2011-10-24 (fifth public version, beta (SVN rev #59, based on SDCC 3.0.1) 
 +    * Binary package: {{:projects:vlam:pbcc:pbccv2-bin-win32-cygwin-2011-10-24.zip|pbccv2-bin-win32-cygwin-2011-09-01.zip}} (5.1 MB) 
 +    * Source code: {{:projects:vlam:pbcc:pbccv2-src-2011-09-01.zip|pbccv2-src-2011-10-24.zip}} (11.4 MB)
     * Changes:     * Changes:
       * Several bug fixes concerning the comparison of signed integers       * Several bug fixes concerning the comparison of signed integers
Line 26: 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 52: 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 82: Line 90:
   * Set of {{:projects:vlam:pbcc:demos_tests.zip|Examples to download}} (14 files).   * Set of {{:projects:vlam:pbcc:demos_tests.zip|Examples to download}} (14 files).
  
 +===== PicoAsm =====
 +PicoAsm is open source assembler for Xilinx PicoBlaze-3 from George Smith ([[http://marksix.home.xs4all.nl/picoasm.html|see the homepage]]). We improved this tool to be able to work properly with VLAM IDE and its Makefiles.
 +
 +==== PicoAsm Download ====
 +  * 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)
 +    * Source code: {{:projects:vlam:pbcc:picoasm-src-2011-10-27.zip}} (23 KB) (GNU GPL v2)
 +    * 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)
  
 ===== License ===== ===== License =====
Line 92: Line 109:
     * Main programmer of the SDCC port written in C language (as a part of his Master thesis)     * Main programmer of the SDCC port written in C language (as a part of his Master thesis)
  
 +===== Related links =====
 +  * [[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