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

📄 bank.c

📁 nrf9e5 nordic公司出品的带有无线发送接收的单片机的bootloader程序。支持xmodem下载
💻 C
字号:
#include "reg9e5.h"
#include "PubFunc.h"
#include <absacc.h>
#include "25lc320.h"

#define AppBankEnd	0x0400


void CopyUserProgram(void)
{
	WORD data addr; 
	BYTE data i;
	addr = 1024;
	//Wait_25LC320_IDLE;				//

	EECSN=0;
	
	SPI_DATA =_25LC320_READ;				// Move read command to SPI data register
	while((EXIF & 0x20) == 0x00);
	EXIF &= ~0x20;
	
	SPI_DATA =04;				// Move hi address to SPI data register
	while((EXIF & 0x20) == 0x00);
	EXIF &= ~0x20;
	
	SPI_DATA =00;				// Move low address to SPI data register
	while((EXIF & 0x20) == 0x00);
	EXIF &= ~0x20;
	
	do{
	SPI_DATA = i;					  // Move byte to send to SPI data register
	while((EXIF & 0x20) == 0x00);    // Wait until SPI hs finished transmitting
	XBYTE[addr-1024]=SPI_DATA;
	EXIF &= ~0x20;                  // Clear SPI interrupt
	addr++;
	}while(addr<5024);			//4096
	
    EECSN=1;

#pragma asm
	LJMP 0000H;
#pragma endasm
}

void SwitchToAppBank(void)
{
#if 0
#pragma asm
	;disable interrupt
	CLR		EA
	;
	MOV		DPS,#0
	MOV		DPTR,#Local
	MOV		DPS,#1
	MOV		DPTR,#AppBank
	;get Offset to start of user program
	INC		DPTR
	MOVX	A,@DPTR
	ADD		A,#LOW(AppBank)
	MOV		DPL1,A
	CLR		A
	ADDC	A,#HIGH(AppBank)
	MOV		DPH1,A
	
CODE_LOADER:
	MOVX	A,@DPTR
	INC		DPTR
	
	MOV		DPS,#0
	MOVX	@DPTR,A
	INC		DPTR
	
	MOV		DPS,#1
	MOV		A,#HIGH(AppBankEnd)
	CJNE	A,DPH1,CODE_LOADER
EXIT:	
	LJMP 0000H;
#pragma endasm

#else

	WORD data source;
	WORD data target;
	
	EA = 0;
	source = 0x03A0;	//AppBank;
	target = 0x0FA0;	//Local;
	
	while (source != AppBankEnd) {
		XBYTE[target] = XBYTE[source];
		target++;
		source++;
	}
	
	
#pragma asm
	LJMP 0FA0H;
#pragma endasm
#endif
}

⌨️ 快捷键说明

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