Updated Toolchains for Renesas RX and RL78 Have Been Released (Release 2020q2)

The most popular Renesas targets, RX and RL78, are receiving a refreshed version of the toolchains today, for the first time this year. The updates, improvements or issues resolved are documented below.

The release notes for each of these platforms may be found below, covering what changes each of these new toolchain versions bring:

  • GCC for Renesas (Windows | Linux)
    1. [GCC] [Bug Fix]  Fixed a bug related to the stack usage calculation.
    2. [Newlib][Improvement] Optimized string, labs and ldiv functions.
  • Known issues
    • ES is used without being initialized.

      Workaround: In order to initialize ES, the address should be stored in a far pointer before usage. So instead of:

      ((volatile reg __far*)0x000FFF).bit._1 = 0;

      the code will be:

      volatile reg __far *address0 = 0x000FFF;
      (*address0).bit._1 = 0;

    • The __far keyword is not supported for C++ projects.
    • The OPTLIB library feature is considered deprecated starting with this release, due to the following reasons:
      1. It does not contain all the headers and defines of the ANSI/ISO standard.
      2. Partial implementation of library functions (e.g. standard I/O functions are not all implemented)
      3. The math library sacrifices precision for speed/code size (not IEEE754 compliant)Eventually, it will be completely removed from the product, but it is still available in this release. You should begin planning now to employ alternate methods for any applications, code, or usage that depend on this feature.
  • GCC for Renesas (Windows | Linux)
    1. [GCC] [Bug Fix]  Fixed a bug related to the stack usage calculation
    2. [GCC] [Bug Fix] Fixed a bug related to the mvfc instruction.
    3. [GDB][Bug Fix] New set/show RX GDB options: force-64bit-double, force-isa, force-double-fpu:

      Usage examples:
      set rx force-64bit-double on|off|0|1
      show rx force-64bit-double
      set rx force-isa v1|v2|v3
      show rx force-isa
      set rx force-double-fpu on|off|0|1
      show rx force-double-fpu

    4. [GDB][Improvementrx-elf-run is not compatible with the CCRX open sys library. To achieve this, enable the ccrx-sys-flags options.

      Example: rx-elf-run --ccrx-sys-flags

    5. [Newlib][Improvement]  Optimized string, labs and ldiv functions.
  • Known issues
    • For a full list of known issues, please refer to this toolchain’s release notes available here.

The Linux installer for both toolchains also offers command-line flags to automate installation as much as possible, as well as the ability to also act as an uninstaller for the toolchains. Therefore, the installer can both install and uninstall the toolchain from one or more paths from your Linux distribution. The release notes for both toolchains also include the list of the currently known issues presented above, to which we fully commit to adequately handle in the coming updates.

We are deeply grateful for any feedback you may have regarding this release, so please let us know if you have any questions or comments.

Leave a Reply