Integrated Development Environment

Home products Downloads Support Where to Buy Contact

Revision History


The uM-FPU64 IDE (Integrated Development Environment) provides a set of easy-to-use tools for developing applications using the uM-FPU64 floating point coprocessor. The IDE runs on Windows XP, Vista, and Windows 7 and provides support for compiling, debugging, and programming the uM-FPU64 floating point coprocessor.
(click on windows to see larger image) Function Window Debug Window Output Window Source Window

  • built-in code editor for entering symbol definitions and math expressions
  • compiler generates code customized to the selected microcontroller
  • pre-defined code generators included for most microcontrollers
  • target description files can be defined by the user for customized code generation
  • compiler code and assembler code can be mixed to support all uM-FPU64 instructions
  • output code can be copied to the microcontroller program

  • Debugging
  • instruction tracing
  • contents of all FPU registers can be displayed in various formats
  • breakpoints and single-step executionv
  • conditional breakpoints using auto-step capability
  • symbol definitions from compiler used by instruction trace and register display
  • numeric conversion tool for 32-bit and 64-bit floating point and integer values

  • Programming Flash Memory
  • built-in programmer for storing user-defined functions in Flash memory
  • graphic interface for setting parameter bytes stored in Flash

  • Software
    uM-FPU64 IDE release 411
    Installer for uM-FPU64 IDE (Integrated Development Environment). Includes software and documentation.
    10.6 MB ZIP Aug 13, 2014
    Release Notes
    Release notes for uM-FPU64 IDE release 411. 
    453 KB PDF Aug 13, 2014

    uM-FPU64 IDE User Manual
    Documentation for using the uM-FPU64 IDE. Includes tutorials and reference guides. 
    4.2 MB PDF Aug 13, 2014
    uM-FPU64 IDE Compiler
    Documentation for using the uM-FPU64 IDE compiler. 
    938 KB PDF Aug 13, 2014

    Revision History
    Release 411 - Aug 13, 2014

    Changes to IDE Interface
  • new RAM Display Window
  • fixed problem with spurious horizontal scroll bar in Matrix Window
  • fixed Matrix Window Update button to update both register values and memoryv
  • clicking in the upper left corner of the Number Converter, Interactive Compiler, SERIN, SEROUT, Flash, RAM, or Matrix windows will cause the main IDE window to be displayed immediately behind the current window.
  • Update Target File... button added to Output Window
  • fixed problem with displaying {DEBUG ON}, {DEBUG OFF} messages
  • added trace messages for FPU {ERROR:xxxx} messages

  • Changes to Compiler
  • added definitions for DEVIO,SDFAT
  • comments included on the FPU source line for register definitions, variable definitions, and function definitions are now included in the target code generated.
  • added devio(FIFOn, ALLOC_MEM, size) function
  • added support for devio(FIFOn, ALLOC_MEMR, regSize) functionv
  • added #DEVICE device_file{,device_name} directive
  • removed support for devio(VDRIVE2,...) functions
  • added #TARGET_OPTIONS, PROPELLER directive
  • added #TARGET_CODE link_ID directive
  • fixed target code generation for assigning 64-bit float constants to a register
  • Release 410 - Jan 16, 2014

    Changes to IDE Interface
  • Serial Output window: added Setup Options... button at the top of window
  • Serial Output window: centered Serial Setup Options... window
  • Serial Output window: a cursor has been added to the graphic display which shows the currently selected row in the column display
  • Serial Output window: left and right arrow keys can be used to move cursor in graphic display
  • Serial Output window: fixed problem with graph x axis label being offset by one
  • Serial Output window: double clicking in graphic display will resize the x axis
  • Serial Output window: the pen size is adjusted to one for graphs with large amounts of data
  • Serial Output window: revised the colors for the graph lines
  • Serial Output window: added support for column headings
  • Serial Output window: individual columns can be disabled from displaying in graph
  • Serial Output window: button names were changed
  • Serial Input window: button names were changed
  • added support for storing XOP code in Flash memory
  • added support for displaying XOP code in Windows> Show Flash Memory
  • Interactive Window: added Import and Save buttons

  • Changes to Compiler
  • Interactive Compiler: added support for pointers and array variables on left side of equations
  • added support for #XOP directive
  • added support for XOP calls
  • fixed problem with setting data type for untyped functions (e.g. ABS, MOD, MIN, MAX)
  • fixed LTOA, FTOA, serial(WRITE_LONG,...), serial(WRITE_FLOAT,...) to support 64-bit expressions
  • added support for pointers as arguments to user functions
  • added support for local register and pointer definitions for functions arguments
  • Archived Installer: uM-FPU64 IDE r410 ZIP
  • Archived Documentation: uM-FPU64 IDE r410 ZIP
  • Release 409 - Oct 1, 2013

    Changes to IDE Interface
  • if PICMODE is set by the target used in the last compile
  • PICMODE values will be displayed for FWRITE and FREAD instructions in the debug trace
  • changed Flash programming to support new Flash format
  • new Flash memory display window
  • changed Functions>Read Stored Functions to Functions>Read Flash
  • changed Functions>Show Flash Memory... to Functions>Show Flash Window
  • changed Functions>Clear Functions to Functions>Clear Flash
  • changed Functions>Program Functions to Functions>Program Flash
  • Functions window: changed Read Stored Functions button to Read Functions
  • Functions window: changed Program Functions button to Program Flash
  • Functions window: added a splitter bar for resizing the New Function code display and the Stored Function code display
  • Set Parameters dialog: updated Restore Default Settings button to ensure settings are restored to the original uM-FPU64 default settings
  • added splitter between hex display and formatted display in RAM Display window
  • added Reset and Read Registers buttons to Interactive Compiler window
  • changed Functions>Program Flash to Functions>Program Flash Memory
  • changed Functions>Clear Flash to Functions>Clear Flash Memory
  • moved Functions>Show Flash Memory to Window>Show Flash Memory
  • the window position for all windows is saved in preferences file
  • windows snap to the left and right edges of the main window when moved to within 10 pixels of the main window edge
  • changed SEROUT window to allow up to eight columns in Table and Graph mode

  • Changes to Compiler
  • register.bit notation can now be use for setting and testing bits in registers
  • added READ_HIGH to DEVIO,SPI
  • PICMODE added to TARGET_OPTIONS in target description file
  • if PICMODE is set by the target, FWRITE constants will use PICMODE format
  • READ_HIGH option added to DEVIO,SPI configuration byte
  • return statement optimized if value already in register 0 or 128
  • return statements with an expression will now do type conversions
  • fixed code generation for certain register comparisons (e.g. reg < -reg)
  • fixed code generation when memory array value was set to zero
  • fixed check for Nested function only allowed as first parameter error
  • fixed check for Nested functions not allowed inside functions error
  • fixed expected , but found long data type error
  • fixed code generated for #DOUBLE and #FLOAT64 directives
  • fixed problem with code generation for certain memory pointers
  • fixed code generated for flookup() and llookup() functions
  • fixed code generated for comparing a 64-bit float with a constant
  • fixed problem with 64-bit function calls in comparisons
  • added devio(LCD, INTERFACE, type) for LCD I2C interface
  • added devio(LCD, BACKLIGHT_ON) for LCD I2C interface
  • added devio(LCD, BACKLIGHT_OFF) for LCD I2C interface
  • optimized code generated for float register = long constant
  • optimized code generated for long register = 0
  • fixed the code generated for long constant expressions using &, |, <<, >>
  • Release 407 - Apr 18, 2013

    Changes to IDE Interface
  • Interactive Compiler window added to the Tools menu. Used for writing compiled instructions to the FPU instruction buffer.
  • Debug> Reset menu item added to allow the FPU to be reset from the IDE.
  • fixed problem in RAM Display Window with certain signed values.

  • Changes to Compiler
  • rtc(NUM_TO_DATE, register) procedure converts date/time number to values in consecutive registers
  • rtc(DATE_TO_NUM, register,...) function procedure converts values in consecutive registers to date/time number
  • rtc(NUM_TO_STR,...) and rtc(STR_TO_NUM,...) functions now has options to convert date, time, or date/time
  • rtc functions and procedures updated to use new date/time number format (see RTC instruction for more information)
  • timelong() function now returns milliseconds if a 32-bit register is selected, or microseconds if a 64-bit register is selected
  • devio(I2C, START_WRITE,...) function now allows a long expression for the device ID
  • devio(I2C, START_READ,...) function added to support multiple reads as a single I2C transaction
  • devio(LCD,...) functions always set the RS pin prior to use. This allows the pin to be shared.
  • added FLOAT32, LONG32, ULONG32 as valid parameter types for functions
  • added #ide_required directive to specify the IDE software version required by the source code
  • added #firmware_required directive to specify the uM-FPU firmware version required by the source code
  • version procedure stores uM-FPU64 version string in string buffer, and version number in register 0
  • fixed problem with pointer array code generation.
  • fixed problem causing hang if function parameter type is unknown.
  • Release 406 (c) - Mar 6, 2013
    New Features
  • LU decomposition operations
  • Cholesky decomposition operations
  • tab processing has been added to the source window
  • tabs are automatically converted to spaces
  • strings can now contain the following special characters: \r, \n, \t, \v
  • expanded assembler data directives to include the following:
       #byte, #word, #long, #long32, #long64, #float, #float32, #double, #float64
  • assembler data directives now accept multiple comma-separated values
  • auto-indent has been added to the source window
  • most recent file is now opened automatically at start-up
  • a Program button has been added to the source window
  • the Program button and menu item compiles the source code before programming Flash memory
  • Matrix Display Window has been added

  • Changes
  • changed RAM Window, Number Converter, SEROUT and SERIN window properties
  • Improved the update speed for RAM Window
  • the status bar in the main window now shows a programming status message
  • the Program Status dialog now exits automatically if programming is successful
  • changed clear screen character for SEROUT windows to vertical tab (0x0B, \v)
  • added total function size in bytes to Function window and removed 'bytes' suffix on each row
  • allow pointer for address register in DEVIO,WRITE_MEMR and DEVIO,READ_MEMR instructions
  • improved code optimization for register arrays
  • built-in target definitions replaced by target definition files
  • added IDE symbols IDE1, IDE2, IDE3 for SEROUT debug mode data channels
  • added SLOW as IDE symbol for DEVIO,I2C speed of 100 kHz
  • added START_READ as new action for DEVIO,I2C (available in next firmware release)

  • Bug Fixes
  • fixed code generation for % (mod), & (and), | (or), ^ (xor) operators in certain 64-bit calculations
  • fixed SERIAL functions WRITE_FLOAT, WRITE_LONG, WRITE_CHAR, and READ_CHAR operations to support extra devices
  • fixed LTOA to generate expression code before opcode
  • fixed code generation for 32-bit constant comparison preceded by a 64-bit expression
  • fixed error message for invalid MOP operations
  • fixed code generation for STRSEL and STRFIELD functions with indirect values
  • fixed problem that caused an exception if a file in the recent file menu could not be found
  • IF statements that used expressions could branch to the wrong case.
  • Fixed problems with displaying the cursor and breakpoints after expanding and collapsing assembler code
  • Fixed a problem with FCALL trace being repeated when single stepping into a function with source level debugging enabled
  • fixed problem with cursor disappearing inside an expanded source line when the source line was collapsed
  • fixed problem causing Program Status dialog to sometimes be hidden behind the main window
  • reimplemented the Program Status dialog to improve progress display
  • fixed problems with code generation for 64-bit arrays
  • fixed problem with code optimizer if same matrix element is on left and right side of equation
  • fixed problem with 64-bit constant expressions
  • fixed update of function list after programming or clearing Flash memory
  • Release 405 - Sep 25, 2012
  • fixed code generation for SELECTMA when row is a register.
  • fixed display of background string selection.
  • Release 404 - Sep 4, 2012
    New Features
  • source code and compiled code displayed in debug window
  • hardware breakpoints
  • single step by compiler statements or assembler instructions
  • can step into functions, over functions, and out of functions
  • added SERIN data input window with support for character mode and NMEA input
  • added SEROUT data output window with support for: text output, terminal emulation, table and graph display
  • new actions added to SERIAL procedure: WRITE_FLOAT, WRITE_LONG, WRITE_COMMA, WRITE_CRLF
  • Flash memory size increased to 4096 bytes
  • support for 32-bit and 64-bit function arguments and return values
  • Register display format can be changed for multiple registers
  • version string is read and displayed when first connected
  • added firmware version check
  • PICAXE target now uses target description file
  • modified code generation for PICAXE to support additional registers
  • changed SELECTMA, SELECTMB, SELECTMC to allow register arguments
  • changed LOADMA, LOADMB, LOADMC to allow register arguments
  • changed SAVEMA, SAVEMB, SAVEMC to allow register arguments
  • added pointer support to SELECTMA, SELECTMB, SELECTMC
  • added support for register arrays
  • added support for pointers and pointer arrays
  • added support for register X expressions
  • added support for indirect register expressions
  • added support for using register arrays to select matrices
  • new compiler functions and procedures: COPYIND, DIGIO, EVENT, RTC, SELECTA, SELECTX, SETIND
  • added register array names to debug register display
  • added pointer format to debug register display

  • Changes
  • fixed code generation for function arguments and return values when register A is a different size (32-bit/64-bit).
  • debug buttons changed from text to icons
  • fixed the display of unformatted floating point numbers with trailing nines in fraction
  • fixed some code generation problems with conditional expressions
  • optimized code generation for conditional instructions
  • fixed problem with PJMP code generation
  • changed DELAY to allow expression
  • optimized the debug trace screen updates
  • added new symbols for DEVIO,COUNTER
  • fixed LTOA procedure to accept negative formats
  • fixed code generation for STRSEL and STRINC
  • fixed problem with #ASM instructions: FWRITE,reg and LWRITE,reg
  • fixed code generation for SAVEMA, SAVEMB, SAVEMC procedures
  • fixed floating point numbers to always display at least one digit to left of decimal point
  • revised code generation for user defined functions to use new SETARGS/FCALL/RET capabilities provided by uM-FPU64 r402
  • removed LEFT/RIGHT instructions that were automatically added to functions that return values.
  • added firmware folder to IDE installation.
  • re-implemented firmware loader code to prevent the progress indicator from freezing during the firmware update
  • fixed EXTSET, STRBYTE, TIMESET code generation
  • fixed code generation for 64-bit constants
  • changed the name of some of the SERIAL actions to be consistent with the SERIN and SEROUT instructions
  • WRITE_TEXT changed to WRITE_STR
  • Show RAM Window moved from Tools menu to Window menu
  • source line is suppressed in the output when in #ASM mode
  • Release 403 - Mar 21, 2012
    New Features
  • DELAY(n) procedure added, where n is a constant value from 0 to 65535 specifying the delay in milliseconds

  • Changes
  • code generation for instructions that require a wait was generating an error
  • DEVIO(...) function calls with word arguments not compiling properly
  • DEVIO(VDRIVE2, Š) actions for NEW_FILE and READ_FILE were reversed in compiler
  • floating point constants were generating incorrect code in compiler
  • some large 64-bit hex and decimal numbers not converted properly by Number Converter
  • some large 64-bit hex and decimal numbers not converted properly in Register display
  • some large 64-bit hex and decimal numbers not converted properly in Trace display
  • some large 64-bit hex and decimal numbers not generating proper code in compiler
  • fixed trace for LBIT, RDIND, WRIND instructions
  • fixed problem with incorrect optimization of reg=reg expressions
  • fixed code generation for INV(Š) function in compiler
  • fixed syntax error if blank line follows SELECT control statement in compiler
  • fixed assembler errors if Region and Language was set for comma decimal separator
  • Release 402 - Dec 19, 2011
    New Features
  • added support for manually typing debug commands in the Serial I/O window.
  • system target files are now installed with the IDE software
  • system target files are loaded from the following folder:
       ~\Program Files\Micromega\uM-FPU V3 IDE rxxx\Target Files
       (where rxxx is the IDE software revision number)
  • user target files are now loaded from the following folder:
       My Documents\Micromega\Target Files
  • added procedure call for DEVIO using same symbols as #ASM

  • Changes
  • when Find or Replace menu item is selected, the focus moves to the Find field
  • Tools>Add Target FolderŠ menu item has been removed
  • Tools>Add Target FileŠ menu item has been removed
  • Tools>Remove Target File menu item has been removed
  • optimized the code generated for many common expressions
  • in #ASM, added name of label to undefined label error message
  • added support for DWRITE and DREAD
  • in #ASM, LWRITE0, LWRITE, LWRITEA, and #LONG where not accepting negative numbers
  • in #ASM, strings were not being handled properly for SEROUT,1 and SEROUT,5
  • float variables were generating code for writeLong instead of writeFloatv
  • corrected definition of INC symbol for SETIND instruction
  • Release 401b4 - Dec 19, 2011
  • initial release for uM-FPU64

  • Return to Top