Hi all,
We are a startup in China, making Bluetooth Low Energy chips. We are happy to adopt Nim in parallel with C/C++ in our SDK([1]).
There are many benefits to use Nim instead of C.
With metaprogramming, we can create advertising and GATT profile at compile time, which has 0 overhead in runtime. Truly awesome.
For example, to create an iBeacon (for WeChat Shake):
let advData = ToArray([Flags({LEGeneralDiscoverableMode, BR_EDR_NotSupported}), iBeacon("{E9052F1E-9D67-4A6E-B2D7-459D132D6A94}", 0, 0, -50)])
Nim is more strongly typed than C, which can help to make code safer.
c2nim rocks. (Later, I got to know nimterop, tried, and fount that c2nim seems better for our case)
Thank @Araq and many others for making this happen.
P.S. Our chip is on the way to mass production and will be general available soon.
I don't know how you design your chips but if you are using Verilog, be sure to checkout this repo: https://github.com/kaushalmodi/nim-systemverilog-dpic
And awesome news!
https://github.com/ingchips/ING918XX_SDK_SOURCE/tree/master/examples-nim
https://github.com/ingchips/ING918XX_SDK_SOURCE/blob/master/src/Tools/btdatabuilder.nim
Seems to still be some Nim code shipped with their SDKs: https://github.com/ingchips/ING918XX_SDK_SOURCE/tree/a15b9e7b03e72ace237a0680de541548a48d059f/examples-gcc/smart_home_hub
Should be fairly easy to use Nim with any such chip though, but cool that they have official examples!