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 }