TMS570 BSP testing and problem with VFP enabled build
Pavel Pisa
pisa at cmp.felk.cvut.cz
Mon Nov 23 20:50:24 UTC 2015
Hello Martin,
On Monday 23 of November 2015 21:31:46 Martin Galvan wrote:
> I'm about to test this on our setup. Just to be sure, does your
> startup code perform the register initialization required by the
> CCM-R4F? I added that to arm/shared/start/start.S a few months ago.
I am aware of your change. It is correct for sure and our setup
prepares ram first but RTEMS execution starts from _start symbol
and disassembly shows that register setup you provided is on the
code path
(gdb) x /40i _start
0x80000040 <bsp_start_vector_table_end>: bl 0x8000c8bc <bsp_start_init_registers_core>
0x80000044 <bsp_start_vector_table_end+4>: mov r0, #211 ; 0xd3
0x80000048 <bsp_start_vector_table_end+8>: msr CPSR_fc, r0
0x8000004c <bsp_start_vector_table_end+12>: mov r0, #210 ; 0xd2
...
0x800000a4 <bsp_start_vector_table_end+100>: mov r0, #1073741824 ; 0x40000000
0x800000a8 <bsp_start_vector_table_end+104>: vmsr fpexc, r0
0x800000ac <bsp_start_vector_table_end+108>: bl 0x8000c910 <bsp_start_init_registers_vfp>
0x800000b0 <bsp_start_vector_table_end+112>: ldr lr, [pc, #92] ; 0x80000114 <twiddle+26>
0x800000b4 <bsp_start_vector_table_end+116>: orr lr, lr, #1
(gdb) x /20i bsp_start_init_registers_vfp
0x8000c910 <bsp_start_init_registers_vfp>: mov r0, #0
....
0x8000c950 <bsp_start_init_registers_vfp+64>: vmov d15, r0, r0
0x8000c954 <bsp_start_init_registers_vfp+68>: bx lr
0x8000c958 <bsp_start>: push {r3, lr}
0x8000c95a <bsp_start+2>: movw r3, #36684 ; 0x8f4c
The additional registers initialization by RTEMS should be another guarantee
that registers d0 to d15 and VFP state is OK. So there should not be problem
from this side. Other option is too small default stack size (but we tried to enlarge it)
or something else. May it be some status register or other safety hardware
initialization skipped??? I am not sure.
Best wishes,
Pavel
More information about the devel
mailing list