Login Register
ZigBee BLE concurrent SDK - debugging
Dec 06, 2023 13:24




When I debug/step via BDT I have for example this output:

pause mcu, pc : 0x01445e
00000000 <__start>:
10: 3363742d tcmpncc r3, #754974720 ; 0x2d000000
00000220 <__irq>:
222: 64ff tpush {r0, r1, r2, r3, r4, r5, r6, r7}
00000220 <__irq>:
224: 6bd8 tmrss r0
00000220 <__irq>:
226: 0641 tmov r1, r8
00000220 <__irq>:
228: 064a tmov r2, r9
00000220 <__irq>:

So, for example in tpush {r0, r1, r2, r3, r4, r5, r6, r7}, is it possible to see what values in r0, r1... r7 are?

Is there a document describing all assembly instructions for example like above tcmpncc, tpush, tmrss and others?

2 replies
TL_Soyo Dec 07, 2023 09:57


  At present, this part of the information is not publicly available.

wes58 [Author] Dec 08, 2023 04:23

So how can you debug the firmware?

To be honest, I don't want to know assembly instructions if I could debug in C. But I can't - so the only option is to understand how assmebly works.

In BDT, the nly thing you can do is to read/write variable values or memory. In most cases it will be sufficient.

If you try to use BDT debug/step through instructions you see the assembler instructions but Telink doesn t provide information about them.

You provide precompiled libraries, no source code - and the assembly looks like as shown in my first post. How can you debug this?

You didn t answer whether it is possible to see what r0 ... r7 in the example tpush {r0, r1, r2, r3, r4, r5, r6, r7} are? Or in tmov r1, r8?

I can guess that tpush will push variables on the stack - or not?

And tmov will move value in r8 to r1. But others who knows?

But what is r8 or r1?

You can t debug in C, you can t debug in assembly. You can only hope that the code work.

It s like the issue I have had for half a year which I described in another thread. I can t fix it and Telink couldn t fix it.