Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00018 #include <Nordic\reg24lu1.h>
00019 #include "flash.h"
00020
00021
00022 #pragma userclass (code = BOOTLOADER)
00023 #pragma userclass (const = BOOTLOADER)
00024
00025 void flash_page_erase(uint8_t pn)
00026 {
00027 CKCON = 0x01;
00028
00029 FCR = 0xAA;
00030 FCR = 0x55;
00031 WEN = 1;
00032
00033
00034
00035 FCR = pn;
00036
00037
00038 while(RDYN == 1)
00039 ;
00040 WEN = 0;
00041 CKCON = 0x02;
00042 }
00043
00044 void flash_bytes_write(uint16_t a, uint8_t xdata *p, uint16_t n)
00045 {
00046 uint8_t xdata *data pb;
00047
00048 CKCON = 0x01;
00049
00050 FCR = 0xAA;
00051 FCR = 0x55;
00052 WEN = 1;
00053
00054
00055 pb = (uint8_t xdata *)a;
00056 while(n--)
00057 {
00058 *pb++ = *p++;
00059
00060
00061 while(RDYN == 1)
00062 ;
00063 }
00064 WEN = 0;
00065 CKCON = 0x02;
00066 }
00067
00068 void flash_byte_write(uint16_t a, uint8_t b)
00069 {
00070 uint8_t xdata *data pb;
00071
00072 CKCON = 0x01;
00073
00074 FCR = 0xAA;
00075 FCR = 0x55;
00076 WEN = 1;
00077
00078
00079
00080
00081 pb = (uint8_t xdata *)a;
00082 *pb = b;
00083
00084
00085 while(RDYN == 1)
00086 ;
00087 WEN = 0;
00088 CKCON = 0x02;
00089 }
00090
00091 void flash_bytes_read(uint16_t a, uint8_t xdata *p, uint16_t n)
00092 {
00093 uint8_t xdata *pb = (uint8_t xdata *)a;
00094 while(n--)
00095 {
00096 *p = *pb;
00097 pb++;
00098 p++;
00099 }
00100 }