11#include "devicelist.h"
16static void Flash_exec(
Shell *, uint8_t *);
18DEFINE_PROGRAM_HANDLE(
"flash", Flash_exec)
31static void Flash_exec(
Shell *shell, uint8_t *flags) {
35 if (!strcmp(flags, CMD_FLASH_ERASE)) {
36 usb->
print(usb,
"Clearing flash... ");
38 usb->
print(usb,
"Done.\n\r");
41 else if (!strcmp(flags, CMD_FLASH_READ_ALL)) {
43 volatile uint8_t pageData[256];
44 for (
long i = 0; i < flash->
pageCount; i++) {
45 flash->
readPage(flash, i * 0x100, pageData);
46 for (
int j = 0; j < flash->
pageSize; j++)
47 usb->
send(usb, pageData[j]);
DeviceHandle_t DeviceList_getDeviceHandle(DeviceKey)
Retrieve device handle from list by key.
Struct definition for shell interface.
void(* print)(struct UART *, char *)
UART print string method.
void(* send)(struct UART *, uint8_t)
UART send method.
Struct definition for UART interface.
void(* readPage)(struct W25Q128 *, uint32_t, volatile uint8_t *)
Read page method.
int pageSize
Number of bytes per page.
void(* erase)(struct W25Q128 *)
Chip erase method.
long pageCount
Total number of pages.