FlashMemoryAreaRW.lst
上传用户:xhjmsc
上传日期:2019-09-13
资源大小:389k
文件大小:28k
- ##############################################################################
- # #
- # IAR MSP430 C/EC++ Compiler V2.10A/W32 23/Apr/2007 18:04:09 #
- # Copyright 1996-2003 IAR Systems. All rights reserved. #
- # #
- # __rt_version = 1 #
- # __double_size = 32 #
- # __reg_r4 = free #
- # __reg_r5 = free #
- # __pic = no #
- # Source file = E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
- # filesFlashMemoryAreaRW.c #
- # Command line = -I "C:Program FilesIAR SystemsEmbedded Workbench #
- # 3.2430INC" -I "C:Program FilesIAR #
- # SystemsEmbedded Workbench 3.2430INCCLIB" -lCN #
- # E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
- # DebugList -lA E:projectFaxProgramVson_Bryan_Fax_ #
- # Conexant_070423DebugList -o #
- # E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
- # DebugObj -z2 --no_cse --no_unroll --no_inline #
- # --no_code_motion --debug -e #
- # E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
- # filesFlashMemoryAreaRW.c #
- # List file = E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
- # DebugListFlashMemoryAreaRW.lst #
- # Object file = E:projectFaxProgramVson_Bryan_Fax_Conexant_070423 #
- # DebugObjFlashMemoryAreaRW.r43 #
- # #
- # #
- ##############################################################################
- E:projectFaxProgramVson_Bryan_Fax_Conexant_070423filesFlashMemoryAreaRW.c
- 1 /***************************************
- 2 Program: FlashManage
- 3 Author: Bryan Cai
- 4 Date: 2006.12.07
- 5 ***************************************/
- 6
- 7 #include "includeH.h"
- In segment DATA16_AN, at 0x28
- unsigned char const volatile __data P2IN
- P2IN:
- 000000 DS8 1
- In segment DATA16_AN, at 0x29
- unsigned char volatile __data P2OUT
- P2OUT:
- 000000 DS8 1
- In segment DATA16_AN, at 0x30
- unsigned char const volatile __data P5IN
- P5IN:
- 000000 DS8 1
- In segment DATA16_AN, at 0x31
- unsigned char volatile __data P5OUT
- P5OUT:
- 000000 DS8 1
- In segment DATA16_AN, at 0x32
- unsigned char volatile __data P5DIR
- P5DIR:
- 000000 DS8 1
- 8
- 9 //unsigned int gwGeneralPageAddress=0;//=960;
- 10
- In segment CODE, align 2, keep-with-next
- 11 void Write16Bytes2FlashMemoryArea(void)
- Write16Bytes2FlashMemoryArea:
- 12 {
- 000000 0A12 PUSH.W R10
- 000002 0B12 PUSH.W R11
- 000004 0812 PUSH.W R8
- 13
- 14 unsigned char ucFlashSttsOverflowCnt=0,ucFaxGeneralLenCnt=0,
- 000006 4843 MOV.B #0x0, R8
- 000008 4A43 MOV.B #0x0, R10
- 15 ucRxIndex=0;
- 00000A 4B43 MOV.B #0x0, R11
- 16
- 17
- 18 COMMAND_VAL=cFlashWriteCmd;
- 00000C F2408000.... MOV.B #0x80, &COMMAND_VAL
- 19 COMMAND_LATCH_INTO();
- 000012 B012.... CALL #COMMAND_LATCH_INTO
- 20 //ADDRESS
- 21
- 22 ADDRESS_VALUE=gwColumnAddress & 0xff;//COLUMN_ADDRESS_LOW;
- 000016 D242........ MOV.B &gwColumnAddress, &ADDRESS_VALUE
- 23 ADDRESS_LATCH_INTO();
- 00001C B012.... CALL #ADDRESS_LATCH_INTO
- 24
- 25 ADDRESS_VALUE=(gwColumnAddress>>8) & 0XFF;//COLUMN_ADDRESS_HIGH;
- 000020 1E42.... MOV.W &gwColumnAddress, R14
- 000024 8E10 SWPB R14
- 000026 3EF0FF00 AND.W #0xff, R14
- 00002A C24E.... MOV.B R14, &ADDRESS_VALUE
- 26 ADDRESS_LATCH_INTO();
- 00002E B012.... CALL #ADDRESS_LATCH_INTO
- 27
- 28 ADDRESS_VALUE=gwGeneralPageAddress & 0xff;
- 000032 D242........ MOV.B &gwGeneralPageAddress, &ADDRESS_VALUE
- 29 ADDRESS_LATCH_INTO();
- 000038 B012.... CALL #ADDRESS_LATCH_INTO
- 30
- 31 ADDRESS_VALUE=(gwGeneralPageAddress>>8) & 0XFF;
- 00003C 1E42.... MOV.W &gwGeneralPageAddress, R14
- 000040 8E10 SWPB R14
- 000042 3EF0FF00 AND.W #0xff, R14
- 000046 C24E.... MOV.B R14, &ADDRESS_VALUE
- 32 ADDRESS_LATCH_INTO();
- 00004A B012.... CALL #ADDRESS_LATCH_INTO
- 33 FLASH_CON_PORT_OUT &=~ ALE;
- 00004E E2C32900 BIC.B #0x2, &0x29
- 34
- 35 DATA_PORT_OUT_INITIAL;
- 000052 F2433200 MOV.B #0xff, &0x32
- 36 for (ucFaxGeneralLenCnt=0;ucFaxGeneralLenCnt<16;ucFaxGeneralLenCnt++)
- 000056 4A43 MOV.B #0x0, R10
- ??Write16Bytes2FlashMemoryArea_0:
- 000058 7A901000 CMP.B #0x10, R10
- 00005C 0D2C JC ??Write16Bytes2FlashMemoryArea_1
- 37 {
- 38 FLASH_CON_PORT_OUT&=~WE;
- 00005E D2C32900 BIC.B #0x1, &0x29
- 39 DATA_PORT_OUT=aucUartRxBuf[ucRxIndex++];
- 000062 4E4B MOV.B R11, R14
- 000064 3EF0FF00 AND.W #0xff, R14
- 000068 D24E....3100 MOV.B aucUartRxBuf(R14), &0x31
- 00006E 5B53 ADD.B #0x1, R11
- 40 FLASH_CON_PORT_OUT |= WE;
- 000070 D2D32900 BIS.B #0x1, &0x29
- 41 }
- 000074 5A53 ADD.B #0x1, R10
- 000076 F03F JMP ??Write16Bytes2FlashMemoryArea_0
- 42
- 43 COMMAND_VAL=cFlashWriteInitiateCmd; //10H INITIATES PROGRAM
- ??Write16Bytes2FlashMemoryArea_1:
- 000078 F2401000.... MOV.B #0x10, &COMMAND_VAL
- 44 COMMAND_LATCH_INTO();
- 00007E B012.... CALL #COMMAND_LATCH_INTO
- 45
- 46 READ_STATUS();
- 000082 B012.... CALL #READ_STATUS
- 47 ucFlashSttsOverflowCnt=0;
- 000086 4843 MOV.B #0x0, R8
- 48 if(FLASH_STATUS==1&&(ucFlashSttsOverflowCnt++)<2)
- 000088 D293.... CMP.B #0x1, &FLASH_STATUS
- 00008C 0120 JNE ??Write16Bytes2FlashMemoryArea_2
- 00008E 5853 ADD.B #0x1, R8
- 49 {;}
- 50 }
- ??Write16Bytes2FlashMemoryArea_2:
- 000090 3841 POP.W R8
- 000092 3B41 POP.W R11
- 000094 3A41 POP.W R10
- 000096 3041 RET
- In segment CODE, align 2, keep-with-next
- 51 void ReadLast16BytesFromFlashMemoryArea(unsigned char ucAreaStartBlockAddress, unsigned char ucAreaOverBlockAddress)//read last fax General pointer
- ReadLast16BytesFromFlashMemoryArea:
- 52 {
- 000000 0A12 PUSH.W R10
- 000002 0B12 PUSH.W R11
- 000004 0812 PUSH.W R8
- 000006 0912 PUSH.W R9
- 000008 0612 PUSH.W R6
- 00000A 0712 PUSH.W R7
- 00000C 0412 PUSH.W R4
- 00000E 0512 PUSH.W R5
- 000010 3182 SUB.W #0x8, SP
- 000012 C14C0300 MOV.B R12, 0x3(SP)
- 000016 C14E0200 MOV.B R14, 0x2(SP)
- 53 unsigned int wPageAddress=0, wBlockAddress=0,
- 00001A 0443 MOV.W #0x0, R4
- 00001C 0543 MOV.W #0x0, R5
- 54 wColumnAddress=0,wNextPageAddress=0,
- 00001E 0A43 MOV.W #0x0, R10
- 000020 81430400 MOV.W #0x0, 0x4(SP)
- 55 wGeneralPntCnt=0;
- 000024 81430600 MOV.W #0x0, 0x6(SP)
- 56 unsigned char ucRxIndex=0,
- 000028 4B43 MOV.B #0x0, R11
- 57 ucRxIndex3=0,ucRxIndex2=0,
- 00002A 4743 MOV.B #0x0, R7
- 00002C 4843 MOV.B #0x0, R8
- 58 ucRxIndex0=0,ucRxIndex1=0,
- 00002E 4943 MOV.B #0x0, R9
- 000030 4643 MOV.B #0x0, R6
- 59 ucGeneralCnt=0,ucFaxGeneralLenCnt;
- 000032 C1430000 MOV.B #0x0, 0x0(SP)
- 60
- 61
- 62 //for (wBlockAddress=cFaxRearPointerTableStartBlockNum;
- 63 //wBlockAddress<=cFaxRearPointerTableOverBlockNum;wBlockAddress++)
- 64 for (wBlockAddress=ucAreaStartBlockAddress;
- 000036 5E410300 MOV.B 0x3(SP), R14
- 00003A 3EF0FF00 AND.W #0xff, R14
- 00003E 054E MOV.W R14, R5
- 65 wBlockAddress<=ucAreaOverBlockAddress;wBlockAddress++)
- ??ReadLast16BytesFromFlashMemoryArea_5:
- 000040 5E410200 MOV.B 0x2(SP), R14
- 000044 3EF0FF00 AND.W #0xff, R14
- 000048 0E95 CMP.W R5, R14
- 00004A D028 JNC ??ReadLast16BytesFromFlashMemoryArea_6
- 66 {
- 67
- 68 for (wPageAddress=(wBlockAddress<<6);wPageAddress<((wBlockAddress<<6)+64);wPageAddress++)//one block
- 00004C 0C45 MOV.W R5, R12
- 00004E B012.... CALL #?ShiftLeft16_6
- 000052 044C MOV.W R12, R4
- ??ReadLast16BytesFromFlashMemoryArea_4:
- 000054 0C45 MOV.W R5, R12
- 000056 B012.... CALL #?ShiftLeft16_6
- 00005A 3C504000 ADD.W #0x40, R12
- 00005E 049C CMP.W R12, R4
- 000060 AB2C JC ??ReadLast16BytesFromFlashMemoryArea_7
- 69 {
- 70 do{
- 71 wNextPageAddress=wPageAddress+64;
- ??ReadLast16BytesFromFlashMemoryArea_0:
- 000062 3E404000 MOV.W #0x40, R14
- 000066 0E54 ADD.W R4, R14
- 000068 814E0400 MOV.W R14, 0x4(SP)
- 72 wPageAddress=CalNextPageAddress(wPageAddress);
- 00006C 0C44 MOV.W R4, R12
- 00006E B012.... CALL #CalNextPageAddress
- 000072 044C MOV.W R12, R4
- 73 }while(wNextPageAddress==wPageAddress);
- 000074 81940400 CMP.W R4, 0x4(SP)
- 000078 F427 JEQ ??ReadLast16BytesFromFlashMemoryArea_0
- 74
- 75 wColumnAddress=0;
- 00007A 0A43 MOV.W #0x0, R10
- 76 ROW_ADDRESS_LOW=wPageAddress & 0XFF;
- 00007C C244.... MOV.B R4, &ROW_ADDRESS_LOW
- 77 ROW_ADDRESS_HIGH=(wPageAddress>>8) & 0XFF;
- 000080 0E44 MOV.W R4, R14
- 000082 8E10 SWPB R14
- 000084 3EF0FF00 AND.W #0xff, R14
- 000088 C24E.... MOV.B R14, &ROW_ADDRESS_HIGH
- 78
- 79 for (ucGeneralCnt=0;ucGeneralCnt<8;ucGeneralCnt++)
- 00008C C1430000 MOV.B #0x0, 0x0(SP)
- ??ReadLast16BytesFromFlashMemoryArea_3:
- 000090 F1920000 CMP.B #0x8, 0x0(SP)
- 000094 772C JC ??ReadLast16BytesFromFlashMemoryArea_8
- 80 {
- 81 //COMMAND
- 82 COMMAND_VAL=0x00; //#0X00 //00H READ1 0-2111BYTE
- 000096 C243.... MOV.B #0x0, &COMMAND_VAL
- 83 COMMAND_LATCH_INTO();
- 00009A B012.... CALL #COMMAND_LATCH_INTO
- 84 //ADDRESS
- 85
- 86 ADDRESS_VALUE=wColumnAddress & 0xff;//COLUMN_ADDRESS_LOW;
- 00009E C24A.... MOV.B R10, &ADDRESS_VALUE
- 87 ADDRESS_LATCH_INTO();
- 0000A2 B012.... CALL #ADDRESS_LATCH_INTO
- 88
- 89 ADDRESS_VALUE=(wColumnAddress>>8) & 0XFF;//COLUMN_ADDRESS_HIGH;
- 0000A6 0E4A MOV.W R10, R14
- 0000A8 8E10 SWPB R14
- 0000AA 3EF0FF00 AND.W #0xff, R14
- 0000AE C24E.... MOV.B R14, &ADDRESS_VALUE
- 90 ADDRESS_LATCH_INTO();
- 0000B2 B012.... CALL #ADDRESS_LATCH_INTO
- 91
- 92 ADDRESS_VALUE=ROW_ADDRESS_LOW;
- 0000B6 D242........ MOV.B &ROW_ADDRESS_LOW, &ADDRESS_VALUE
- 93 ADDRESS_LATCH_INTO();
- 0000BC B012.... CALL #ADDRESS_LATCH_INTO
- 94
- 95 ADDRESS_VALUE=ROW_ADDRESS_HIGH;
- 0000C0 D242........ MOV.B &ROW_ADDRESS_HIGH, &ADDRESS_VALUE
- 96 ADDRESS_LATCH_INTO();
- 0000C6 B012.... CALL #ADDRESS_LATCH_INTO
- 97 FLASH_CON_PORT_OUT &=~ ALE;
- 0000CA E2C32900 BIC.B #0x2, &0x29
- 98
- 99 COMMAND_VAL=0X30;
- 0000CE F2403000.... MOV.B #0x30, &COMMAND_VAL
- 100 COMMAND_LATCH_INTO();
- 0000D4 B012.... CALL #COMMAND_LATCH_INTO
- 101 //ATcmdDelay();
- 102 while((FLASH_CON_PORT_IN & RB)==0);
- ??ReadLast16BytesFromFlashMemoryArea_1:
- 0000D8 F2B020002800 BIT.B #0x20, &0x28
- 0000DE FC2B JNC ??ReadLast16BytesFromFlashMemoryArea_1
- 103 DATA_PORT_IN_INITIAL;
- 0000E0 C2433200 MOV.B #0x0, &0x32
- 104 for (ucFaxGeneralLenCnt=0;ucFaxGeneralLenCnt<16;ucFaxGeneralLenCnt++)
- 0000E4 C1430100 MOV.B #0x0, 0x1(SP)
- ??ReadLast16BytesFromFlashMemoryArea_2:
- 0000E8 F19010000100 CMP.B #0x10, 0x1(SP)
- 0000EE 102C JC ??ReadLast16BytesFromFlashMemoryArea_9
- 105 {
- 106 FLASH_CON_PORT_OUT &=~ RE; //RE IS LOW,ENABLE READ DATA
- 0000F0 F2C010002900 BIC.B #0x10, &0x29
- 107 aucUartRxBuf[ucRxIndex++]=DATA_PORT_IN;
- 0000F6 4E4B MOV.B R11, R14
- 0000F8 3EF0FF00 AND.W #0xff, R14
- 0000FC DE423000.... MOV.B &0x30, aucUartRxBuf(R14)
- 000102 5B53 ADD.B #0x1, R11
- 108 FLASH_CON_PORT_OUT |= RE;
- 000104 F2D010002900 BIS.B #0x10, &0x29
- 109 }
- 00010A D1530100 ADD.B #0x1, 0x1(SP)
- 00010E EC3F JMP ??ReadLast16BytesFromFlashMemoryArea_2
- 110 wGeneralPntCnt++;
- ??ReadLast16BytesFromFlashMemoryArea_9:
- 000110 91530600 ADD.W #0x1, 0x6(SP)
- 111
- 112 ucRxIndex3=ucRxIndex-4;
- 000114 7E40FC00 MOV.B #0xfc, R14
- 000118 4E5B ADD.B R11, R14
- 00011A 474E MOV.B R14, R7
- 113 ucRxIndex2=ucRxIndex-3;
- 00011C 7E40FD00 MOV.B #0xfd, R14
- 000120 4E5B ADD.B R11, R14
- 000122 484E MOV.B R14, R8
- 114 ucRxIndex1=ucRxIndex-2;
- 000124 7E40FE00 MOV.B #0xfe, R14
- 000128 4E5B ADD.B R11, R14
- 00012A 464E MOV.B R14, R6
- 115 ucRxIndex0=ucRxIndex-1;
- 00012C 7E43 MOV.B #0xff, R14
- 00012E 4E5B ADD.B R11, R14
- 000130 494E MOV.B R14, R9
- 116 if (0xff == aucUartRxBuf[ucRxIndex0] && 0xff == aucUartRxBuf[ucRxIndex1] &&
- 117 0xff == aucUartRxBuf[ucRxIndex2] && 0xff == aucUartRxBuf[ucRxIndex3])
- 000132 4E49 MOV.B R9, R14
- 000134 3EF0FF00 AND.W #0xff, R14
- 000138 FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 00013C 1820 JNE ??ReadLast16BytesFromFlashMemoryArea_10
- 00013E 4E46 MOV.B R6, R14
- 000140 3EF0FF00 AND.W #0xff, R14
- 000144 FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 000148 1220 JNE ??ReadLast16BytesFromFlashMemoryArea_10
- 00014A 4E48 MOV.B R8, R14
- 00014C 3EF0FF00 AND.W #0xff, R14
- 000150 FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 000154 0C20 JNE ??ReadLast16BytesFromFlashMemoryArea_10
- 000156 4E47 MOV.B R7, R14
- 000158 3EF0FF00 AND.W #0xff, R14
- 00015C FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 000160 0620 JNE ??ReadLast16BytesFromFlashMemoryArea_10
- 118 {
- 119 gucUartRxCnt = ucRxIndex-32;
- 000162 7E40E000 MOV.B #0xe0, R14
- 000166 4E5B ADD.B R11, R14
- 000168 C24E.... MOV.B R14, &gucUartRxCnt
- 120 break; //next General
- 00016C 0B3C JMP ??ReadLast16BytesFromFlashMemoryArea_8
- 121 }//if
- 122 if (ucGeneralCnt<4)
- ??ReadLast16BytesFromFlashMemoryArea_10:
- 00016E E1920000 CMP.B #0x4, 0x0(SP)
- 000172 032C JC ??ReadLast16BytesFromFlashMemoryArea_11
- 123 wColumnAddress+=512;
- 000174 3A500002 ADD.W #0x200, R10
- 000178 023C JMP ??ReadLast16BytesFromFlashMemoryArea_12
- 124 else
- 125 wColumnAddress+=16;
- ??ReadLast16BytesFromFlashMemoryArea_11:
- 00017A 3A501000 ADD.W #0x10, R10
- 126 }//for read next General pointer
- ??ReadLast16BytesFromFlashMemoryArea_12:
- 00017E D1530000 ADD.B #0x1, 0x0(SP)
- 000182 863F JMP ??ReadLast16BytesFromFlashMemoryArea_3
- 127
- 128
- 129 if (0xff == aucUartRxBuf[ucRxIndex0] && 0xff == aucUartRxBuf[ucRxIndex1] &&
- 130 0xff == aucUartRxBuf[ucRxIndex2] && 0xff == aucUartRxBuf[ucRxIndex3])
- ??ReadLast16BytesFromFlashMemoryArea_8:
- 000184 4E49 MOV.B R9, R14
- 000186 3EF0FF00 AND.W #0xff, R14
- 00018A FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 00018E 1220 JNE ??ReadLast16BytesFromFlashMemoryArea_13
- 000190 4E46 MOV.B R6, R14
- 000192 3EF0FF00 AND.W #0xff, R14
- 000196 FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 00019A 0C20 JNE ??ReadLast16BytesFromFlashMemoryArea_13
- 00019C 4E48 MOV.B R8, R14
- 00019E 3EF0FF00 AND.W #0xff, R14
- 0001A2 FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 0001A6 0620 JNE ??ReadLast16BytesFromFlashMemoryArea_13
- 0001A8 4E47 MOV.B R7, R14
- 0001AA 3EF0FF00 AND.W #0xff, R14
- 0001AE FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 0001B2 0224 JEQ ??ReadLast16BytesFromFlashMemoryArea_7
- 131 {break;}
- 132 }//for next page
- ??ReadLast16BytesFromFlashMemoryArea_13:
- 0001B4 1453 ADD.W #0x1, R4
- 0001B6 4E3F JMP ??ReadLast16BytesFromFlashMemoryArea_4
- 133
- 134
- 135 if (0xff == aucUartRxBuf[ucRxIndex0] && 0xff == aucUartRxBuf[ucRxIndex1] &&
- 136 0xff == aucUartRxBuf[ucRxIndex2] && 0xff == aucUartRxBuf[ucRxIndex3])
- ??ReadLast16BytesFromFlashMemoryArea_7:
- 0001B8 4E49 MOV.B R9, R14
- 0001BA 3EF0FF00 AND.W #0xff, R14
- 0001BE FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 0001C2 1220 JNE ??ReadLast16BytesFromFlashMemoryArea_14
- 0001C4 4E46 MOV.B R6, R14
- 0001C6 3EF0FF00 AND.W #0xff, R14
- 0001CA FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 0001CE 0C20 JNE ??ReadLast16BytesFromFlashMemoryArea_14
- 0001D0 4E48 MOV.B R8, R14
- 0001D2 3EF0FF00 AND.W #0xff, R14
- 0001D6 FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 0001DA 0620 JNE ??ReadLast16BytesFromFlashMemoryArea_14
- 0001DC 4E47 MOV.B R7, R14
- 0001DE 3EF0FF00 AND.W #0xff, R14
- 0001E2 FE93.... CMP.B #0xff, aucUartRxBuf(R14)
- 0001E6 0224 JEQ ??ReadLast16BytesFromFlashMemoryArea_6
- 137 {break;}
- 138 }//for next block
- ??ReadLast16BytesFromFlashMemoryArea_14:
- 0001E8 1553 ADD.W #0x1, R5
- 0001EA 2A3F JMP ??ReadLast16BytesFromFlashMemoryArea_5
- 139 gwGeneralPageAddress=wPageAddress; //for write Fax General pointer
- ??ReadLast16BytesFromFlashMemoryArea_6:
- 0001EC 8244.... MOV.W R4, &gwGeneralPageAddress
- 140 gwColumnAddress=wColumnAddress; //for find blank page
- 0001F0 824A.... MOV.W R10, &gwColumnAddress
- 141 if (ucAreaOverBlockAddress>10)
- 0001F4 F1900B000200 CMP.B #0xb, 0x2(SP)
- 0001FA 2B28 JNC ??ReadLast16BytesFromFlashMemoryArea_15
- 142 {
- 143 if (wGeneralPntCnt>1)
- 0001FC A1930600 CMP.W #0x2, 0x6(SP)
- 000200 2228 JNC ??ReadLast16BytesFromFlashMemoryArea_16
- 144 {
- 145 ucRxIndex1=ucRxIndex-32;
- 000202 7E40E000 MOV.B #0xe0, R14
- 000206 4E5B ADD.B R11, R14
- 000208 464E MOV.B R14, R6
- 146 ucRxIndex0=ucRxIndex-31;
- 00020A 7E40E100 MOV.B #0xe1, R14
- 00020E 4E5B ADD.B R11, R14
- 000210 494E MOV.B R14, R9
- 147 wPageAddress=aucUartRxBuf[ucRxIndex0];
- 000212 4E49 MOV.B R9, R14
- 000214 3EF0FF00 AND.W #0xff, R14
- 000218 5E4E.... MOV.B aucUartRxBuf(R14), R14
- 00021C 3EF0FF00 AND.W #0xff, R14
- 000220 044E MOV.W R14, R4
- 148 gwPageAddress=(wPageAddress<<8) | aucUartRxBuf[ucRxIndex1];
- 000222 0F44 MOV.W R4, R15
- 000224 3FF0FF00 AND.W #0xff, R15
- 000228 8F10 SWPB R15
- 00022A 4E46 MOV.B R6, R14
- 00022C 3EF0FF00 AND.W #0xff, R14
- 000230 5E4E.... MOV.B aucUartRxBuf(R14), R14
- 000234 3EF0FF00 AND.W #0xff, R14
- 000238 0FDE BIS.W R14, R15
- 00023A 824F.... MOV.W R15, &gwPageAddress
- 149 gucGeneralStatus |= bitReadFlashMemoryOK;
- 00023E F2D02000.... BIS.B #0x20, &gucGeneralStatus
- 000244 063C JMP ??ReadLast16BytesFromFlashMemoryArea_15
- 150 }
- 151 else
- 152 {
- 153 gwPageAddress=cstFaxContentStartPage-1;//2559;//1279;//write the data start address
- ??ReadLast16BytesFromFlashMemoryArea_16:
- 000246 B240FF13.... MOV.W #0x13ff, &gwPageAddress
- 154 gucGeneralStatus &= ~bitReadFlashMemoryOK;
- 00024C F2C02000.... BIC.B #0x20, &gucGeneralStatus
- 155 }
- 156 }
- 157 }
- ??ReadLast16BytesFromFlashMemoryArea_15:
- 000252 3152 ADD.W #0x8, SP
- 000254 3040.... BR #?Epilogue8
- Maximum stack usage in bytes:
- Function CSTACK
- -------- ------
- ReadLast16BytesFromFlashMemoryArea
- 26
- -> CalNextPageAddress 26
- -> COMMAND_LATCH_INTO 26
- -> ADDRESS_LATCH_INTO 26
- -> ADDRESS_LATCH_INTO 26
- -> ADDRESS_LATCH_INTO 26
- -> ADDRESS_LATCH_INTO 26
- -> COMMAND_LATCH_INTO 26
- Write16Bytes2FlashMemoryArea 8
- -> COMMAND_LATCH_INTO 8
- -> ADDRESS_LATCH_INTO 8
- -> ADDRESS_LATCH_INTO 8
- -> ADDRESS_LATCH_INTO 8
- -> ADDRESS_LATCH_INTO 8
- -> COMMAND_LATCH_INTO 8
- -> READ_STATUS 8
- Segment part sizes:
- Function/Label Bytes
- -------------- -----
- P2IN 1
- P2OUT 1
- P5IN 1
- P5OUT 1
- P5DIR 1
- Write16Bytes2FlashMemoryArea 152
- ReadLast16BytesFromFlashMemoryArea
- 600
-
- 752 bytes in segment CODE
- 5 bytes in segment DATA16_AN
-
- 752 bytes of CODE memory
- 0 bytes of DATA memory (+ 5 bytes shared)
- Errors: none
- Warnings: none