enum class PCLK_root_divider : unsigned char
{
pll_clki_1 = 0,
pll_clki_2 = 1,
pll_clki_4 = 2,
pll_clki_8 = 3
};
enum class sclk2x_root_divider : unsigned char
{
pll_clki_1 = 0,
pll_clki_2 = 1,
pll_clki_4 = 2,
pll_clki_8 = 3
};
enum class SCLK_root_divider : unsigned char
{
pll_clki_1 = 0,
pll_clki_2 = 1,
pll_clki_4 = 2,
pll_clki_8 = 3
};
struct Whatever
{
SCLK_root_divider _SCLK_root_divider : 2;
sclk2x_root_divider _sclk2x_root_divider : 2;
PCLK_root_divider _PCLK_root_divider : 2;
unsigned char _debug_mode : 2;
};
#include <iostream>
int main()
{
Whatever whatever = { };
whatever._SCLK_root_divider = SCLK_root_divider::pll_clki_8;
whatever._debug_mode = 2;
std::cout << std::hex << static_cast<int>(*reinterpret_cast<unsigned char*>(&whatever)) << std::endl;
return 0;
}
ZW51bSBjbGFzcyBQQ0xLX3Jvb3RfZGl2aWRlciA6IHVuc2lnbmVkIGNoYXIKewoJcGxsX2Nsa2lfMSA9IDAsCglwbGxfY2xraV8yID0gMSwKCXBsbF9jbGtpXzQgPSAyLAoJcGxsX2Nsa2lfOCA9IDMKfTsKCmVudW0gY2xhc3Mgc2NsazJ4X3Jvb3RfZGl2aWRlciA6IHVuc2lnbmVkIGNoYXIKewogICAgcGxsX2Nsa2lfMSA9IDAsCiAgICBwbGxfY2xraV8yID0gMSwKICAgIHBsbF9jbGtpXzQgPSAyLAogICAgcGxsX2Nsa2lfOCA9IDMKfTsKCmVudW0gY2xhc3MgU0NMS19yb290X2RpdmlkZXIgOiB1bnNpZ25lZCBjaGFyCnsKICAgIHBsbF9jbGtpXzEgPSAwLAogICAgcGxsX2Nsa2lfMiA9IDEsCiAgICBwbGxfY2xraV80ID0gMiwKICAgIHBsbF9jbGtpXzggPSAzCn07CgpzdHJ1Y3QgV2hhdGV2ZXIKewoJU0NMS19yb290X2RpdmlkZXIgX1NDTEtfcm9vdF9kaXZpZGVyIDogMjsKCXNjbGsyeF9yb290X2RpdmlkZXIgX3NjbGsyeF9yb290X2RpdmlkZXIgOiAyOwoJUENMS19yb290X2RpdmlkZXIgX1BDTEtfcm9vdF9kaXZpZGVyIDogMjsKCXVuc2lnbmVkIGNoYXIgX2RlYnVnX21vZGUgOiAyOwp9OwoKI2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oKQp7CglXaGF0ZXZlciB3aGF0ZXZlciA9IHsgfTsKCXdoYXRldmVyLl9TQ0xLX3Jvb3RfZGl2aWRlciA9IFNDTEtfcm9vdF9kaXZpZGVyOjpwbGxfY2xraV84OwoJd2hhdGV2ZXIuX2RlYnVnX21vZGUgPSAyOwoJc3RkOjpjb3V0IDw8IHN0ZDo6aGV4IDw8IHN0YXRpY19jYXN0PGludD4oKnJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KCZ3aGF0ZXZlcikpIDw8IHN0ZDo6ZW5kbDsKCXJldHVybiAwOwp9