Documentation on this board is too sparse. For the average hobbyist it’s too cryptic to figure many things out. It took me several hours to get everything set up and I still don’t understand how to get wifi working. Are there any instructions or examples I can look up? All I found was this: https://github.com/sifive/riscv-zephyr/tree/hifive1-revb/drivers/wifi and this: Hifive1 revb WiFi
But these are ridiculously complex. Shouldn’t there just be a Wifi library?
Another thing I can’t figure out is how to get/set the clock speed. There’s metal_clock, but it’s totally unclear how I’m actually supposed to use it. This is the doc: ht tps://sifive.github.io/freedom-metal-docs/apiref/clock.html#structmetal__clock (This forum has a restriction for new users to only add two links into a post)
All the functions require a metal_clock, but the doc explicitly says:
Note that no mechanism for obtaining a pointer to a
struct metal_clockhas been defined, making it impossible to call any of these functions without invoking implementation-defined behavior.
What does that mean? I found no usage example of this, even though IMO this is a very basic functionality, considering this board was advertised as having a fast and low power chip, and as having wifi.
One more thing I can’t wrap my head around is why Rev. B has dropped support for the Arduino IDE which would have been much more user friendly than “FreedomStudio”. This wasn’t advertised anywhere except for some small note in chapter 7 or so of the getting started guide. The naming of Rev. B itself is also misleading, causing people to think that it’s going to be at least mostly compatible with the first one, but in fact a lot of the documentation for the first version is now obsolete - sifive should’ve called this hifive2 or something, to avoid confusion and make googling things easier.