| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- #ifndef __MYFLASH_H__
- #define __MYFLASH_H__
- #include <stdint.h>
- #include <n32g45x_flash.h>
- #include <stdio.h>
- #include "application.h"
- #define VECT_TAB_OFFSET 0xC000
- #define DRONECAN_INFO_ADDR 0x08009000
- #define IAP_FLAG_ADDR 0x0800A000
- #define DEV_INFO_ADDR 0x0800A800
- #define CONF_INFO_ADDR 0x0800B000
- #define BOOT_INFO_ADDR 0x0800B800
- #define IAP_UN_FLAG 0x00000000
- #define IAP_FLAG 0x12345678
- #define FLASH_APP1_ADDR 0x0800C000
- #define FLASH_PAGE_SIZE 0x800 // page 2k
- #define UID_ADDR 0x1FFFF7F0
- #define BOOT_VERSION 51104U
- uint32_t flash_read_32bit( uint32_t addr ); //?????
- void flash_write_32bit( uint32_t addr, uint32_t data );
- int flash_erase_page( uint32_t addr );
- void flash_read( uint32_t address, uint8_t *data, uint32_t length );
- int flash_write( uint32_t address, uint8_t *data, uint32_t length );
- void write_iap_flag( void );
- #define DRONECAN_UPDATE_CONTEXT_MAGIC 0x44554331UL /* "DUC1" */
- #define DRONECAN_UPDATE_CONTEXT_VERSION 1U
- #define DRONECAN_FILE_PATH_MAX_LENGTH 200U
- #define DRONECAN_UPDATE_CONTEXT_ADDR DRONECAN_INFO_ADDR
- #define DRONECAN_UPDATE_STATE_PENDING 1U
- typedef struct
- {
- uint32_t magic;
- uint16_t version;
- uint16_t size;
- uint32_t crc32;
- uint8_t state; /* PENDING / DOWNLOADING / FAILED */
- uint8_t local_node_id;
- uint8_t file_server_node_id;
- uint8_t upgradeEable;
- uint32_t can_bitrate;
- uint8_t path_length;
- uint8_t path[DRONECAN_FILE_PATH_MAX_LENGTH];
- } DroneCAN_UpdateContext;
- extern DroneCAN_UpdateContext dronecanUpdateInfo;
- uint32_t DroneCAN_UpdateContextCalcCRC32( const DroneCAN_UpdateContext *context );
- int DroneCAN_UpdateContextWrite( void );
- extern uint8_t uid[12];
- void read_uid( uint8_t *uid );
- #define IAP_VFLAG 0x1001
- typedef struct _iap_info
- {
- uint32_t ValidFlag;
- uint32_t UpgradeFlag;
-
- } IAP_INFO;
- extern IAP_INFO iap_info;
- void read_iap_info( void );
- void write_iap_info( void );
- #define DEVINFO_VFLAG 0x1001
- typedef struct _dev_info
- {
- uint32_t sn;
- uint32_t ValidFlag;
- uint32_t upgradeMode;
- char dev_name[32];
- uint32_t hard_ver;
- uint32_t soft_ver;
- } DEVICE_INFO;
- extern DEVICE_INFO devInfo;
- void read_dev_info( void );
- void write_dev_info( void );
- void check_dev_info( void );
- #define CONFPAR_VFLAG 0x1001
- typedef struct _conf_info
- {
- uint32_t ValidFlag;
- uint32_t DeviceType; // 6: 4D_Front 7:4D_Rear 8:4D_Terrain
- uint16_t MaxDist; // 最大识别距离 (保留)
- uint16_t PowerFilterLevel; // 能量过滤等级
- uint16_t RawDataFlag; // 数据采集标志 0:关闭,1:开启
- int16_t CompensateAngle; // 安装偏差角度
- uint16_t HeightFilterValue; // 高度过滤系数
- uint16_t BlindDistance; // 盲区距离
- uint16_t upgradeMode; // 雷达升级模式 0:VK 1:dronecan
- uint16_t canBitrate; // CAN BITRATE
- uint16_t ReserveValue_3; // 保留
- uint16_t ReserveValue_4; // 保留
- } CONF_INFO;
- extern CONF_INFO confInfo;
- void read_conf_info( void );
- void write_conf_info( void );
- void check_conf_info( void );
- #define BOOT_VFLAG 0x1001
- typedef struct _boot_info
- {
- uint32_t validFlag;
- uint16_t boot_version; // boot版本信息
- uint32_t boot_bak; // 预留备份
- } BOOT_INFO;
- extern BOOT_INFO bootInfo;
- void read_boot_info( void );
- void write_boot_info( void );
- void check_boot_info( BOOT_INFO *info );
- #endif /*__MYFLASH_H__*/
|