给你写的launchpad430--FLASH

来源:互联网 发布:太阁立志传 mac 编辑:程序博客网 时间:2024/05/16 17:39

技术说明


以上的图片是Gx2xx数据手册中flash的截图!表明一个器件内部flash的分布!


具体的flash大小可以查看对应的用户手册!如上图所示:

实例代码

下面是TI的实例代码,其操作流程可以对照数据手册上说明!

void write_SegC (char value){  char *Flash_ptr;                          // Flash pointer  unsigned int i;  Flash_ptr = (char *) 0x1040;              // Initialize Flash pointer  FCTL1 = FWKEY + ERASE;                    // Set Erase bit  FCTL3 = FWKEY;                            // Clear Lock bit  *Flash_ptr = 0;                           // Dummy write to erase Flash segment  FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation  for (i=0; i<64; i++)  {    *Flash_ptr++ = value;                   // Write value to flash  }  FCTL1 = FWKEY;                            // Clear WRT bit  FCTL3 = FWKEY + LOCK;                     // Set LOCK bit}void copy_C2D (void){  char *Flash_ptrC;                         // Segment C pointer  char *Flash_ptrD;                         // Segment D pointer  unsigned int i;  Flash_ptrC = (char *) 0x1040;             // Initialize Flash segment C pointer  Flash_ptrD = (char *) 0x1000;             // Initialize Flash segment D pointer  FCTL1 = FWKEY + ERASE;                    // Set Erase bit  FCTL3 = FWKEY;                            // Clear Lock bit  *Flash_ptrD = 0;                          // Dummy write to erase Flash segment D  FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation  for (i=0; i<64; i++)  {    *Flash_ptrD++ = *Flash_ptrC++;          // copy value segment C to segment D  }  FCTL1 = FWKEY;                            // Clear WRT bit  FCTL3 = FWKEY + LOCK;                     // Set LOCK bit}