Release Note for Software Tools v9.9.0 ====================================== Previous release: 9.7.1 NEW FEATURE ENHANCEMENTS ------------------------ * timing analysis * XMOS Timing Analyser (XTA) introduced * XTA Integration into XCC. The XTA is called during compilation to verify timing constraints. Files with a .xta extension are recognised as XTA scripts and passed to the XTA. * OTP programming * New xburn tool for OTP programming * board support * XK-1 board support * xas assembler * Better error handling for non ascii characters in the input file and for out of range escape sequences * Added .jmptable32 directive to create jump tables of 32bit branches * The meta-symbol '.' can now be used to represent the current assembly address. * simulation * Testbench and plugin support for verification as part of a larger design * VCD plugin supports XN names for cores * Loopback port plugin supports XN names * xvcd * Hierarchical signal browser implemented * Signals can now be dragged and droped between the signals and waves views * Symbolic signal names are now taken from the xn file * Backward search for a signal value now supported * Double clicking a singal name now opens it in the waveform view * Added support for timer tracing * Signals now snap to nearest transition * Clicking on a signals in the wave display pane now selects the signal * xmapper/linker * Link identifier in XN files can use the canonical XnLa format * XN files can now contain device specifications * Arrays of coerseable types can be coersed * debugger * Support added for XTAG-2 debug adaptor * xgdb uses of hardware debug capabilities * c/c++ compilation * No emits PC relative jumptables * if possible uses entsp instead of extsp in the prologue of leaf functions * preprocessor * mcpp now supports #warning directive * XDE * Support for generating flash binary file * AES key support for flash programmer * Added option to output a trace file from a simulation * XDE now provides help when the XCore raises an exception * xc language * Implement nullable types * C compatibility * Support for calling varargs functions defined in C * Support fallthrough in switch statements * Support extern variable declarations in function bodies * xc compilation * XC Inliner * Inline assembly for XC * Added post register allocation optimzation phase improves code with variables spilled to stack * Various compiler optimisation improvements * targets MKMSKI instruction for loading constant values * Inputs of a 32 byte value generate redundant sext in xcc1 * Added Warning for unknown pragmas (-Wunknown-pragmas) * Allow fully unrolling loop with #pragma loop unroll * Detecting % POW2 can be replaced with AND * other * xmosar archiver added * Library headers have version number * Windows uninstaller COMPATIBILITY CHANGES TO PREVIOUS RELEASE ----------------------------------------- * simulation * Rename bootRtl option to bootFromRom * Support for xs1a removed * XDE * Removed simulator configuration file option * xc compilation * incompatible reference types now generate error rather than warning * general * -gsource option removed from frontend * XN format has changed so existing XDE projects will need updating. Just drag and drop the appropriate xn file from the configs folder into your project. RESOLVED ISSUES --------------- * runner * xrun crashes when a non-XE file supplied * xrun is not showing all threads * --dumpstate misses a thread in summary * xcc frontend * The -fexceptions option should only be passed to the C/C++ compiler * Incorrect handling of option in the form -fno-* -Wno-* options in some cases * The -fsubword-select option should only be passed to the XC compiler * xas assembler * Weak symbol definition not correctly overridden if it the use is in the same file as its definition. * simulation * Support having the XE name anywhere in command line * VCDs generated should have 2.5ns timescale * client tools installer * Eclipse files not being removed by Windows uninstaller * SetEnv.bat no longer starts a new command prompt * SetEnv.command no longer starts a bash shell at the end on Mac * DYLD_LIBRARY_PATH incorrect on Mac * xvcd * Timescales in xvcd are incorrect * Units in xvcd scale are incorrect * Shift click doesn't select as expected * Moving through signals with left/right button does not update click-through location in code * Shift click issue when scrolling off the screen * Need a separator line in the right click menu * Fix the workspace clashing issue * Make sure we release a ini file * debugger * xrun crash on OS X * xgdb attach printing garbage * Program received signal ET_RESOURCE_DEP, Resource dependancy exception * Flash programming * support for non-standard SPI ports through XN device specification * Added support for programming connected L1 devices from individual flash chips * PLL programming code for L1 devices fixed (re: Oscillator attribute in XN) * board support * UART pins reversed in xn files * Ethernet port mapping on XC-2 on wrong core * timing analysis * Editor should support enter/space to open folding * Add verbosity level to console * Add support for specifying loop counts in source code * Add ability to save jpg for the canvases * Branch targets should be hyperlinks in disassembly viewer * Add recent file opened to menu bar * Add the file/exit and file/open menu options * c/c++ compilation * Miscompilation of call of constant value cast to function pointer type. * XDE * When tracing to file, prevent accidental overwriting of project files * Assembly files not handled correctly * Run I/O server should be on by default * References to char arrays causing label job exception in variables view * Default target device should be RevB * Makefile doesn't consistently add include files * Exception spelling mistake on LOAD_STORE * Need to update tutorial content for 9.5.1 * Stripped XE binaries cause NPE * XC-1 Red LED Project has typo * Need java support for multi-node binaries * Simulator/VCD configuration options in Eclipse need to be based on XN * Missing 'Remove' button for loopback configuration dialog * Use xn names for cores in the signals hierarchy view * Simulator plugin settings seem to be forgotten * xc libraries * configure functions should set port mode to data mode. * exception() should do clre earlier and not destroy LR/R0/R1/R2 * xc compilation * Nested pars - incorrect thread usage check * Use entsp instead of extsp in the prologue of leaf functions * Fixed warning on declaration of void buffered port * Const qualifier on object incorrectly discarded when used with conditional operator * Should allow operands of ? to differ in in / out / void qualifiers * Fails to compile ? operator with one string and char array operand * Fails to compile conditional operator with chan and chanend * Cast of variable incorrectly treated as an lvalue * Assignment incorrectly hoisted out of nested loop at -O3 * Compiler allows multiple declarations of a port with different transfer widths KNOWN ISSUES ------------ * c libraries * link error calling gettimeofday() * OTP programming * Only single node devices are supported * runner * New tools and old FTDI library causes xflash to fail on MacOSX * stdout is printed to stderr * xobjdump * Immediates in dissassembly of ldw doesn't match immediate in assembly * xcc frontend * Possible conflict with Actel FPGA IDE * Compilation fails if the path contains non ASCII characters * xas assembler * In some circumstances UPE can cause local branches to become out of range * Assembler disregards addend when choosing encoding for causing relocation error * The '.include' directive has been removed * simulation * Simulator does not have an OTP model * Testbench/plugin do not support packages with multiple devices * Testbenchs and plugins must be compiled for 32bit on Linux even on 64bit Linux * xvcd * Need to add grouping/unfolding of signals * Vcd has a maximum of 64 bit signal sizes * Interactive VCD view during debug not currently possible * Need to add port shift and transfer register counters * Software view of the vcd signals required (i.e. only signals referenced in the source) * Need to support 'x' values on one-bit signals * Disconnected ports should have an 'x' value * You can't currently use the mouse wheel to scroll signals * xmapper/linker * Resources (e.g. ports) declared in libraries as "on stdcore..." aren't handled correctly. * Mapper reports f.stackwords missing when f is missing * debugger * Debugger does not print values from multiple return functions * Connect to multinode device affects listdevices * xgdb cannot print array elements * Need to show more about JTAG chain in listdevices * Cannot interrupt stepping * XRUN not checking target matches binary * board support * USB interface not specified in XDK.xn * timing analysis * Memory usage on load is exponential with number of functions calls * c/c++ compilation * Error intialising wchar_t array with wide string (c++) * XDE * There is no "clean" target in makefiles * Compiler error not showing in problems tab * Eclipse does not "Remember my decision" for Errors in Workspace, continue? * Nonexistent include paths are not handled correctly * Refresh issue with variables view on windows * Register view does not update when switching threads * Modules view goes haywire with multiple instances of function name * XDE does not work with Chinese characters in path * Changing the device doesnt recompile all source * Variable format setting forgotten * Instruction Stepping mode often shows instrs from incorrect core * View variable as hex not working * Step-over on paused instruction will not cancel * Cannot change target setting after creating a project * Handling of source files in 'New Source File' dialog box not consistent with spec * xc compilation * Inliner will not inline functions with static local variables, when used as right hand side of short circuit operator, string literal arguments, multiple return functions * Erroneous parser errors can occur in very large source files * port / timer expression for predicated input evaluated twice