亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? isd51.h

?? The ISD51_Demo project for the MSC1200 shows how to use the ISD51 In-System-Debugger with flash bre
?? H
字號:
//
//  ISD51  In-System Debugger for 8051 based microcontrollers
//  Copyright KEIL ELEKTRONIK GmbH and Keil Software, Inc. 2000 - 2003
//  Version 2.03a
//------------------------------------------------------------------------------
//  ISD51.H:  This header file allows the configuration of the ISD51
//            In-System Monitor
//
//  Copy this file to your project folder and add the copy to your uVision2
//  project.  You can customize several parameters of the ISD51 In-System 
//  Monitor within this configuration file.
//
//------------------------------------------------------------------------------
//  ISD51 Memory Space
//  ==================
//
//  The following define specifies the size of the on-chip DATA/IDATA RAM.
//  Most 8051 devices have 256 bytes IDATA RAM.  Some devices offer just
//  128 Bytes.  ISD51 uses 1 Byte in this IDATA.  
//
//  If you are using software breakpoints, each breakpoint requires another 
//  2 Bytes IDATA space.  For example, if two breakpoints are defined, ISD51
//  uses the IDATA locations 0xFB .. 0xFF.

#define RAMSIZE    0x80   // default is 0x100 => 256 bytes IDATA RAM

//  The option "Verify if application in ROM is identical to current project"
//  that is enabled in uVision2 under "Project - Options for Target - Debug -
//  Use ISD51 - Settings" compares ROM content against the current project.
//  CMP_START and CMP_END specify address ranges for comparing memory contents.
//  Outside the specified range CODE memory mismatches are ignored.
#define CMP_START 0x0     // default is 0
#define CMP_END   0x1FFF  // default is 64KB (0xFFFF)

//------------------------------------------------------------------------------
//
//  ISD51 UART Interface
//  ====================
//
//  ISD51 uses a standard on-chip 8051 UART as communication interface.  The
//  following assembler macros allow you to change the UART interface used by 
//  ISD51.

#ifndef __C51__

/* 8051 SFR Register addresses for on-chip 8051 UART */
sfr  SCON = 0x98;
sfr  SBUF = 0x99;
sfr  IE   = 0xA8;

/*  SCON  Bits */
sbit TI   = SCON^1;
sbit RI   = SCON^0;

/* IE Bits */
sbit ES   = IE^4;
sbit EA   = IE^7;

CLR_TI   MACRO             ; Clear Transmit Interrupt Flag 
         CLR     TI        ; No CPU register may be changed here
         ENDM

SET_TI   MACRO             ; Set   Transmit Interrupt Flag
         SETB    TI        ; No CPU register may be changed here
         ENDM

JNB_TI   MACRO   label     ; Jump if Transmit Interrupt Flag not set
         JNB     TI,label  ; PSW may be modified without saving it
         ENDM

WR_SBUF  MACRO             ; Write ACC to SBUF
         MOV     SBUF,A    ; ACC and PSW may be modified without saving it
         ENDM

CLR_RI   MACRO             ; Clear Receiver Interrupt Flag 
         CLR     RI        ; No CPU register may be changed here
         ENDM

JB_RI    MACRO   label     ; Jump if Receiver Interrupt Flag set
         JB      RI,label  ; ACC and PSW may be modified without saving it
         ENDM

JNB_RI   MACRO   label     ; Jump if Receiver Interrupt Flag not set
         JNB     RI,label  ; ACC and PSW may be modified without saving it
         ENDM

RD_SBUF  MACRO             ; Return SBUF in ACC
         MOV    A,SBUF     ; ACC and PSW may be modified without saving it
         ENDM

CLR_ES   MACRO             ; Disable Serial Interrupt
         CLR    ES         ; No CPU register may be changed here
         ENDM

SET_ES   MACRO             ; Enable Serial Interrupt
         SETB   ES         ; No CPU register may be changed here
         ENDM

JNB_ES   MACRO   label     ; Jump if Receiver Interrupt Flag not set
         JNB     ES,label  ; ACC and PSW may be modified without saving it
         ENDM

SAVE_ES  MACRO             ; Save Serial Interrupt enable bit to Carry
         MOV    C,ES       ; ACC and PSW may be modified without saving it
         ENDM

RESTO_ES MACRO             ; Restore Serial Interrupt enable bit from Carry
         MOV    ES,C       ; ACC and PSW may be modified without saving it
         ENDM

SINTRVEC EQU    0x23       ; Interrupt Vector Address of UART interrupt

#endif
//------------------------------------------------------------------------------
//
//  ISD51 CODE MEMORY ACCESS FUNCTIONS FOR HARDWARE BREAKPOINTS 
//  ===========================================================
//
//  For devices that support IAP (In-Application Programming) ISD51 may modify
//  the code memory to insert CALL instructions for flash breakpoints.  The IAP
//  functions are configured below:
//
//  The macro CWRITE defines a flash erase and programming function that writes
//  new content to a Flash CODE ROM block.  The new content data are store in
//  on-chip IDATA RAM at address CBLK.  The Flash CODE ROM block address is
//  passed in the register A:R0 (A is MSB, R0 is LSB).

// The MSC1200 has a flash page size of 64 bytes
// The Hardware breakpoints must be disabled in this case
#define CBLK_SZ   64      // Flash block size for CWRITE, valid are:
                           // 1, 2, 4, 8, 16, 32, 64, and 128 Bytes. 
//  Note: CBLK_SZ  0 disables hardware breakpoints.  IDS51 will use 
//  software breakpoints instead.

#ifndef __C51__

// define a macro that erases and writes new content to a Flash memory block
// R0 contains LOW address, ACC contains HIGH address of Flash memory block
// Macro returns error code in ACC.  ACC=0 indicates no errors

WRITEFLASH EQU  0FBE0H
PAGE_ERASE EQU  0FBDEH
FMCON      DATA 0EEH
MWS        DATA 08FH

CWRITE   MACRO             ; write new content data to Flash CODE ROM block
                           ; Flash block address in DPTR

     	 MOV    R7,AR0     ; address LSB
         MOV    R6,A       ; address MSB
		 MOV    R3,#0
		 CALL   PAGE_ERASE

         MOV    MWS,#1     ; enable write to flash

         MOV    R1,#CBLK   ; IDATA RAM start address of new content data	
         MOV    R7,#CBLK_SZ; block size of Flash CODE ROM block
		 
REP_PRG: MOV    A,@R1      ; read next byte from buffer
         MOV    R6,A
         LCALL  WRITEFLASH ; Program Flash Write
wait:    CLR    A
         MOVC   A,@A+DPTR  ; verify the value in flash
         XRL    A,R6
         JNZ    CW_Error
         INC    DPTR
         INC    R1
         DJNZ   R7,REP_PRG
         CLR    A
         SJMP   CW_OK

CW_Error:MOV    A,#2       ; program error
CW_OK:   MOV    MWS,#0     ; disable write to flash
         ENDM

#endif


//------------------------------------------------------------------------------
//
//  ISD51 specific Serial User I/O
//  ==============================
//
//  ISD51 offers serial user input/output functions that work via the serial
//  interface that is used for debugging.  The serial user I/O functions are
//  configured below.

//  enable/disable ISD51 specific putchar function for user output.
#define  ISD_PUTCHAR  1    //  set to 0 to disable the putchar function.
                           //  set to 1 to enable the putchar function.

//  enable/disable ISD51 specific _getkey & _iskey function for user input.
#define  ISD_GETKEY   1    //  set to 0 to disable the _getkey/_iskey function.
                           //  set to 1 to enable the _getkey/_iskey function.

//------------------------------------------------------------------------------
//
//  ISD51 Functions
//  ===============
//
//  The following C Macro define the IDS51 functions
#ifdef __C51__

#include <absacc.h>

// TI MSC 1210 has two UART

#define  SBUF   SBUF0
#define  TI     TI_0
#define  RI     RI_0
#define  ES     ES0


extern void __isd_init (void);   // ISD51 core init function

#define ISDinit()                                                      \
  if (ES == 0)  {        /* Is ISD51 UART already initialized?     */  \
    __isd_init ();       /* Init ISD51 core & enable ISD interrupt */  \
  }

#define ISDwait()                                                      \
  while (1)  {                                                         \
    if (RI)  {           /* wait until Debugger sends 0xA5 */          \
      if (SBUF == 0xA5)  break;                                        \    
      RI = 0;                                                          \
    }                                                                  \
  }                                                                    \
  __isd_init ();         /* Init ISD51 core & enable ISD interrupt */

