kmilo17pet / QuarkTS

An open-source OS for embedded applications that supports prioritized cooperative scheduling, time control, inter-task communications primitives, hierarchical state machines and CoRoutines.
MIT License
198 stars 31 forks source link

Interfacing with C++ #3

Closed HpLightcorner closed 4 years ago

HpLightcorner commented 4 years ago

Hey QuarkTS Team,

Issue: QuarkTS ist currently not compatible to C++ as keywords - private - are used in the QuarkTS code.

Plattform/Compilers: C++11 compilers: MSVC, CLANG and Compilers for ARM as well as Aurix Tricore. OS: Windows and MacOS Microcontrollers: Aurix TRICORE

Suggested Solution: If C++ Support - e.g. to implement a small Operating System-Abstraction Layer to a C++ application - is planned for the future, refactor code to not use keywords, e.g. __private_qts__

I found your really interesting OS and I am currently testing QuarkTS to be used in an ongoing project. As I do have a C++11 compiler available for my Microcontroller, I am working on a small Operating-Abstraction-Layer to offer a C++ Interface for QuarkTS C Code.

Today I spend some time rewriting parts of the code as for "private variables inside structures", the C++ keyword private is actually used - causing at least my compiler to fail.

Also, there seems to be an issue with the definition of "unsigned int" somewhere in the code (did not found that issue till now).

If it is planned in the future to be compatible to C++, which I think is a really good idea as QuarkTS and its simplicity to port it (non-preemptive of course) is outstanding, I would suggest to refactor the code to not use C++ keywords like private - maybe renaming it to __private_qts__ or something similar.

If you like, I could also do a Pull-Request to share my changes to QuarkTS to be C++ compatible.

Kind regards

kmilo17pet commented 4 years ago

Hi HpLightcorner, Sure, we are glad to include changes that improve the OS compatibility. We are already a little ahead of what you tell me (see the last commit 39a8ae4 .

However, I would like to see your pull request in case I missed something.

Best.

HpLightcorner commented 4 years ago

Hey, @kmilo17pet - the last commit is exactly what I was looking for! I will check my changes and if necessary make the pull-request, but from now everything seems to be done.

Thanks in advance!

By the way: I am working on the Infineon Aurix TriCore Platform, so if everything works fine you can add that one to your supported devices list