140 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef dev_flash_h__
 | 
						||
#define dev_flash_h__
 | 
						||
 | 
						||
 | 
						||
#include "stdint.h"
 | 
						||
 | 
						||
 | 
						||
 | 
						||
#pragma pack (1)
 | 
						||
typedef struct{
 | 
						||
  uint32_t file_size;//文件长度,不包括文件名
 | 
						||
  char name[120];
 | 
						||
  int used; // 初始值为0xffffffff,每使用一次添加一个0
 | 
						||
}flash_file;
 | 
						||
#pragma pack ()
 | 
						||
#define FLASH_FILE_HEAD_SIZE  128
 | 
						||
 | 
						||
 | 
						||
 | 
						||
int flash_erase_param(void);
 | 
						||
int flash_erase_app1(void);
 | 
						||
int flash_erase_app2(void);
 | 
						||
int flash_erase_slave(void);
 | 
						||
int flash_erase_scheme(void);
 | 
						||
int flash_erase_lua(void);
 | 
						||
int flash_erase_jwtcode(void);
 | 
						||
 | 
						||
uint32_t *flash_get_param(void);
 | 
						||
uint32_t *flash_get_app2(void);
 | 
						||
uint32_t *flash_get_slave(void);
 | 
						||
uint32_t *flash_get_scheme(void);
 | 
						||
uint32_t *flash_get_lua(void);
 | 
						||
uint32_t *flash_get_jwtcode(void);
 | 
						||
 | 
						||
int flash_write(uint8_t *addr,const uint8_t *data,int len);
 | 
						||
int flash_operate_end(void);
 | 
						||
int flash_write_with_erase(uint8_t *addr,const uint8_t *data,int len);
 | 
						||
int flash_erase_addr(uint32_t addr);
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
#pragma pack (1)
 | 
						||
typedef struct{
 | 
						||
  uint32_t size;
 | 
						||
  char pack_time[20];
 | 
						||
  uint32_t crc;
 | 
						||
  uint8_t local_ip[4];
 | 
						||
  uint8_t host_ip[4];
 | 
						||
  int host_port;
 | 
						||
  char host_if[8];
 | 
						||
  char device_type[12];
 | 
						||
}rom_head;
 | 
						||
#pragma pack ()
 | 
						||
 | 
						||
#define ROM_HEAD_SIZE 128
 | 
						||
 | 
						||
 | 
						||
uint8_t *flash_get_rom(rom_head **head);
 | 
						||
 | 
						||
int flash_updata_app(uint8_t *rom,uint32_t size);
 | 
						||
int flash_updata_boot(uint8_t *rom,uint32_t size);
 | 
						||
 | 
						||
 | 
						||
 | 
						||
 | 
						||
// 系统参数
 | 
						||
#pragma pack (1)
 | 
						||
typedef struct{
 | 
						||
  char pack_time[20];// 打包时间
 | 
						||
  char host_if[8];// 主机接口
 | 
						||
  char device_type[12];// 设备类型 ,批检仪还是赋码仪
 | 
						||
  uint8_t mac[8];// mac地址
 | 
						||
  int local_id;// 本机识别号
 | 
						||
  int uartbsp;// 串口的波特率
 | 
						||
  int hard_version;// 硬件版本号
 | 
						||
  int resistor_diff;// 电阻校准值
 | 
						||
}sys_param_def;
 | 
						||
#pragma pack ()
 | 
						||
 | 
						||
 | 
						||
int flash_save_param(sys_param_def *par);
 | 
						||
const sys_param_def *sys_param(void);
 | 
						||
 | 
						||
#pragma pack (1)
 | 
						||
#if 1
 | 
						||
typedef struct{
 | 
						||
  uint16_t max;
 | 
						||
  uint16_t min;
 | 
						||
  uint8_t err;
 | 
						||
}scheme_range_def;
 | 
						||
typedef struct 
 | 
						||
{
 | 
						||
  uint8_t taskid;
 | 
						||
  uint8_t taskindex;
 | 
						||
  uint8_t item_num;
 | 
						||
  uint8_t err;
 | 
						||
  scheme_range_def range[16];
 | 
						||
}scheme_task_def;
 | 
						||
#else
 | 
						||
__packed
 | 
						||
typedef struct{
 | 
						||
  uint32_t max;
 | 
						||
  uint32_t min;
 | 
						||
  uint32_t err;
 | 
						||
}scheme_range_def;
 | 
						||
__packed
 | 
						||
typedef struct 
 | 
						||
{
 | 
						||
  uint32_t taskid;
 | 
						||
  uint32_t taskindex;
 | 
						||
  uint32_t item_num;
 | 
						||
  uint32_t err;
 | 
						||
  scheme_range_def range[16];
 | 
						||
}scheme_task_def;
 | 
						||
#endif
 | 
						||
typedef struct{
 | 
						||
  uint8_t err;
 | 
						||
  uint8_t suberr_num;
 | 
						||
  uint8_t suberr[30];
 | 
						||
}marerr_def;
 | 
						||
// 方案参数
 | 
						||
typedef struct{
 | 
						||
  uint8_t slave_data[2048];
 | 
						||
  uint32_t plan_id;
 | 
						||
  uint32_t timeout_m;
 | 
						||
  uint32_t task_num;
 | 
						||
  uint32_t marerr_num;
 | 
						||
  marerr_def marerr[21];
 | 
						||
  scheme_task_def task[0];
 | 
						||
}scheme_def;
 | 
						||
#pragma pack ()
 | 
						||
 | 
						||
 | 
						||
const scheme_def *check_scheme(void);
 | 
						||
 | 
						||
 | 
						||
#endif
 | 
						||
 |