LINUX.ORG.RU

История изменений

Исправление Beewek, (текущая версия) :

Да, дело было в выравнивании. Мне хватило задать длины строк кратные 4, и указать инициализаторы для строк:

struct AppHeader
{
	uint32_t signature;
	uint32_t hwVersion;
	uint32_t flags;
	char description[32] {};
	uint32_t crc;
};

constexpr AppHeader appHeader __attribute__((section(".app_header"), used)) =
{
	0x12345678,
	2,
	0,
	"My cool app",
	.crc = compileCrc32(&appHeader, offsetof(AppHeader, crc))
};

Ещё раз спасибо за подсказку.

Исходная версия Beewek, :

Да, дело было в выравнивании. Мне хватило задать длины строк кратные 4, и указать инициализаторы для строк:

struct AppHeader
{
	uint32_t signature;
	uint32_t hwVersion;
	uint32_t flags;
	char description[32] {};
	uint32_t crc;
};

constexpr AppHeader appHeader __attribute__((section(".app_header"), used)) =
{
	sizeof(AppHeader),
	0x12345678,
	2,
	0,
	"My cool app",
	.crc = compileCrc32(&appHeader, offsetof(AppHeader, crc))
};

Ещё раз спасибо за подсказку.