| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | 
							- /*
 
-  * srm32sprog.h
 
-  *
 
-  *  Created on: Apr 12, 2016
 
-  *      Author: jesstr
 
-  */
 
- #ifndef SRM32SPROG_H_
 
- #define SRM32SPROG_H_
 
- #include "stm32f4xx_usart.h"
 
- #include "gpio_io.h"
 
- #include "serial.h"
 
- #include "sys/types.h"
 
- #define MAX_CONNECT_RETRIES	3
 
- #define DEFAULT_BAUD 57600
 
- #define MAX_BLOCK_SIZE 256
 
- static const uint8_t ACK = 0x79;
 
- typedef enum {
 
-     CMD_GET_VERSION = 0x00,
 
-     CMD_GET_READ_STATUS = 0x01,
 
-     CMD_GET_ID = 0x02,
 
-     CMD_READ_MEM = 0x11,
 
-     CMD_GO = 0x21,
 
-     CMD_WRITE_MEM = 0x31,
 
-     CMD_ERASE = 0x43,
 
-     CMD_EXTENDED_ERASE = 0x44,
 
-     CMD_WRITE_PROTECT = 0x63,
 
-     CMD_WRITE_UNPROTECT = 0x73,
 
-     CMD_READ_PROTECT = 0x82,
 
-     CMD_READ_UNPROTECT = 0x92
 
- } Command;
 
- #define NUM_COMMANDS_KNOWN 12
 
- enum {
 
-     ID_LOW_DENSITY = 0x0412,
 
-     ID_MED_DENSITY = 0x0410,
 
-     ID_HI_DENSITY = 0x0414,
 
-     ID_CONNECTIVITY = 0x0418,
 
-     ID_VALUE = 0x0420,
 
-     ID_HI_DENSITY_VALUE = 0x0428,
 
-     ID_XL_DENSITY = 0x0430,
 
-     ID_MED_DENSITY_ULTRA_LOW_POWER = 0x0436,
 
-     ID_HI_DENSITY_ULTRA_LOW_POWER = 0x0416
 
- };
 
- typedef struct {
 
-     uint8_t bootloaderVer;
 
-     bool commands[NUM_COMMANDS_KNOWN];
 
-     uint32_t flashBeginAddr;
 
-     uint32_t flashEndAddr;
 
-     int flashPagesPerSector;
 
-     size_t flashPageSize;
 
-     useconds_t eraseDelay;
 
-     useconds_t writeDelay;
 
- } DeviceParameters;
 
- int stm32sprog_test(void);
 
- void usleep(uint32_t us);
 
- void stmRebootForFlash(void);
 
- void stmReboot(void);
 
- uint32_t stmCalcFlashCrc(void (* periodic_handler)(uint8_t));
 
- uint32_t stmReadFlashCrc(void);
 
- bool stmConnect(void);
 
- bool stmGetDevParams(void);
 
- bool stmEraseFlash(void);
 
- bool stmEraseFW(void);
 
- bool stmWriteBlock(uint32_t addr, const uint8_t *buff, size_t size);
 
- void stmProg( uint32_t* addr, uint8_t * ptr, uint32_t len);
 
- #endif /* SRM32SPROG_H_ */
 
 
  |