_start problem with KL05Z

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

_start problem with KL05Z

ソリューションへジャンプ
1,712件の閲覧回数
Ardoster
Contributor III

Hi

 

I'm starting up with the KL05Z and Kinetis Design Studio, but I'm having problems when my code arrives to _start. To put you in context, I've operated as follows:

 

1 - I've created a new Kinetis Design Studio: NEW_PROJECT -> KINETIS DESIGN STUDIO.

2 - Selected in the processor list the MKL05Z32xxx4

3 - I don't select the options Kinetis SDK (not available), neither the Processor Expert tick. I want a bare metal project.

4 - Click Finish

 

The generated project compiles correctly, but has the problem that when arrives to _start hangs. I've replaced the _start function by main, and now the application runs correctly, but I think there's a problem with static and global variables, because they are not being initialized. It must be a problem with startup files.

 

How can I fix it?

 

Thanks you in advance

 

Regards,

Eduardo

ラベル(1)
タグ(2)
0 件の賞賛
返信
1 解決策
1,371件の閲覧回数
BlackNight
NXP Employee
NXP Employee

Hi Eduardo,

can you check you linker file, if you have this:

/* Entry Point */

ENTRY(Reset_Handler)

HEAP_SIZE  = DEFINED(__heap_size__)  ? __heap_size__  : 0x00000200;

STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x00000100;

/* Specify the memory areas */

MEMORY

{

  m_interrupts          (RX)  : ORIGIN = 0x00000000, LENGTH = 0x00000100

  m_flash_config        (RX)  : ORIGIN = 0x00000400, LENGTH = 0x00000010

  m_text                (RX)  : ORIGIN = 0x00000410, LENGTH = 0x00007BF0

  m_data                (RW)  : ORIGIN = 0x1FFFFC00, LENGTH = 0x00001000

}

Erich

元の投稿で解決策を見る

0 件の賞賛
返信
3 返答(返信)
1,372件の閲覧回数
BlackNight
NXP Employee
NXP Employee

Hi Eduardo,

can you check you linker file, if you have this:

/* Entry Point */

ENTRY(Reset_Handler)

HEAP_SIZE  = DEFINED(__heap_size__)  ? __heap_size__  : 0x00000200;

STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x00000100;

/* Specify the memory areas */

MEMORY

{

  m_interrupts          (RX)  : ORIGIN = 0x00000000, LENGTH = 0x00000100

  m_flash_config        (RX)  : ORIGIN = 0x00000400, LENGTH = 0x00000010

  m_text                (RX)  : ORIGIN = 0x00000410, LENGTH = 0x00007BF0

  m_data                (RW)  : ORIGIN = 0x1FFFFC00, LENGTH = 0x00001000

}

Erich

0 件の賞賛
返信
1,372件の閲覧回数
Ardoster
Contributor III

Hi

Thanks you!!!!! The problem was in the HEAP_SIZE. The generated linker file configured this value to 100, instead 200 as yours. Correcting this value, the _start function is called now correctly.

Thanks again!!!!

Regards,

Eduardo

0 件の賞賛
返信
1,372件の閲覧回数
BlackNight
NXP Employee
NXP Employee

You are welcome :-)

It is that problem that the GNU libraries in KDS require an excessive amount of heap memory. This problem does not exist for the ARM Embedded Lauchpad tools (that's why I'm using launchpad in many of my projects, see Switching ARM GNU Tool Chain and Libraries in Kinetis Design Studio | MCU on Eclipse).

Erich

0 件の賞賛
返信