Books on programming for hifive1 revb boards?

I’m just getting started with hifive1 revb boards, in freedom studio, in C, and I was wondering whether there were any books on this? In other words, like Arduino or even the Pico, a book, or books, on getting started with the Freedom E SDK, metal, etc. in C Freedom Studio. Not Rust or any other alternative programming language. I mean, specifically, C, or variants of C, in FS.

Anyone?

I think that everything you need is going to be available from SiFive. I’m not aware of any published books on this matter.

I don’t understand what “in FS” means. Maybe you can explain?

1 Like

FS is presumably Freedom Studio.

1 Like

Hello Jonathan. I am also working on the HiFive1 rev B board for my project. I have some experience in programming multiple Cortex M based MCUs so I got the hang of HiFive1 rev B like after 1 or 2 weeks.

You can start with reading examples on Freedom Studio, if you meet problems, don’t be shy, comes to the forum and ask directly. FE310-G002 is a new chip so everyone is new to using it.

Compared with bare metal programming (directly manipulate device memory), using the E SDK to program is highly recommended in my opinion. It is safer and faster to code and supports all chip features. But in order to use it you should have ideas on the device memory mapping, ROM and RAM difference, etc. some common MCU knowledge. The FE310-G002 Manual v1p0 (prismic.io) should be helpful. Plus it is a RISC-V core, you need to read the RISC-V manual too Volume 2, Privileged Spec v. 20190608.

The document of Freedom E SDK can be found at Freedom Metal — Freedom Metal v20.05.01.00 documentation (sifive.github.io). It is not beginner friendly, you probably need to do some testing there.

After finishing all of that, learn how to use FreeRTOS, it should take a week or so to learn it because it is simple. Remember, only after using RTOS, the power of the MCU can be fully released. I highly suggest using a RTOS anytime, for any project, because it is an expensive board, you do not want to use it to do the same thing which a 10Mhz 8051 can handle.

In the end, as a C/Linux programmer for more than 3 years, l can say that C is simple but beautiful, I have no idea of Rust or Go, and will not try to learn them now, because I feel like I am still a new programmer on C. Even after thousands of lines, I still learn new things everyday. :upside_down_face:

1 Like

Thanks. It would be more helpful if, for example, there were more copious examples, like with arduino, where they have examples for nearly every basic scenario you would employ. Then you can pick it up and start improvising almost immediately, and that is the best way to learn - by example.

With hifive1 revb and freedom studio, there is, for sake of illustration, a single I2C example, and it isn’t even a practical one. Why not demonstrate something practical, like using the board with a LCD1602 over I2C? See what I’m getting at?

1 Like

Obviously.