Re: [xpcc-dev] some xpcc questions
Hi Wouter,
On 27 Aug 2015, at 23:20, Wouter van Ooijen <wouter@voti.nl> wrote:
Thanks for the long reply, which gives me some hints how to read your code. I'll probably come with some more questions later.
You are of course welcome to post it on your mailing list!
Do you know of other groups or individual who are using C++ in this let's call it 'advanced' way on small systems? I now know myself, Odin Holmes with his Kvasir, and you. (BTW I added you to http://www.voti.nl/blog/?page_id=144). I found your work by pure accident, so extrapolating from that there must be more. It would be nice to at least be mutually aware of all such efforts!
Yes, of course. Christopher Kormanyos [1] wrote a book called “Real Time C++” [2] which is a very good generic introduction into the topic, but does not cover interface design as found in xpcc. Christian Menard wrote an AVR C++ library call “yalla” [3], which is very impressive in its _consistent_ use of C++14. He also contributed to xpcc with a pull-request. Andy has a very popular framwork called stm32cpp [4], which is however more “traditional” in its use of C++ and he builds on the CMSIS HAL layers provided by ST, which are written in C and this can limit the C++ interface. He also has a very interesting TCP/IP stack written in pure C++ [5], which might be a good alternative for LWIP, and some really awesome hardware projects, like a FPGA sprite engine [6]. By far the most technologically impressive framework is written by Google Engineer C. Biffle, called ETL [7]. It only covers the STM32F407 and not all functionality of it, but his incredible in-depth knowledge of C++ and the amazing design of some of his APIs deeply impressed me. I really need to append his implementation of typesafe register access [8] to our blog post about it. There is also a OS kernel called Miosix [9], which aims to provide full C++ standard libraries, including posix compatible threading API, with a really cool scheduler. Only works on ARM, though. A framework called McuCpp [10] written by Konstantin Chizhov most closely resembles xpcc. He has very similar ideas of using static polymorphism for GPIOs and device drivers and even uses the same build system (SCons). However, xpcc is a lot more complete and it is a lot easier to describe different peripheral hardware using our meta-template build system. Those are all I remember from the top of my head, I hope I did not forget anything. If you’re reading this on the list and have an awesome C++ µC library, just give it a shout-out. Cheers, Niklas [1]: https://github.com/ckormanyos [2]: http://www.springer.com/us/book/9783642346873 [3]: https://github.com/chrism333/yalla [4]: https://github.com/andysworkshop/stm32plus [5]: http://andybrown.me.uk/2013/07/14/stm32plusnet/ [6]: http://andybrown.me.uk/2014/06/01/ase/ [7]: http://cliffle.com/project/etl/ [8]: https://github.com/cbiffle/etl/tree/master/biffield [9]: https://miosix.org [10]: https://github.com/KonstantinChizhov/Mcucpp
participants (1)
-
Niklas Hauser