📄 flash.lst
字号:
C51 COMPILER V8.08 FLASH 12/07/2007 14:43:00 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE FLASH
OBJECT MODULE PLACED IN flash.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE flash.c LARGE OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include "includes.h"
3 // This routine erases the first 8 pages of FLASH (0x0000 to 0x0FFF).
4 UINT8 code_erased = FALSE;
5 UINT8 f_valid = FALSE;
6 void FlashErase(UINT8 Erase_Page)
7 {
8 1 char xdata* data pagePointer = 0;// a pointer to xdata located in data space
9 1 // points to the first FLASH page that
10 1 // will be erased
11 1
12 1 bit EA_state; // holds interrupt state
13 1
14 1 EA_state = EA; // save interrupt state
15 1
16 1 EA = 0; // disable interrupts
17 1 FLSCL |= 0x01; // enable FLASH write/erase
18 1 PSCTL = 0x03; // MOVX erases FLASH
19 1
20 1 // Erase the first 8 FLASH pages
21 1 pagePointer=Erase_Page*512;
22 1 *pagePointer = 0; // initiate the erase
23 1
24 1 PSCTL = 0x00; // MOVX writes target XRAM
25 1 FLSCL &= ~0x01; // disable FLASH write/erase
26 1
27 1 EA = EA_state; // restore interrupt state
28 1
29 1 f_valid = FALSE; // indicate that code is no longer valid
30 1 code_erased = TRUE; // indicate that FLASH has been erased
31 1 }
32
33 void FlashWrite(UINT8 *Write_Buf,UINT8 Write_Page)
34 {
35 1 char xdata* data pwrite;
36 1 UINT16 i;
37 1
38 1 EA = 0; // disable interrupts (precautionary)
39 1 FLSCL |= 0x01; // enable FLASH write/erase
40 1 PSCTL = 0x01; // MOVX writes FLASH
41 1
42 1 pwrite = Write_Page*512; // initialize the write pointer
43 1
44 1 // write the record into flash
45 1 for( i = 0; i < 512; i++)
46 1 {
47 2 *pwrite=Write_Buf[i];
48 2 pwrite++;
49 2 }
50 1 PSCTL = 0x00; // MOVX writes target XRAM
51 1 FLSCL &= ~0x01; // disable FLASH write/erase
52 1 }
53
54 UINT8 FlashRead(UINT16 Read_Address)
55 {
C51 COMPILER V8.08 FLASH 12/07/2007 14:43:00 PAGE 2
56 1 char code* data pread;
57 1 UINT8 ReadTemp;
58 1 pread = (char code*)Read_Address;
59 1 ReadTemp=*pread;
60 1 return(ReadTemp);
61 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 245 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 12 ----
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -