/var/www/restricted/ssh/stm32/www/stm32circle/ STM CircleOS forum / relocating at 0x80001000 and no Systick interrupt

Username:     
Password:     
             

Forum

# 1   2011-11-27 18:48:15 relocating at 0x80001000 and no Systick interrupt

diegotrex
New member
Registered: 2011-11-27
Posts: 1

relocating at 0x80001000 and no Systick interrupt

Hi to all in the community from Diego ,Milan,Italy,i'm a newbie ,and living 12 Km from ST factory does not change the fact.Forgive in advance my basic English and errors.

I'll try to simplify the question:

I did an example project on IAR EWB kickstart,blinking a LED, basing on  Systick timer.
If i let the linker work with default settings everything works.

If i try relocate the code and the interrupt vector table, at debug start i have my program mapped in a way that the stack address is at 0x8001000 ,the reset handler is at 0x8001004 and so on.I verify that the contained address actually points where the interrupt routines are.
But when i run  it the program moves along the code, but never enters in Systick Handler routine .Why?


Including  a macrofile containing the following  doesn't change the behavior.
execUserReset()
{
  MSP = *(int*)0x08001000;
  PC =    *(int*)0x08001004;
}

Thanks for help ,or just for spending your time reading this topic.
Diego

//***********************************************
this is how the .icf file was modified
//***********************************************

*###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__ = 0x08001000;     /*<<<<<modified*/
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x08001000;  /*<<<<<modified*/
/*<<<<<<<<<<<<<<<*/
define symbol __ICFEDIT_region_ROM_end__   = 0x080FFFFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__   = 0x20020000;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x400;
define symbol __ICFEDIT_size_heap__   = 0x200;
/**** 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 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:0x08000000 { section .Flasher };*/

place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };

place in ROM_region   { readonly };
place in RAM_region   { readwrite,
                        block CSTACK, block HEAP };

Offline

 

# 2   2011-11-29 12:07:06 relocating at 0x80001000 and no Systick interrupt

johncox333
New member
Registered: 2011-11-29
Posts: 1

Re: relocating at 0x80001000 and no Systick interrupt

Description: C&A Era places strong emphasis in delivery high quality products to
its clients like, Acrylic products, Acrylic services, Acrylic sign holders, Awards
and plaques, Counter display, Display fixtures, Customize acrylic, Acrylic stands,
Product display, Plastic display box, Plastic display case, Window displays, Acrylic
holders, Plastic display products, Showroom display, Acrylic boxes, Acrylic panels,
Acrylic display etc.
Email: ca_era1@yahoo.com

Offline

 

Board footer