We meet three unexpected error and reboot. They are (1)!!! bus error, (2)!!! Alignment error, (3)Unclaimed Interrupt
And our environment is introduced in https://community.nxp.com/message/1185211
1.!!! Bus error
Our Coord connect with host via Uart1, and pass Zigbee Packet between host and child. The largest number of wireless packet can up to 30 packets per second. Sometimes, average 12hour, Coord meet Bus error and reboot.
I dump the content of Stack, and use addr2line. I find the top of Stack is point to some Func(Always the 2nd address value). Can I confirm the question occured when running these Func?
I guess it mat be caused by RF conflict with Uart. How can I confirm? Or other possible reason?
2.!!! Alignment error
It is appeared under the same circumstance with the above question. But this problem we meet about 2 day per occuring. How can I find reason of this problem?
Stack content of this question shows the function being SDK Func, not application Func. Can I thin this problem caused by SDK?
3.Unclaimed Interrupt
When I init chip, I don't init other peripheral except we using. When this problem appears, How can I confirm which peripheral is interrupted?
I guess I can register every peripheral ISR in PIC_SwVectTable. When some peripheral interrupted, I can find which peripheral. Does it work?
Hi,
Did you try with the JN-AN-1216 Control Bridge or the JN-AN-1217 Base Device?
Could you please capture the packets in the air?
Regards,
Mario
Thanks for your reply. I use AN1229 only for Zigbee Pro not 3.0.
Can you tell me how to analyse this kind of problem? Now I find problem occuring when handle list.
Hi Xuanpu,
1.!!! Bus error
I am not sure if you are trying to access a not populated memory. I am assuming that you are working on EEPROM memory. What is the priority that you have in your system?
Could you please provide more details?
2.!!! Alignment error
Alignment exceptions are generated when software attempts to access objects that are not aligned to natural word boundaries. 16-bit objects must be stored on even byte boundaries, while 32-bit objects must be stored on quad byte boundaries. For instance, attempting to read a 16-bit object from address 0xFFF1 will trigger an alignment exception as will a read of a 32-bit object from 0xFFF1, 0xFFF2 or 0xFFF3. Examples of legal 32-bit object addresses are 0xFFF0, 0xFFF4, 0xFFF8 etc.
https://www.nxp.com/docs/en/data-sheet/JN516X.pdf
3.Unclaimed Interrupt
You are calling or requesting some interrupt from a peripheral that you don't have to initialize, You could look at the next API vUnclaimedInterrupt and be sure that you previously init the peripheral.
Regards,
Mario
Hi Mario,
Thanks very much for your help. Now I think I handle this issue.
Before handling, I find that Bus error and Alignment error occurred when operating list. And I find I didn't align the structure of node in list. So I add __attribute__ ((aligned(4))) after a structure defined. This is one reason.
Another reason, I find a copy byte over buffer length, which means oversteping the boundary. I fix it.
Thanks again
Best regards
Gu Xuanpu