⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bootloader.h

📁 t89c51cc(atmel)单片机下的can协议下bootleader的源代码
💻 H
字号:
/*H******************************************************************************
* FILE_NAME         : bootloader.h                                             
*----------------------------------------------------------------------------
* FILE_CREATED_BY   : BERTHY JS                                             
* FILE_CREATION_DATE: 1/06/00                                              
*----------------------------------------------------------------------------
* FILE_PURPOSE:    
*
******************************************************************************/

#include "can_lib.h"

#define BOOTLOADER_VERSION	0x20
#define DEVICE_BOOT_ID1			0x01
#define DEVICE_BOOT_ID2			0x00

#define SIZE_COLUMN_LATCH   0x10
#define ERASE_SYMBOL 				0xFF

/********* LEVEL of SOFTWARE SECURITY BITS */
#define NO_SECURITY				0xFF
#define WRITE_SECURITY		0xFE
#define RD_WR_SECURITY		0xFC


#define MAX_OFFSET_ID			0x7F0

#define BSB_ADD				0x00
#define SBV_ADD				0x01
#define SSB_ADD				0x05
#define XEB_ADD			  0x06
#define BT1_ADD				0x1C
#define BT2_ADD				0x1D
#define BT3_ADD				0x1E
#define NNB_ADD				0x1F
#define CRIS_ADD			0x20


/********** COMMAND FOR PROTOCOL  */
#define CAN_ID_SELECT_NODE					0x00
#define CAN_ID_PROG_START						0x01
#define CAN_ID_PROG_DATA            0x02
#define CAN_ID_DISPLAY_DATA         0x03
#define CAN_ID_WRITE_FUNCTION       0x04
#define CAN_ID_READ_FUNCTION        0x05
#define CAN_ID_ERROR								0x06

// return value 
//---------------
#define COMMAND_OK		 		0x00
#define COMMAND_FAIL	 		0x01
#define COMMAND_NEW_DATA 	0x02 // for program flash command only


#define ERROR_SECURITY   0x00

/********** COMMAND FOR BOOTLOADER */

#define ID_API_ERASE_BLOCK				0
#define ID_API_PROGRAM_DATA				1
#define ID_API_READ_DATA				3
#define ID_API_PROGRAM_XAF				4
#define ID_API_READ_XAF					5
#define ID_API_FULL_CHIP_ERASE			6
#define ID_API_PROGRAM_FUSE_BIT			7
#define ID_API_READ_HW					8
#define ID_API_READ_EEPROM				9
#define ID_API_LAUNCH_EEPROM			10

#define ID_API_LAUNCH_PRG_FLASH		13
#define ID_API_READ_SPECIAL				14

#define WAIT_EEBUSY								21// just for api_management
#define WAIT_COMMAND							22


extern bdata Uchar flag;
extern bit flag_7;	  
extern bit flag_6;	  
extern bit flag_5;	  
extern bit flag_4;	  
extern bit flag_3;	  
extern bit flag_2;	  
extern bit flag_1;	  
extern bit flag_0;

#define f_frame_to_send				flag_7
#define f_new_protoc_command	flag_6
#define f_new_conf						flag_5
#define f_communication_open	flag_4
#define f_command_ongoing			flag_3
#define f_timeout							flag_2
#define f_timing_ok						flag_1
#define f_flash_eeprom_area		flag_0

#define f_start_from_appli	f_timing_ok

extern Uint16 can_id; 
extern Uchar can_rx[];
extern Uchar can_tx[];
extern Uchar can_ctrl;


extern Uchar ssb_copy; 
extern Uint16 offset_id_copy;


extern Uint16 address_start;

extern Uchar api_command;
extern Uchar api_value;
extern Uchar api_dpl;
extern Uchar api_dph;
extern Uint16 api_nb_trame;
extern Uint16 api_nb_octet;
extern Uchar  api_nb_data;
extern Uchar* api_pt_data;


/* function prototype */ 
extern void protocol_task (void);
extern void protocol_task_init (void);

extern void api_task 		(void);
extern void api_task_init   (void);

extern void boot_task	  (void);


extern void API_RD_XAF  (void);
extern void API_RD_FLASH(void);
extern void API_RD_HW   (void);

extern void API_LAUNCH_PRG_XAF	(void);
extern void API_LAUNCH_PRG_FLASH(void);
extern void API_LAUNCH_PRG_FUSE	(void);
extern void API_ERASE_BLOC_8K		(void);
extern void API_ERASE_BLOC_16K(void);
extern void API_FULL_CHIP_ERASE(void);
extern void API_WR_FLASH_CL(void);

extern void API_LAUNCH_PRG_EEPROM(void);
extern void ASM_CAN_AUTOBAUD(void);
extern void API_RD_EEPROM(void) ;
extern void API_WR_EEPROM_CL(void);

extern void ASM_JMP_DPTR(void);
extern void ASM_XRAM_FLASH(void);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -