Россия
  • Global
  • México
  • 中國台灣
  • India
  • Indonesia
  • Türkiye
  • Việt Nam
  • ประเทศไทย
  • Brasil
  • Perú
  • Colombia
  • Argentina
  • Россия
  • السعودية
  • مصر
  • پاکستان
  • Malaysia
  • 日本
  • 中国香港
  • Philippines
Скачать

Upgrade Code — Usb Lowlevel Format 501

// Low-level flash ops (platform-specific; implement accordingly) extern bool flash_erase_block(uint32_t block_index); extern bool flash_write(uint32_t addr, const void *buf, size_t len); extern bool flash_read(uint32_t addr, void *buf, size_t len); extern bool flash_mark_bad(uint32_t block_index); extern bool flash_is_bad(uint32_t block_index); extern bool persist_checkpoint(const checkpoint_t *cp); extern bool load_checkpoint(checkpoint_t *cp); extern void pet_watchdog(void);

typedef struct uint32_t magic; uint32_t version; uint32_t cur_block; uint32_t phase; uint32_t crc32; uint32_t reserved[3]; checkpoint_t; usb lowlevel format 501 upgrade code

static uint32_t crc32_compute(const uint8_t *data, size_t len) uint32_t crc = ~0u; for (size_t i=0;i<len;i++) crc ^= data[i]; for (int k=0;k<8;k++) crc = (crc >> 1) ^ (0xEDB88320 & (-(crc & 1))); return ~crc; // Low-level flash ops (platform-specific

Нажмите, чтобы установить