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

📄 bootldr.h

📁 picc_18v 8.35pl35 PIC18系列单片机开发C编译器
💻 H
字号:
#ifndef _BOOTLDR_H_
#define _BOOTLDR_H_

/* must be <= 9 */
#define BOOT_TIMEOUT	5
#define FILL_BYTE	0xFF

#ifndef PROG_START
  #ifdef VERBOSE
    #define PROG_START	0x300
  #else
    #define PROG_START	0x200
  #endif
#endif

/* definition ROMSIZE found in chip specific header file */
#if !defined(MPLAB_ICD)
  #define	MEM_TOP	(unsigned int)(ROMSIZE&0xFFFF)
  #if ROMSIZE >= 65536
    #define UPPER_ADDRESS_BYTE	(unsigned char)((ROMSIZE>>16)&0xFF)
  #endif
#else
  #if defined(_18F2220) || defined(_18F4220)
    #define MEM_TOP	0x0DC0
  #elif defined(_18F1220)
    #define MEM_TOP	0x0E80
  #elif defined(_18F2439) || defined(_18F4439)
    #define MEM_TOP	0x15C0
  #elif defined(_18F2320) || defined(_18F4320)
    #define MEM_TOP	0x1DC0
  #elif defined(_18F1320)
    #define MEM_TOP	0x1E80
  #elif defined(_18F2539) || defined(_18F4539)
    #define MEM_TOP	0x2DC0
  #elif defined(_18F242) || defined(_18F442) || defined(_18F248) || defined(_18F448)
    #define MEM_TOP	0x3DC0
  #elif defined(_18F6520) || defined(_18F8520)
    #define MEM_TOP	0x6DC0
  #elif defined(_18F252) || defined(_18F452) || defined(_18F258) || defined(_18F458)
    #define MEM_TOP	0x7DC0
  #elif defined(_18F6525) || defined(_18F6585) || defined(_18F8525) || defined(_18F8585)
    #define MEM_TOP	0xBDC0
  #elif defined(_18F6620) || defined(_18F8620) || defined(_18F6621) || defined(_18F8621) || \
      defined(_18F6680) || defined(_18F8680)
    #define MEM_TOP	0xFDC0
  #elif defined(_18F6720) || defined(_18F8720)
    #define UPPER_ADDRESS_BYTE	0x01
    #define MEM_TOP	0xFDC0
  #endif
#endif

#if !defined(MEM_TOP)
  #warning Uncertain program memory size
  #define MEM_TOP	0x8000
#endif

#define BAUD  9600      
#define FOSC 4000000L
#define NINE 0     /* Use 9bit communication? FALSE=8bit */
#define OUTPUT 0
#define INPUT 1

#define DIVIDER ((int)(FOSC/(16UL * BAUD) -1))
#define HIGH_SPEED 1

#if NINE == 1
#define NINE_BITS 0x40
#else
#define NINE_BITS 0
#endif

#if HIGH_SPEED == 1
#define SPEED 0x4
#else
#define SPEED 0
#endif

/* Serial initialization */
#define init_comms()						\
			{						\
				SPBRG = DIVIDER; 		    	\
				TXSTA = (SPEED|NINE_BITS|0x20);		\
				RCSTA = (NINE_BITS|0x90);		\
				TRISC=0x80;				\
 			}

#ifndef NOP()
#define NOP()	asm("nop")
#endif

#ifndef RESET()
#define RESET()	asm("reset")
#endif

/* test conditions */
#define FLASH EEPGD==1
#define EEPROM EEPGD==0
#define CONFIG CFGS==1

/* hex record types */
#define DATA 0
#define END 1
#define EXTEND_ADDRESS 4

#endif

⌨️ 快捷键说明

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