#define ISDcheck()                                                     \
  if (ES == 0)  {        /* Is ISD51 UART already initialized?     */  \
    if (RI)  {           /* wait until Debugger sends 0xA5 */          \
      if (SBUF != 0xA5) RI = 0;                                        \
      else              __isd_init (); /* Init core & ISD interrupt */ \
    }                                                                  \
  }                                                                    \

#define ISDdisable()     /* Disable ISD Interrupt                  */  \
    ES = 0;

#define ISDenable()      /* Enable  ISD Interrupt                  */  \
    ES = 1;

#define ISDbreak()       /* hard-code program stop (breakpoint) */     \
    TI = 1;              /* Enter ISD Interrupt function */            \
    _nop_ ();

#if ISD_GETKEY            /* user input function                */          
extern bit _iskey (void); /* check if input character available */
#endif

#endif

//------------------------------------------------------------------------------
//
//  ISD51 HARDWARE BREAKREGISTER SUPPORT
//  ====================================
//
//  ISD51 supports Hardware Breakpoints of some specific 8051 devices.
//  Currently the TI MSC device is supported.  If you are running ISD51 on
//  this device you can uncomment the following define statement if you are
//  NOT using flash breakpoints (see CBLK_SZ).
//
// #define  TI_MSC1210_BREAKS

//------------------------------------------------------------------------------
//
//  ISD51 SPECIAL CONFIGURATIONS
//  ============================
//
// ISD51 needs to be configured for specific device features.  Uncomment one 
// of the following define statements if you are using one of these devices.
//
// TI MSC121x version with EAI bit handling
#define TI_MSC1210
//
// Philips LPC900 version with two additional SFR write functions
// #define PHILIPS_LPC900

