This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

求助:串口初始化失败



大家好:

     我的项目用norflash的ffast external booting启动(non-muxed模式),目前在调试u-boot(u-boot-2013.01.01-psp06.00.00.00)遇到一个问题,每次JTAG单步调试到serial_init()就跳出走不下去。

     int serial_init(void)
  {
       return get_current()->start();
  }

   具体走到start()后直接就跳到如下汇编函数中,就在红色标出的代码死循环了,出不去了,也就是在0x08000010、0x08000320、0x08000324三个地址死循环了,

不知是由于堆栈原因还是哪里的原因,请教大家一下,谢谢!

单步调试图:

...........

08000324:   E58DE000 STR             R14, [R13]

08000328:   E14FE000 MRS             R14, SPSR

0800032c:   E58DE004 STR             R14, [R13, #4]

08000330:   E3A0D013 MOV             R13, #19

08000334:   E169F00D MSR             SPSR_cf, R13

对应汇编函数为:

.macro get_bad_stack
 ldr r13, IRQ_STACK_START_IN  @ setup our mode stack (enter in banked mode)

 str lr, [r13]   @ save caller lr in position 0 of saved stack
 mrs lr, spsr   @ get the spsr
 str lr, [r13, #4]   @ save spsr in position 1 of saved stack

mov r13, #MODE_SVC   @ prepare SVC-Mode msr spsr_c, r13
 msr spsr, r13   @ switch modes, make sure moves will execute
 mov lr, pc    @ capture return pc
 movs pc, lr    @ jump to next instruction & switch modes.
 .endm