Thanks for this sanchayan. went through this article but cannot pin point where the fault lies
Sanchayan wrote: > > Hello, > > Yes, i did get such faults. To trace the cause of a hard fault, refer to > the Technical Reference Manual. > > Here is a link for some help. > http://coherentmusings.wordpress.com/2012/06/11/debugging-a-hard-fault-in-arm-cortex-m3s/ > > I use to get a bus fault generally once in a few hours or so. But, my > problem started occurring after i incorporated firmware update over > Ethernet functionality in my code. I had no problems with sending or > receiving data. I wrote a bus fault handler in which i do a software > reset of the system. > > > On 26-06-2012 17:14, shettys wrote: >> Yes i am using the arm cortex m3. Did you have such problems ? >> >> >> Sanchayan wrote: >>> Hello, >>> >>> Which processor are you using? >>> >>> Are you using ARM Cortex M3? >>> >>> >>> On 26-06-2012 16:23, shettys wrote: >>>> Hello, >>>> >>>> Could somebody please help me with my problem in setting up a TCP >>>> client. >>>> The code is as posted below. >>>> I call the TCPConnection_start before i go into the main loop, which >>>> initializes the connection. Then i call the TCP_send periodically( to >>>> send >>>> some ADC values). >>>> When my server opens a connection on Port 7 and I run my program it >>>> works >>>> fine and the ADC values are sent. However sometimes it just goes into a >>>> hard >>>> fault handler. Could someone please let me know where i am wrong? >>>> >>>> void TCPConnection_start(void) >>>> { >>>> struct ip_addr DestIPaddr; >>>> >>>> /* create new tcp pcb */ >>>> pcb = tcp_new(); >>>> if (pcb != NULL) >>>> { >>>> IP4_ADDR( &DestIPaddr, DEST_IP_ADDR0, DEST_IP_ADDR1, >>>> DEST_IP_ADDR2, >>>> DEST_IP_ADDR3 ); >>>> >>>> /* connect to destination address/port */ >>>> tcp_connect(pcb,&DestIPaddr,DEST_PORT,TCPConnection_Established); >>>> } >>>> } >>>> >>>> /** >>>> * @brief Function called when TCP connection established >>>> * @param tpcb: pointer on the connection contol block >>>> * @param err: when connection correctly established err should be >>>> ERR_OK >>>> * @retval err_t: returned error >>>> */ >>>> static err_t TCPConnection_Established(void *arg, struct tcp_pcb *pcb, >>>> err_t >>>> err) >>>> { >>>> if (err == ERR_OK) >>>> { >>>> /* allocate structure es to maintain tcp connection informations */ >>>> es = (struct echoclient *)mem_malloc(sizeof(struct echoclient)); >>>> >>>> if (es != NULL) >>>> { >>>> es->state = ES_CONNECTED; >>>> es->pcb = pcb; >>>> } >>>> } >>>> } >>>> >>>> >>>> void TCP_send(void) >>>> { >>>> uint32_t (*ptr)[3]; // pointer to the ADC_TDstamped_SRAM >>>> array. >>>> #ifdef UserButton_InteruptFor_ADCConversion >>>> sprintf((char*)data, "Potentiometer value is, %d\n", >>>> ADC3ConvertedValue); >>>> >>>> /* allocate pbuf */ >>>> es->p_tx = pbuf_alloc(PBUF_TRANSPORT, strlen((char*)data) , >>>> PBUF_POOL); >>>> >>>> if (es->p_tx) >>>> { >>>> >>>> /* copy data to pbuf */ >>>> pbuf_take(es->p_tx, (char*)data, strlen((char*)data)); >>>> >>>> /* send data */ >>>> TCPData_send(pcb,es); >>>> } >>>> } >>>> >>>> >>>> /** >>>> * @brief function used to send data >>>> * @param tpcb: tcp control block >>>> * @param es: pointer on structure of type echoclient containing >>>> info >>>> on >>>> data >>>> * to be sent >>>> * @retval None >>>> */ >>>> static void TCPData_send(struct tcp_pcb *pcb, struct echoclient * es) >>>> { >>>> struct pbuf *ptr; >>>> err_t wr_err = ERR_OK; >>>> >>>> while ((wr_err == ERR_OK) && >>>> (es->p_tx != NULL) && >>>> (es->p_tx->len <= tcp_sndbuf(pcb))) >>>> { >>>> >>>> /* get pointer on pbuf from es structure */ >>>> ptr = es->p_tx; >>>> >>>> /* enqueue data for transmission */ >>>> wr_err = tcp_write(pcb, ptr->payload, ptr->len, 1); >>>> >>>> if (wr_err == ERR_OK) >>>> { >>>> /* continue with next pbuf in chain (if any) */ >>>> es->p_tx = ptr->next; >>>> >>>> if(es->p_tx != NULL) >>>> { >>>> /* increment reference count for es->p */ >>>> pbuf_ref(es->p_tx); >>>> } >>>> >>>> /* free pbuf: will free pbufs up to es->p (because es->p has a >>>> reference count > 0) */ >>>> pbuf_free(ptr); >>>> } >>>> else if(wr_err == ERR_MEM) >>>> { >>>> /* we are low on memory, try later, defer to poll */ >>>> es->p_tx = ptr; >>>> } >>>> else >>>> { >>>> } >>>> } >>>> } >>> >>> >>> >>> Disclaimer: This message (including any attachments) contains >>> confidential >>> information and is intended solely for the use of the individual or >>> entity >>> to whom they are addressed. If you are not the intended recipient you >>> are >>> notified that disclosing, copying, distributing or taking any action >>> based >>> on the contents of this information is strictly prohibited. If you have >>> received this email in error please notify [email protected]. Please >>> note >>> that any views or opinions presented in this email are solely those of >>> the >>> author and do not necessarily represent those of Godrej & Boyce Mfg. Co. >>> Ltd. group of companies. The recipient should check this email and any >>> attachments for the presence of viruses. Godrej & Boyce Mfg. Co. Ltd. >>> group of companies accepts no liability for any damage caused by any >>> virus >>> transmitted by this email. >>> >>> >>> _______________________________________________ >>> lwip-users mailing list >>> [email protected] >>> https://lists.nongnu.org/mailman/listinfo/lwip-users >>> >>> > > > > > Disclaimer: This message (including any attachments) contains confidential > information and is intended solely for the use of the individual or entity > to whom they are addressed. If you are not the intended recipient you are > notified that disclosing, copying, distributing or taking any action based > on the contents of this information is strictly prohibited. If you have > received this email in error please notify [email protected]. Please note > that any views or opinions presented in this email are solely those of the > author and do not necessarily represent those of Godrej & Boyce Mfg. Co. > Ltd. group of companies. The recipient should check this email and any > attachments for the presence of viruses. Godrej & Boyce Mfg. Co. Ltd. > group of companies accepts no liability for any damage caused by any virus > transmitted by this email. > > > _______________________________________________ > lwip-users mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/lwip-users > > -- View this message in context: http://old.nabble.com/LWIP-client-code-causes-hard-fault-error-tp34071696p34072407.html Sent from the lwip-users mailing list archive at Nabble.com. _______________________________________________ lwip-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lwip-users
