Hi Estephania!
Thank you for your response to my issue.
I do understand that you don't share the Thread Library source, no problem.
While your understanding of what I described is correct, I only mentioned
that previously commissioned nodes worked to show that the HCD was
generally operational, outside of commissioning. If I start with no
existing commissioned endpoints, and try only to commission the first one,
it fails to commission.
When I first hit this problem, I spent more days than I'd like to admit
looking at memory, because to build the upgradeable HCD, I had to relocate
the HCD application to make room for the fsci bootloader. Eventually,
I discovered that if I erased the device, then only installed the relocated
HCD code from MCUExpresso, and ran it, commissioning worked correctly.
If I installed the bootloader along with the HCD application, then
commissioning would not work, even though I started from MCUExpresso,
and the bootloader never ran.
I installed smaller and smaller pieces of the fsci bootloader, until
I was only installing a very small piece of the IVT. It narrowed
down to that 0x0000001c location: If 0xf1 at 0x0000001c, commissioning
would fail. If 0x0, or 0xff at 0x0000001c, commissioning would work.
This failure can be reproduced with the sample code. If you build
a router-eligible-device, and a end-device, and put them each
on a FRDM_KW41Z (I actually use the Rigado R41Z), you can use
"thr create" on the REED and "thr join" on the ED, and the endpoint
joins. But if you modify that 0x0000001c location on the REED, by writing
0xf1 into it (just like the fsci boot loader has), then the
endpoint will not be able to join the thread network, because commissioning
won't work. You can add a "watchpoint" at 0x0000001c after creating the network
(make sure to check "read", not write), in MCUExpresso, to see the issue.
The Thread Library appears to me to be mistakenly accessing the
Interrupt Vector Table, and behaving differently depending upon what
it reads back. If I'm right that this is a bug, I guess I'm looking for two things:
1) If possible, someone can confirm the Thread Library bug, and maybe fix it.
2) Let others know about this issue, in case they face the same problem.
Thank you for your attention, and your suggestions. I want to say that
I am very impressed with the capabilities of the source code that NXP/Kinetis
provides. Also, having these forums to discuss issues is great!
Thanks!
Mike Lundberg