This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

LPC1768 getting a bus fault error

Note: This was originally posted on 12th November 2012 at http://forums.arm.com

Dear Friends,
I am trying to use fread. the problem is that a I am getting an  IMPRECISERR hard fault. This is the exact dissembly instruction that  causes hardfault.





0x00006B00 E92D4FFF  PUSH  {r0-r11,lr}
0x00006B04 4606   MOV   r6,r0
0x00006B06 468B   MOV   r11,r1
0x00006B08 461C   MOV   r4,r3
0x00006B0A B081   SUB   sp,sp,#0x04
0x00006B0C F1030048  ADD   r0,r3,#0x48
0x00006B10 9000   STR   r0,[sp,#0x00]
0x00006B12 F7FDFA2B  BL.W  _mutex_acquire (0x00003F6C)
0x00006B16 F1BB0F00  CMP   r11,#0x00
0x00006B1A D006   BEQ   0x00006B2A
0x00006B1C 9903   LDR   r1,[sp,#0x0C]
0x00006B1E 6827   LDR   r7,[r4,#0x00]
0x00006B20 2500   MOVS  r5,#0x00
0x00006B22 4628   MOV   r0,r5
0x00006B24 FB0BF901  MUL   r9,r11,r1
0x00006B28 E065   B     0x00006BF6
0x00006B2A 2400   MOVS  r4,#0x00
0x00006B2C E07C   B     0x00006C28
0x00006B2E 2F00   CMP   r7,#0x00
0x00006B30 DC63   BGT   0x00006BFA
0x00006B32 69E0   LDR   r0,[r4,#0x1C]
0x00006B34 4548   CMP   r0,r9
0x00006B36 DA41   BGE   0x00006BBC
0x00006B38 F1BA0F00  CMP   r10,#0x00
0x00006B3C D03E   BEQ   0x00006BBC
0x00006B3E 68E0   LDR   r0,[r4,#0x0C]
0x00006B40 0680   LSLS  r0,r0,#26
0x00006B42 D501   BPL   0x00006B48
0x00006B44 6AA0   LDR   r0,[r4,#0x28]
0x00006B46 E004   B     0x00006B52
0x00006B48 69A1   LDR   r1,[r4,#0x18]
0x00006B4A 6860   LDR   r0,[r4,#0x04]
0x00006B4C 4408   ADD   r0,r0,r1
0x00006B4E 6921   LDR   r1,[r4,#0x10]
0x00006B50 1A40   SUBS  r0,r0,r1
0x00006B52 4622   MOV   r2,r4
0x00006B54 EBA90105  SUB   r1,r9,r5
0x00006B58 4680   MOV   r8,r0
0x00006B5A 4630   MOV   r0,r6
0x00006B5C F7FFFCD2  BL.W  _readbuf (0x00006504)
0x00006B60 2800   CMP   r0,#0x00
0x00006B62 DD14   BLE   0x00006B8E
0x00006B64 F04F0700  MOV   r7,#0x00
0x00006B68 4480   ADD   r8,r8,r0
0x00006B6A F1A80101  SUB   r1,r8,#0x01
0x00006B6E 4406   ADD   r6,r6,r0
0x00006B70 61A1   STR   r1,[r4,#0x18]
0x00006B72 6922   LDR   r2,[r4,#0x10]
0x00006B74 F8161C01  LDRB  r1,[r6,#-0x01]
0x00006B78 4405   ADD   r5,r5,r0
0x00006B7A 7011   STRB  r1,[r2,#0x00]
0x00006B7C 6921   LDR   r1,[r4,#0x10]
0x00006B7E F1010101  ADD   r1,r1,#0x01
0x00006B82 62E1   STR   r1,[r4,#0x2C]
0x00006B84 6061   STR   r1,[r4,#0x04]
0x00006B86 68E1   LDR   r1,[r4,#0x0C]
0x00006B88 F4413100  ORR   r1,r1,#0x20000
0x00006B8C 60E1   STR   r1,[r4,#0x0C]
0x00006B8E 1C41   ADDS  r1,r0,#1
0x00006B90 D003   BEQ   0x00006B9A
0x00006B92 B110   CBZ   r0,0x00006B9A
0x00006B94 68E0   LDR   r0,[r4,#0x0C]
0x00006B96 0640   LSLS  r0,r0,#25
0x00006B98 D542   BPL   0x00006C20
0x00006B9A 4620   MOV   r0,r4
0x00006B9C F7FFFCCE  BL.W  _seteof (0x0000653C)
0x00006BA0 F8C48018  STR   r8,[r4,#0x18]
0x00006BA4 6920   LDR   r0,[r4,#0x10]
0x00006BA6 6060   STR   r0,[r4,#0x04]
0x00006BA8 62E0   STR   r0,[r4,#0x2C]
0x00006BAA 68E0   LDR   r0,[r4,#0x0C]
0x00006BAC 6027   STR   r7,[r4,#0x00]
0x00006BAE F4203000  BIC   r0,r0,#0x20000
0x00006BB2 60E0   STR   r0,[r4,#0x0C]
0x00006BB4 69E0   LDR   r0,[r4,#0x1C]
0x00006BB6 4240   RSBS  r0,r0,#0
0x00006BB8 60A0   STR   r0,[r4,#0x08]
0x00006BBA E018   B     0x00006BEE
0x00006BBC 4548   CMP   r0,r9
0x00006BBE DA03   BGE   0x00006BC8
0x00006BC0 68E0   LDR   r0,[r4,#0x0C]
0x00006BC2 F4400000  ORR   r0,r0,#0x800000
0x00006BC6 60E0   STR   r0,[r4,#0x0C]
0x00006BC8 4620   MOV   r0,r4
0x00006BCA F7FFFCCB  BL.W  __filbuf (0x00006564)
0x00006BCE 68E1   LDR   r1,[r4,#0x0C]
0x00006BD0 F4210100  BIC   r1,r1,#0x800000
0x00006BD4 60E1   STR   r1,[r4,#0x0C]
0x00006BD6 1C41   ADDS  r1,r0,#1
0x00006BD8 D008   BEQ   0x00006BEC
0x00006BDA 1C81   ADDS  r1,r0,#2
0x00006BDC D00A   BEQ   0x00006BF4
0x00006BDE 6827   LDR   r7,[r4,#0x00]
0x00006BE0 2800   CMP   r0,#0x00
0x00006BE2 DB07   BLT   0x00006BF4
0x00006BE4 1C6D   ADDS  r5,r5,#1
0x00006BE6 F8060B01  STRB  r0,[r6],#0x01
0x00006BEA E019   B     0x00006C20
0x00006BEC 6027   STR   r7,[r4,#0x00]
0x00006BEE FBB5F4FB  UDIV  r4,r5,r11
0x00006BF2 E019   B     0x00006C28
0x00006BF4 2001   MOVS  r0,#0x01
0x00006BF6 4682   MOV   r10,r0
0x00006BF8 E012   B     0x00006C20
0x00006BFA EBA90005  SUB   r0,r9,r5
0x00006BFE 46B8   MOV   r8,r7
0x00006C00 42B8   CMP   r0,r7
0x00006C02 DA00   BGE   0x00006C06
0x00006C04 4680   MOV   r8,r0
0x00006C06 4630   MOV   r0,r6
0x00006C08 4642   MOV   r2,r8
0x00006C0A 6861   LDR   r1,[r4,#0x04]
0x00006C0C F7FEFB99  BL.W  __aeabi_memcpy (0x00005342)
0x00006C10 6861   LDR   r1,[r4,#0x04]
0x00006C12 EBA70708  SUB   r7,r7,r8
0x00006C16 4446   ADD   r6,r6,r8
0x00006C18 EB010008  ADD   r0,r1,r8
0x00006C1C 4445   ADD   r5,r5,r8
0x00006C1E 6060   STR   r0,[r4,#0x04]



The STR instruction is causing the Hardfault.

The contents of R4 is 0x0000. Adding the offset 0x04, the address 0x0004 corresponds to the on chip flash.
(In case if the address would have pointed out any periphera, i would  have debugged the code related to that peripheral). But i dont  understand how to i debugg the on chip flash.
Kindly advise.
0