V1.0.2 Release of Arduino IDE Board Support Package

If you’re an Arduino IDE user, we’ve released v1.0.2 of the Board Support Package.

If you’ve already installed earlier versions, you should see an “Update” button when you do Tools-> Boards-> Board Manager and search for the SiFive boards.

What’s changed?

  • Updated OpenOCD to make uploading more reliable
  • Updated the version of GDB to allow debugging ‘C’ extension programs.
  • Cleaned up the delay(), millis(), and micros() functions to be more efficient and avoid glitches.
  • Added a ~320MHz clock option for the HiFive1
  • Fixed issues uploading to the Arty Dev Kit Board.

You can browse or contribute to the the source code here:

1 Like

Thanks Megan!

Nice to have the 320 MHz option. Works fine on my board. Would be interesting to know how much faster it can go.

Consecutive calls to micros() have changed from 4 uS to 0 uS 70% of the time, 1 uS 30% of the time. So about 0.3 uS I guess.

Note that the PLL is only rated to 384Mhz and we only qualified the boards at +320MHz. If you try to program something the board can’t handle, you’ll probably need to use the “safe” bootloader to recover, so you should learn to use it before going nuts with the clock rate.

The clock configuration code uses functions now included in the freedom-e-sdk:
https://github.com/sifive/freedom-e-sdk/tree/master/bsp/drivers/fe300prci

The problem with just using those to change the clock is that the rest of the Arduino code needs F_CPU for UART Baud Rate, delay(), etc, so redefining this is the most reliable way to play with this in Arduino-land. See:


(on linux, this is placed in ~/.arduino15/packages/sifive when you download the package).