//-----------------------------------------------------------------------------
//---------------- !!! End of User Configuration Part    !!! ------------------
//-----------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕av免费专区久久| 日韩视频免费观看高清在线视频| 看电视剧不卡顿的网站| 亚洲一区二区三区免费视频| 最新国产成人在线观看| 亚洲欧洲国产专区| 亚洲欧洲制服丝袜| 一二三区精品视频| 亚洲成人午夜电影| 日韩国产欧美在线视频| 久久精品国产精品亚洲红杏 | 亚洲欧洲www| 日韩毛片精品高清免费| 一区二区在线看| 亚洲综合色噜噜狠狠| 丝袜美腿成人在线| 麻豆国产精品一区二区三区 | 国产精品亚洲人在线观看| 精品亚洲成a人在线观看| 国产一二精品视频| 99精品久久只有精品| 欧美日韩国产另类一区| 欧美mv和日韩mv的网站| 国产精品网站导航| 亚洲在线观看免费视频| 日韩电影免费在线看| 国产精品一区二区黑丝| 色综合色综合色综合色综合色综合| 91片在线免费观看| 日韩一区二区三区在线视频| 久久久久久久久97黄色工厂| 亚洲精品成人天堂一二三| 日韩激情在线观看| 成人黄色片在线观看| 69久久99精品久久久久婷婷| 精品久久人人做人人爱| 亚洲三级免费电影| 青青草国产精品亚洲专区无| 不卡视频一二三四| 91精品国产丝袜白色高跟鞋| 国产精品久久久久久久久晋中| 亚洲va中文字幕| 国产精品一级黄| 欧美在线观看一区| 国产日产欧美一区| 久久精品免费观看| 色av一区二区| 国产欧美日韩视频一区二区| 日韩福利视频网| 99精品视频一区| 国产校园另类小说区| 天堂av在线一区| 91黄色免费观看| 久久综合av免费| 欧美视频一区二区在线观看| 国产日韩欧美精品在线| 免费成人av资源网| 欧美日韩免费一区二区三区视频| 亚洲国产高清在线| 国产乱码精品1区2区3区| 这里只有精品视频在线观看| 一区二区三区高清不卡| 成人高清视频免费观看| 久久蜜桃香蕉精品一区二区三区| 蜜臀久久久久久久| 欧美丰满少妇xxxxx高潮对白| 一区二区三区日韩精品视频| 成人免费av在线| 欧美国产激情一区二区三区蜜月| 国产美女在线精品| 国产调教视频一区| 国产一区二区三区四区在线观看| 日韩女同互慰一区二区| 美美哒免费高清在线观看视频一区二区| 91丨国产丨九色丨pron| 国产精品久久久久久久久免费樱桃 | 日韩欧美国产系列| 日韩和欧美的一区| 欧美日韩国产一级二级| 亚洲成人av一区二区三区| 欧美亚洲动漫精品| 日韩不卡免费视频| 日韩免费电影一区| 国产精品一二一区| 国产精品欧美久久久久一区二区| 国产制服丝袜一区| 中文字幕在线观看不卡| 91在线观看下载| 一区二区三区在线看| 欧美午夜寂寞影院| 久久成人免费网站| 日本一区二区三区四区在线视频| 成人黄色免费短视频| 综合av第一页| 在线不卡中文字幕| 国产乱人伦偷精品视频免下载 | 91久久精品一区二区三区| 亚洲综合小说图片| 欧美一区二区在线播放| 国产在线精品一区二区| 中文字幕日韩av资源站| 欧美日韩另类一区| 日本欧美在线观看| 欧美国产日韩一二三区| 91老师片黄在线观看| 日韩不卡免费视频| 国产精品少妇自拍| 91精品欧美久久久久久动漫 | 日韩主播视频在线| 国产日韩精品一区| 欧洲一区在线电影| 国产高清成人在线| 天天操天天综合网| 国产精品久久久久精k8| 欧美日韩成人在线| 成人av影视在线观看| 婷婷久久综合九色综合伊人色| 久久亚洲精品国产精品紫薇| 在线欧美一区二区| 国产suv一区二区三区88区| 亚洲国产成人tv| 日本一区二区免费在线| 欧美一区二区三区男人的天堂 | 亚洲精品中文在线| 久久美女高清视频| 欧美久久久久免费| www.日韩精品| 国产伦精品一区二区三区视频青涩| 亚洲高清在线精品| 亚洲欧美激情视频在线观看一区二区三区 | 国产欧美一区二区精品性色 | 91久久国产最好的精华液| 国产一区二区三区| 亚洲成人免费看| 成人欧美一区二区三区白人| 精品美女一区二区| 3d动漫精品啪啪1区2区免费 | 91精品国产一区二区三区香蕉| 色婷婷久久一区二区三区麻豆| 成人丝袜视频网| 国产河南妇女毛片精品久久久 | 国产区在线观看成人精品| 日韩精品资源二区在线| 欧美精品久久天天躁| 欧洲av一区二区嗯嗯嗯啊| 成人爱爱电影网址| av一区二区三区黑人| 成人免费观看av| 成人一区二区三区中文字幕| 国产精品一区二区免费不卡 | 一区二区中文字幕在线| 国产情人综合久久777777| 国产午夜亚洲精品羞羞网站| 日韩欧美国产不卡| 精品少妇一区二区三区视频免付费 | 一区二区三区**美女毛片| 国产精品蜜臀av| 中文字幕一区二区三区四区不卡 | 成人av免费在线观看| 成人精品免费看| 99精品热视频| 在线观看日产精品| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产日韩欧美精品在线| 国产精品久久久久久久久快鸭| 亚洲欧美在线视频| 一区二区不卡在线播放 | 日韩avvvv在线播放| 人人精品人人爱| 国产精品一区二区免费不卡| 丁香婷婷综合色啪| 在线观看日韩电影| 欧美成人综合网站| 欧美高清在线精品一区| 亚洲一区二区三区四区在线观看 | 亚洲精品在线三区| 中文在线一区二区| 一个色在线综合| 精品亚洲欧美一区| 91美女蜜桃在线| 日韩精品专区在线影院重磅| 国产欧美日韩中文久久| 夜夜嗨av一区二区三区| 日韩高清一区在线| 成人精品视频一区| 在线电影院国产精品| 国产亚洲成年网址在线观看| 亚洲黄色免费电影| 国产综合一区二区| 欧美性受xxxx黑人xyx性爽| 日韩精品一区二区三区四区| 国产精品久久久一本精品| 视频一区欧美精品| 91一区一区三区| 精品日韩一区二区| 亚洲一区在线观看视频| 国产精品影视天天线| 欧美电影在线免费观看| 亚洲视频一二三| 寂寞少妇一区二区三区|