| 救助:我用Kinetis Bootloader V2.0的freedom_bootloader工程生成的boot程序,想通过串品升级MK22FN512的应用程序,pc端用KinetisFlashTool.exe. 使用中可以正确连接并正确写入应用程序,也提示写入成功了(通过仿真器的读回与写入文件比较,确实是一样的,说明写入已没的问题),但就是跳不进应用程序!我的相关配置如下:应用程序的入口地址设置(ProcessorExpert.ld): 
 /* Entry Point */
ENTRY(__thumb_startup)
/* Highest address of the user mode stack */
_estack = 0x20010000;    /* end of m_data */
__SP_INIT = _estack;
__stack = _estack;
/* Generate a link error if heap and stack don't fit into RAM */
__heap_size = 0x00;                    /* required amount of heap  */
__stack_size = 0x0400;                 /* required amount of stack */
MEMORY {
  m_interrupts (RX) : ORIGIN = 0x0000A000, LENGTH = 0x00000198
  m_text      (RX) : ORIGIN = 0x0000A410, LENGTH = 0x00075BF0
  m_data      (RW) : ORIGIN = 0x1FFF0000, LENGTH = 0x00020000
  m_cfmprotrom  (RX) : ORIGIN = 0x0000A400, LENGTH = 0x00000010
}
上面是生成的.map文件部分.interrupts     0x0000a000      0x198
                0x0000a000                __vector_table = .
                0x0000a000                . = ALIGN (0x4)
 *(.vectortable)
 .vectortable   0x0000a000      0x198 ./Static_Code/System/Vectors.o
                0x0000a000                __vect_table
                0x0000a198                . = ALIGN (0x4)
.cfmprotect     0x0000a400       0x10
                0x0000a400                . = ALIGN (0x4)
 *(.cfmconfig)
 .cfmconfig     0x0000a400       0x10 ./Static_Code/System/CPU_Init.o
                0x0000a400                _cfm
                0x0000a410                . = ALIGN (0x4)
.text           0x0000a410     0x128c
                0x0000a410                . = ALIGN (0x4)
 通过对boot 的仿真,也确实执行到了跳转到应用程序位置:
 
 applicationAddress=0xa004;// In the case of the typical peripheral timeout, jump to the user application.
                    jump_to_application(applicationAddress, stackPointer);
stackPointer=0xa000;
 执行到这里后,就不停在跳转,但就是没能进应用程序
 求大侠指点下!
 
 |