Quote:
Originally Posted by Thad House
You can get a link to clone the repository here. In there, in the HAL folder, there are already C bindings for the HAL. Both the python and the .NET teams use those directly to interface with the HAL. It's actually fairly easy to do.
|
Thanks for the quick reply! I've actually already gotten that working (and will probably be using that for any
actual code I'll write). What I want to do is do a proof-of-concept for writing my own HAL (i.e. interfacing directly with the NI fpga code, manipulating registers myself). The version of THIS that wpilib seems to use is
here as far as I can see. What I'm seeing here is a C++ api to the actual FPGA stuff.
Now, with a little more searching on the ni site, I was able to find what appears to be the
c support files that the user manual mentioned. They're
VERY different from the C++ api, and don't seem to be something that will be kept up to date in the future, but they might work for now.
It would still be great, however, to find where wpilib is getting it's "ChipObject" C++ version of the fpga code. From the
HAL readme, it seems that they get it from
http://github.com/first/ni-libraries, but I don't have access to that, so it's not incredibly helpful. I wonder if they have the C api in there as well as the C++ one? One will never know.
If you're curious about what I'm doing, I'm one of the developers of
zinc, a bare-metal embedded stack written in pure
Rust. I'm hoping to adapt some of the stuff I've written there to do a proof-of-concept of a completely wpilib-free frc development environment.