Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Keil flash download
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Ken@t
Комрады, зарасскажите, что за грабелька такая.

Собрал под Keil 3.8 для sam7s64

Код
LR_IROM1 0x00100000 0x00010000  {   ; load region size_region
  ER_IROM1 0x00100000 0x0000C000  { ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  
  RW_ 0x0010C000 0x00004000 {
   *.o ( flh_data )
  }

  RW_IRAM1 0x00200000 0x00004000  { ; RW data
   .ANY (+RW +ZI)
  }

}


вижу в мапе
Код
Inflash_images                           0x0010c000   Data          16  test.o(.ARM.__AT_0x0010C000)
    image_gear                               0x0010c010   Data         546  test.o(flh_data)
    image_background_white_bluetitle         0x0010c232   Data       13538  test.o(flh_data)
    image_exclamation_diamond                0x0010f714   Data         546  test.o(flh_data)
    image_exclamation_red                    0x0010f936   Data         546  test.o(flh_data)

Всё вроде бы замечательно, однако после загрузки в целевую платформу MT-Link'ом по адресам 0x0010c000 девственная чистота флэши , тобишь 0xFF.

Что за грабелька ?
InsolentS
Попробуйте опции проекта->Debug->Initialization File
Код
FUNC void Setup (void) {
// <o> Program Entry Point
  PC = 0x00100000;
}

// Configure GPNVM bits
_WDWORD(0xFFFFFF64, (0x5A<<24)|(2<<8)|(0xB));  //MC_FCR: Set GPNVM2 Bit for flash startup
_sleep_(10);

_WDWORD(0xFFFFFD44, 0x00008000);     // WDT_WDMR: Disable Watchdog

// Switching from Slow Clock to Main Oscillator for faster Download
_WDWORD(0xFFFFFC20, 0x00000601);     // PMC_MOR: Enable Main Oscillator
_sleep_(10);                         // Wait for stable Main Oscillator
_WDWORD(0xFFFFFC30, 0x00000001);     // PMC_MCKR: Switch to Main Oscillator

LOAD FLASH\firmware.axf INCREMENTAL      // FLASH\firmware.axf надо заменить на путь и название Вашего выходного файла

Setup();                             // Setup for Running

g, main
Ken@t
Цитата(InsolentS @ Mar 9 2011, 23:01) *
поскипано

Конечно, если раскинуть мозгом, то какое отношение инициализация дебага имеет отношение к программированию флэша , к тому же видно , что и линк расположил исполняемый код и констатны во флэше?

Внимательный анализ доки привел к тому, что один из правильных scatter файл может быть таким
Код
LR_IROM1 0x00100000 0x000C000  {   ; load region size_region
  ER_IROM1 0x00100000 0x0000C000  { ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
    
  RW_IRAM1 0x00200000 0x00004000  { ; RW data
   .ANY (+RW +ZI)
  }

}

LOAD_ROM2 0x0010C000 0x00004000 {
  FLASH 0x0010C000 {
   .ANY ( flh_data )
  }


}

Кстати, явного запрета на первый варант размещения я не нашёл.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.