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

Hard Fault with net_initialize()

Hello
I send and receive data from Ethernet with cmsis library

I send my data with send function each 100ms(with each timer interrupt)

void send(void){
        unsigned char i;
        unsigned long int checksum;
        char msg[200];


                        if(tcp_check_send(socket))
                        {
checksum=data1+data2+data3+data4+data5+data6+data7+data8+data9+data10;


sprintf(msg,"%06ld%06ld%06ld%06ld%06ld%06ld%06ld%06ld%02hhd%02hhd\n\r",data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,checksum);

                                        for(i=0;i<200;i++)
                                        {
                                                if(msg[i]=='\0')
                                                {
                                                break;
                                                }
                                        }

                sendbuf = tcp_get_buf (i);
                memcpy (sendbuf, msg, i);
                tcp_send (socket, sendbuf,i);
                memset(msg, '\0', sizeof(msg));

}

and receive data with call back function

uint32_t tcp_callback (int32_t soc, tcpEvent event, const uint8_t *buf, uint32_t len){

  switch (event) {
    case tcpEventConnect:return (1);
    case tcpEventAbort:tcp_close(socket);break;
    case tcpEventEstablished:break;
    case tcpEventClosed:break;
    case tcpEventACK:break;
    case tcpEventData:
                flag=1;
                memset(&pcstr[0], '\0', sizeof(pcstr));
                memcpy (pcstr,buf, len);
                break;
  }
  return (0);

}

and here is my main settings

int main (void)
{
        net_initialize();

        socket = tcp_get_socket (TCP_TYPE_SERVER | TCP_TYPE_KEEP_ALIVE, 0, 10,tcp_callback);
        if(socket!=0){
        tcp_listen (socket, 5000);
        }
                while (1)
                {
                        //somecode
                }
}

my code works fine and send and receive data and unfortunately it hangs after for several seconds.As I debug my MCU I see that net_initialize() make it hangs(but I call it only once).
obrazki.elektroda.pl/6768729300_1476206457.png
and it shows me the error line
obrazki.elektroda.pl/8204505200_1476206458.png
and here is my fault report
obrazki.elektroda.pl/5895633200_1476206456.png

why my bus makes fault? and what is my mistake?