ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
2 июля
73695 Топик полностью
Snaky (08.11.2006 13:13, просмотров: 1) ответил POV на Работа с флеш на C8051F125...
писал я Firmware updater для C8051F125-го тоже основывался на апнотах от силабса. есть на силабс.ру тоже кое какие материалы и ссылки (типа http://userxp.zabeg.info/index.php?cat=5). была у меня одна проблема, но стирание работало. как оказалось код из флэшбанка-3 вызывал функцию из флэшбанка-1, которая уже была стерта. к тому же стирание кода программы сводило с ума jtag и кейл просто вылетал из режима отладки. сейчас апдейтер работает в полевых условиях. может у тебя с переключением банков чего или собака мешает?
     SFRPAGE = LEGACY_PAGE;
  
     PSBANK = 0x03;                   // erase flash-BANK #0
     FLSCL  = 0x01;                   // enable FLASH write/erase
     PSCTL  = 0x03;                   // MOVX erases FLASH
  
     SFRPAGE = 0x01;
     pagePointer  = (unsigned char xdata*)0x001;
     
     for (cntr = 63; cntr; cntr--)
      {
        while(FLBUSY);               // Wait if FLASH-page is being erased now
        *pagePointer = 0xFF;         // ---"---
        pagePointer += 0x0400;       // Erase next page
      }

     SFRPAGE = LEGACY_PAGE;
     PSCTL = 0x00;                    // MOVX writes target XRAM
     FLSCL = 0x00;                    // disable FLASH write/erase

     answer_buf[1] = FLASH_ERASED;
     uart0_out(answer_buf, 2);

     answer_buf[1] = Receive_Code();
     uart0_out(answer_buf, 2);
     if (answer_buf[1] == FIRMWARE_UPDATE_SUCCESS) RSTSRC = 0x10;  // reset the device