SMC91111 CYG_ASSERT("Unexpected rx packet") on Phytec MPC5554

Peter Dufault dufault at hda.com
Sat Aug 15 16:04:59 UTC 2015


In my application using 4.11 I’ve started encountering a CYG_ASSERT() “Unexpected rx packet” assertion.  I’m not sure what I’ve changed to cause it, or if it is an issue introduced by 4.11.  I’ve seen it four times now, three times before any software change and once after the change described below, and what it does is to make the system totally unusable through the serial port console or network.

The CYG_ASSERT() macro in that driver boils down to "while (1) printf(“assertion_message”);”, and that then requires manual intervention to push the hardware reset button to get the application started again.  The watchdog is being triggered by the high-priority control loop that continues to run, maybe a defect in my code.

I changed this CYG_ASSERT() to instead print the warning once and continue on to free the resource that it’s complaining about.  The fourth time I saw this issue is after this change, and the application printed the message once, and everything then continued to work without any apparent issue.  It’s still up and running a day later though the issue hasn’t happened again.  It could be that my hack is leaking some kind of resource that will hurt in the long run.

A couple of questions / observations:

- That CYG_ASSERT must be changed to do something more reasonable, in most situations a network driver issue shouldn’t just hang up the system.  Recommendations?

- Has anyone seen this?  I’m not sure how many platforms are using SMC91111 other than Phytec MPC5554 and a Gaisler variant.  If anyone is familiar with that chip I’d really appreciate speculation as to what situation triggers this.

Peter
-----------------
Peter Dufault
HD Associates, Inc.      Software and System Engineering



More information about the devel mailing list