3 This file is part of the AVR-Crypto-Lib.
4 Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de)
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
21 * \email daniel.otte@rub.de
24 * \license GPLv3 or later
32 #include <avr/pgmspace.h>
33 #include <avr/eeprom.h>
35 #include "string-extras.h"
39 void pgm_read_block(void* buffer, uint32_t addr, uint8_t length);
40 void ee_read_block(void* buffer, uint32_t addr, uint8_t length);
41 void ram_read_block(void* buffer, uint32_t addr, uint8_t length);
43 const char flash_trigger[] PROGMEM = "fF";
44 const char ram_trigger[] PROGMEM = "sSrRmM";
45 const char eeprom_trigger[] PROGMEM = "eE";
47 const char flash_desc[] PROGMEM = "flash";
48 const char ram_desc[] PROGMEM = "ram";
49 const char eeprom_desc[] PROGMEM = "eeprom";
51 typedef const struct {
54 void (*fpt)(void*, uint32_t, uint8_t);
57 memtype_desc_t memtype_desc[] PROGMEM = {
58 { flash_trigger, flash_desc, pgm_read_block },
59 { eeprom_trigger, eeprom_desc, ee_read_block },
60 { ram_trigger, ram_desc , ram_read_block },