#include <stdio.h>
#include "stdint.h"
uint64_t get_value() {
return 0x1020304050607080ULL;
}
int main(void) {
uint16_t flash[4] = {0};
uintptr_t flash_addr = &flash;
uint64_t value = get_value();
uint16_t* ptr = (uint16_t*)&value;
uint16_t* dst = (uint16_t*)flash_addr;
for (int i=0; i<4; ++i) {
printf("*ptr = 0x%04x\n", *ptr
); *dst++ = *ptr++;
}
printf("&value = %p, value = 0x%llx\n", &value
, value
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlICJzdGRpbnQuaCIKCnVpbnQ2NF90IGdldF92YWx1ZSgpIHsKCXJldHVybiAweDEwMjAzMDQwNTA2MDcwODBVTEw7Cn0KCmludCBtYWluKHZvaWQpIHsKCXVpbnQxNl90IGZsYXNoWzRdID0gezB9OwoJdWludHB0cl90IGZsYXNoX2FkZHIgPSAmZmxhc2g7Cgl1aW50NjRfdCB2YWx1ZSA9IGdldF92YWx1ZSgpOwoJCgl1aW50MTZfdCogcHRyID0gKHVpbnQxNl90KikmdmFsdWU7Cgl1aW50MTZfdCogZHN0ID0gKHVpbnQxNl90KilmbGFzaF9hZGRyOwoJZm9yIChpbnQgaT0wOyBpPDQ7ICsraSkgewoJCXByaW50ZigiKnB0ciA9IDB4JTA0eFxuIiwgKnB0cik7CgkJKmRzdCsrID0gKnB0cisrOwoJfQoJCglwcmludGYoIiZ2YWx1ZSA9ICVwLCB2YWx1ZSA9IDB4JWxseFxuIiwgJnZhbHVlLCB2YWx1ZSk7CgkKCXJldHVybiAwOwp9Cg==