Robust endianness conversion

UPD: As Shafik Yaghmour has pointed out, the solution below is an undefined behaviour, due to the use of an inactive member of the union. Another solution is using the fact, that we are allowed by the standard to cast pointers to char (std::int8_t) and unsigned char (std::uint8_t). So we get rid of pointers, fill an array of bytes, reverse it and copy the data back to the user. Here’s the link to play with.

Comparison between MC149.01 and Piksi Multi

During the preliminary testing of the MC149.01 receiver, I was curious about checking our receiver against some other NT1065-based device. As far as I know, the most widespread one is the Piksi Multi by Swift Navigation. This is a remarkable ZynQ-based receiver with the best user-software I’ve seen. One of the advantages that we share is the software-defined processing: both the MC149.01 and the Piksi can be further upgraded to process more signals and improve receiver quality.

Modern C++ in the embedded world

A lot has been said and done about modern (post-2011) C++. Most of the times it makes your code more expressive, which often leads to better optimizations from the compiler. As you may know, I’m currently working on a triple-band GNSS receiver, which is built upon the BBP2 SoC. This SoC has two NeuroMatrix DSPs and one ARM1176JZF-S core. NeuroMatrix has a very old toolchain, even pre-standardization era (~1995). ARM compiler toolkit is built upon some GCC version with C++11 core language support, but no library support.


© 2018. All rights reserved.

Powered by Hydejack v7.5.1