memory.c

来自「基于摩托罗拉(现在飞思卡尔)系列MC68HC908单片机开发车辆ECU系统!」· C语言 代码 · 共 79 行

C
79
字号
#include"memory.h"

#define DisableInt()  { asm tpa; asm sei;asm psha;}    
#define EnableInt()   { asm pula;asm tap; }

void erase(void){
    UINT8 i=0;
    UINT16 j=0;
    UINT8 Temp;
    UINT8 *far rompointer;
    rompointer=(UINT8*far)0xD640;
    DisableInt();
    FLCR_ERASE=1;
    Temp=FLBPR;
    *rompointer=0x55;
		i=0xf0;
		while(i--);
		FLCR_HVEN=1;
		j=0x5000;
		while(j--);
		FLCR_ERASE=0;
		i=0x80;
		while(i--);
		FLCR_HVEN=0;
		i=0x0f;
		while(i--);
	  EnableInt();
}

void program(void){
  UINT8 *far rompointer;
  UINT8 *far rampointer;
  UINT8 size;
  UINT8 i=0;
  UINT8 j=0;
  UINT8 Temp;
  DisableInt();
  FLCR_PGM=1;
  Temp=FLBPR;
  rompointer=(UINT8*far)0xD640;
  rampointer=(UINT8*far)0x0100;
  size=39;
  *rompointer=0x55;
  i=0xf0;
  while(i--);
  FLCR_HVEN=1;
  i=0x80;
  while(i--);
  for(j=0;j<size;j++){ 
  *rompointer=*rampointer;
  ++rompointer;
  ++rampointer;
  i=0xff;
  while(i--);
  }
  FLCR_PGM=0;
  i=0x80;
  while(i--);
  FLCR_HVEN=0;
  i=0x0f;
  while(i--);
  EnableInt();
} 
void saveposition(void){
  UINT8 i;
  UINT8 *far rompointer;
  UINT8 *far rampointer;
  UINT8 size;
  rompointer=(UINT8*far)0xD640;
  rampointer=(UINT8*far)0x0100;
  size=39;
  for(i=0;i<size;i++){
  *rampointer=*rompointer;
  ++rompointer;
  ++rampointer;
  }  
}

  

⌨️ 快捷键说明

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