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/09/30 12:26] krivkaprojects:vlam:pbcc:pbcc [2017/08/30 12:09] (current) – [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-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: 
 +      * Several bug fixes concerning the comparison of signed integers
   * version 2011-09-01 (fourth public version, beta (SVN rev #58), based on SDCC 3.0.1)   * version 2011-09-01 (fourth public version, beta (SVN rev #58), based on SDCC 3.0.1)
     * Binary package: {{:projects:vlam:pbcc:pbccv2-bin-win32-cygwin-2011-09-01.zip|pbccv2-bin-win32-cygwin-2011-09-01.zip}} (4.9 MB)     * Binary package: {{:projects:vlam:pbcc:pbccv2-bin-win32-cygwin-2011-09-01.zip|pbccv2-bin-win32-cygwin-2011-09-01.zip}} (4.9 MB)
     * 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 50: 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
 +  * Generated invalid interrupt vector jump code (as a trivial IVT)
  
 ==== Code Examples ==== ==== Code Examples ====
Line 79: 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 89: 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
 +  * [[https://www.fautronix.com/en/fidex|FIDEx]] - new IDE for soft-core processors (supports PicoBlaze-3, -6 and its clones)
projects/vlam/pbcc/pbcc.1317378366.txt.gz · Last modified: 2011/09/30 12:26 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