2sysel
первый пункт сделал
второй пункт сделал
третий я не понял как сделать. поясните плз.
у меня есть два файла icf
LPC1768_RAM.icf
Код
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x00000100;
define symbol __ICFEDIT_region_ROM_end__ = 0x00007FFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x10000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x10007FFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__ = 0x400;
/**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define symbol _AHB_RAM_start__ = 0x2007C000;
define symbol _AHB_RAM_end__ = 0x20083FFF;
define region AHB_RAM_region = mem:[from _AHB_RAM_start__ to _AHB_RAM_end__];
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
initialize by copy { readwrite };
do not initialize { section .noinit };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in RAM_region { readonly };
place in RAM_region { readwrite,
block CSTACK, block HEAP };
place in AHB_RAM_region
{ readwrite data section AHB_RAM_MEMORY };
LPC1768_flash.icf
Код
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x00000100;
define symbol __ICFEDIT_region_ROM_end__ = 0x0007FFFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x10000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x10007FFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__ = 0x400;
/**** End of ICF editor section. ###ICF###*/
define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define symbol _AHB_RAM_start__ = 0x2007C000;
define symbol _AHB_RAM_end__ = 0x20083FFF;
define region AHB_RAM_region = mem:[from _AHB_RAM_start__ to _AHB_RAM_end__];
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
initialize by copy { readwrite };
do not initialize { section .noinit };
do not initialize { section USB_DMA_RAM };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in ROM_region { readonly };
place in RAM_region { readwrite,
block CSTACK, block HEAP };
place in AHB_RAM_region
{ readwrite data section AHB_RAM_MEMORY, section USB_DMA_RAM, section EMAC_DMA_RAM};
в этих вайлах вижу AHB но не могу найти в програматоре
четвертый сделал(был один макрос с ram
содержимое этого макроса
Код
execUserReset()
{
__writeMemory32(0x10000000, 0xE000ED08, "Memory"); //Vector table remap at 0x10000000
}
execUserPreload()
{
__writeMemory32(0x10000000, 0xE000ED08, "Memory"); //Vector table remap at 0x10000000
}
пятый пукт сделал.
пишет что "writing outside flash memory at address 0x10000000"
The debugging sesion could not be started.
either the debugger initilization falied? or else the file "D:\.....\RAM Debug\Exe\uart.out" was corrupt or of an unsupported format.
There might be more information in the Debug Log window
log
Wed Sep 22 10:41:01 2010: Loaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 5.4\arm\config\flashloader\NXP\LPC17xx.mac
Wed Sep 22 10:41:01 2010: ------- Prepare for flashloader -------
Wed Sep 22 10:41:02 2010: 1224 bytes downloaded and verified (0.26 Kbytes/sec)
Wed Sep 22 10:41:02 2010: Loaded debugee: C:\Program Files\IAR Systems\Embedded Workbench 5.4\arm\config\flashloader\NXP\FlashLayout1RAM32K_Cortex.out
Wed Sep 22 10:41:02 2010: Target reset
Wed Sep 22 10:41:02 2010: Writing outside flash memory at address 0x10000000
еще вопрос. когда я просто в отладчике при выполнении программы нажимаю ресет она снова заходит в маин но потом вылетает в
Default_Handler
B Default_Handler
END
причем начал по шагам и натыкаюсь на то что код меняется в строчке до ресета все нормально после ресета какая то белеберда именно в в одной сточке.
рисунки приведены ниже
воообще все просто оказалось!!!!!!