Ken@t 0 9 марта, 2011 Опубликовано 9 марта, 2011 · Жалоба Комрады, зарасскажите, что за грабелька такая. Собрал под 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 0 9 марта, 2011 Опубликовано 9 марта, 2011 · Жалоба Попробуйте опции проекта->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 0 10 марта, 2011 Опубликовано 10 марта, 2011 · Жалоба поскипано Конечно, если раскинуть мозгом, то какое отношение инициализация дебага имеет отношение к программированию флэша , к тому же видно , что и линк расположил исполняемый код и констатны во флэше? Внимательный анализ доки привел к тому, что один из правильных 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 ) } } Кстати, явного запрета на первый варант размещения я не нашёл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться