ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
1008498 Топик полностью
Nikolay801_ (01.06.2020 11:35, просмотров: 289) ответил VLLV на Увы, это как раз и не работает (hardfault из-за невыравненного доступа)
а ежели так, то по любому не получится в исходном массиве разбираться по отдельным кускам, ибо 3 не четное и через одно будет залет на хард фаулт, только через копию. 

Завел локальную временную структуру, туда скопировал побайтно, поменял, сохранил обратно побайтно

typedef __packed struct{
  uint8_t a;
  uint8_t b;
  uint8_t c :4;
  uint8_t d :4;
}SomeType;
uint8_t arr[1024] ={0};
void foo(void){
  SomeType data;
  memcpy(&data, &arr[20], 3);
  data.a = data.c + data.d;
  memcpy(&arr[20], &data, 3);
}
Будь ты проклят, Перри-Утконос!