This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Hardfault Error

I'm using SDK 7.1, PCA10028 eval board, SD310 2.0.1, MCP 3.6.0.8331

When the line wrtHandle = hdr->Handle; executes I get an Hardfault Error. Why?

case BLE_GATTS_EVT_WRITE:				
							if (p_ble_evt->evt.gatts_evt.params.write.handle == 0 && p_ble_evt->evt.gatts_evt.params.write.op== BLE_GATTS_OP_EXEC_WRITE_REQ_NOW)
								{
									
									hdr 				=		(GatMem_t *)LongWriteBuff;
									wrtHandle 	= 	hdr->Handle;
									
									while (hdr->Handle == p_blinds->blinds_name_handles.value_handle)
											{
												memcpy(buff + hdr->Offset, hdr->Data, hdr->Len);

												len += hdr->Len;
												p += hdr->Len + 6;
												hdr = (GatMem_t *)p;
											}
									 if(wrtHandle == p_blinds->blinds_name_handles.value_handle)										
																		p_blinds->blinds_name_handler(p_blinds, (uint8_t *)buff);
									 
									 if(wrtHandle == p_blinds->sched_data_handles.value_handle)										
																		p_blinds->sched_data_handler(p_blinds, (uint8_t *)buff);
									 
									 if(wrtHandle == p_blinds->room_name_handles.value_handle)										
																		p_blinds->room_name_handler(p_blinds, (uint8_t *)buff);
									 
									 if(wrtHandle == p_blinds->room_info_handles.value_handle)										
																		p_blinds->room_info_handler(p_blinds, (uint8_t *)buff);
									return;
								}
							
							else on_write(p_blinds, p_ble_evt);
            break;

hdr points address 0x2000275B hdr.handle = 0x000B LongWriteBuff is at address 0x2000275B LongWriteBuff[0] = 0x000B

after execution of wrtHandle = hdr->Handle; My application locks up at:

0x0001D110 E7FE      B        HardFault_Handler (0x0001D110)
   165:                 B       . 
   166:                 ENDP 
   167: PendSV_Handler  PROC 
   168:                 EXPORT  PendSV_Handler            [WEAK] 
Parents Reply Children
No Data
Related