Hello!, I am new to not only ARM but also CCS and Windows. I had been working on a project and encountered a quite stable Abort(data) in spite of not touching any hardware registers. It occurred after 10 to 20 times of source updates and builds. I realized that this problem can be worked around by copying an older project to create a new one and then copying source files into this project from the project in question. However I would like to know why this problem occurred and how I can avoid it in the future.
I clicked the STOP icon in the CCS's debug window and the Link Register was 0x457c. So I looked at the disassembly list. It seems like
STR R1, [R0]
is an instruction that caused the exception. The R0 is pointing at the RAM area. Why this exception occured?
-- snip from Registers --
Core Registers Core Registers
PC 0x00000010 Program Counter [Core]
SP 0x00000000 General Purpose Register 13 [Core]
LR 0x0000457C General Purpose Register 14 [Core]
CPSR 0x20000397 Stores the status of interrupt enables and critical processor status signals [Core]
R0 0x080083C0 General Purpose Register 0 [Core]
R1 0x08008324 General Purpose Register 1 [Core]
R2 0x000000A5 General Purpose Register 2 [Core]
R3 0x00000000 General Purpose Register 3 [Core]
R4 0x00000000 General Purpose Register 4 [Core]
R5 0x08000208 General Purpose Register 5 [Core]
R6 0x0800022C General Purpose Register 6 [Core]
R7 0xFFFFFFFF General Purpose Register 7 [Core]
R8 0x080018E0 General Purpose Register 8 [Core]
R9 0x00000000 General Purpose Register 9 [Core]
R10 0x00007500 General Purpose Register 10 [Core]
R11 0xFFFFFFB0 General Purpose Register 11 [Core]
R12 0x00000001 General Purpose Register 12 [Core]
R13 0x00000000 General Purpose Register 13 [Core]
R14 0x0000457C General Purpose Register 14 [Core]
USER_Registers
R8_USER 0x080018E0 General Purpose Register 8 in USER mode [Core]
R9_USER 0x00000000 General Purpose Register 9 in USER mode [Core]
R10_USER 0x00007500 General Purpose Register 10 in USER mode [Core]
R11_USER 0xFFFFFFB0 General Purpose Register 11 in USER mode [Core]
R12_USER 0x00000001 General Purpose Register 12 in USER mode [Core]
R13_USER 0x080018A8 General Purpose Register 13 in USER mode [Core]
R14_USER 0x0000056C General Purpose Register 14 in USER mode [Core]
FIQ_Registers
SPSR_FIQ 0x44011529 Stores the status of interrupt enables and critical processor status signals [Core]
R8_FIQ 0x00000000 General Purpose Register 8 in FIQ mode [Core]
R9_FIQ 0x00000000 General Purpose Register 9 in FIQ mode [Core]
R10_FIQ 0x00000000 General Purpose Register 10 in FIQ mode [Core]
R11_FIQ 0x00000000 General Purpose Register 11 in FIQ mode [Core]
R12_FIQ 0x00000000 General Purpose Register 12 in FIQ mode [Core]
R13_FIQ 0x00000000 General Purpose Register 13 in FIQ mode [Core]
R14_FIQ 0x00005478 General Purpose Register 14 in FIQ mode [Core]
Supervisor_Registers
SPSR_SVC 0x6000031F Stores the status of interrupt enables and critical processor status signals in supervisor mode [Core]
R13_SVC 0x080000B8 General Purpose Register 13 in Supervisor mode [Core]
R14_SVC 0x00005264 General Purpose Register 14 in Supervisor mode [Core]
Abort_Registers
SPSR_ABT 0x20000392 Stores the status of interrupt enables and critical processor status signals in abort mode [Core]
R13_ABT 0x00000000 General Purpose Register 13 in Abort mode [Core]
R14_ABT 0x0000457C General Purpose Register 14 in Abort mode [Core]
IRQ_Registers
-- pins --
-- snip from disassembly --
00004564: E59F00FC LDR R0, pxCurrentTCBConst
00004568: E5900000 LDR R0, [R0]
0000456c: E590E000 LDR R14, [R0]
00004570: E59F00F4 LDR R0, ulFPUContextConst
00004574: E8BE0002 LDMFD R14!, {R1}
00004578: E5801000 STR R1, [R0]
0000457c: E3510000 CMP R1, #0
00004580: 0A000002 BEQ 0x4590
00004584: E8BE0001 LDMFD R14!, {R0}
00004588: ECBE0B20 VLDMIA R14!, {D0-D15}
-- pins --
-- snip from link map --
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
VECTORS 00000000 00000020 00000020 00000000 X
FLASH0 00000020 0017ffe0 00005948 0017a698 R X
FLASH1 00180000 00180000 00000000 00180000 R X
STACKS 08000000 00000200 00000000 00000200 RW
RAM 08000200 0003fe00 000081dc 00037c24 RW
-- pins --
Other info:
CPU clock is 180MHz,
Tried Clean the project, tried restarting the CCS, but not yet tried rebooting the Win box which uptime is 80 days.
Thank you very much in advance.
masaki