Booting user code on a TC277TE (B-Step) without a debugger

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
I could use some help understanding the documentation with respect to booting user code without a debugger attached.

When debugging with the iSystem/Winidea debugger, my PC is set to 0xa000 0020 upon reset. This is where my user code starts. Executing my code in the debugger works correctly.

If I disconnect the debugger and attempt to execute my code, the code does not appear to be starting. I have matched the switch settings in the document TriBoardManual-TC2X7-V13.pdf, page 28 of 63, Table 4-2 User Startup Modes for all other devices for Internal Start from Flash.

In the user manual for the micro, the following statement is made:

"Internal Start, In this basic startup mode, the first user instruction is fetched from address A000 0020 H in Internal Program Flash of the device."

What does "basic mode" mean? If I have my Triboard switches set to "Internal Start from Flash" is this the same as "basic mode"?

In order to boot in to my user code, is it a requirement to have a valid BMHD0 structure at 0xA000 0000?

Other questions about the BMHD structures:

1) I have a document titled "TC27xA BMI Information.pdf' that describes how to re-create the BMHD structure if they are accidentally erased. Looking at the examples in the document, I am unable to match the ABM Header CRC as shown in the examples using the most typical CRC-32 used (same as Ethernet). This is a byte by byte calculation correct? Can someone point me to the correct CRC algorithm to use?

2) Are the members of the BMHD header in big endian format or the native little endian for this micro? For example, is the Boot mode header ID the value of 0xB359 store in memory as 59 B3? Likewise, are the 32 bit pointers and 32 bit CRCs in also stored in little endian?

3) The "end address" in the BMHD is not clear to me. Is this the address of the next word after my application? For example, my application occupies 0xA000 0020 through 0xA001 0007, so should the 'end address' in the BMHD be set to 0xA001 0008?

Any help would be appreciated.

Thank you in advance.

Heath
0 Likes
4 Replies
Not applicable
Hello Heath ,

As now I started working on infineon TC277TF microcontroller , I'm also facing the same issue as you have mentioned above (Booting user code on a TC277TE (B-Step) without a debugger). I would like to know have you got any solution for this issue , if so kindly let me know it would be very appreciated.

- Thanks & Regards
Veeresh Biradar
0 Likes
Not applicable
Veeresh Biradar wrote:
Hello Heath ,

As now I started working on infineon TC277TF microcontroller , I'm also facing the same issue as you have mentioned above (Booting user code on a TC277TE (B-Step) without a debugger). I would like to know have you got any solution for this issue , if so kindly let me know it would be very appreciated.

- Thanks & Regards
Veeresh Biradar


Veeresh,

I was working with that project quite some time ago. I do recall that the documentation for the BMHD structure is not correct. I was able to find a properly formatted BMHD structure in our code (in C) and was able to proceed. As I recall there are several multi-byte fields in the structure and the endianness of those fields is significant.

Once I had a valid BMHD structure I was able to boot correctly without the debugger. Without a proper BMHD structure it is impossible to boot in to your code.

Good luck.
0 Likes
µC_Wrangler
Employee
Employee
50 solutions authored 100 sign-ins 25 likes received
You can locate this blank BMHD at 0x80000000; it will begin executing code at 0x80000020.

const uint32 BootModeHeader_0[] = {
0x00000000u, /* STADBM first user code at 0x8000 0020h */
0xb3590070u, /* BMI = 0070h BMHDID = B359h */
0x00000000u, /* ChkStart */
0x00000000u, /* ChkEnd */
0x00000000u, /* CRCrange */
0x00000000u, /* !CRCrange */
0x791eb864u, /* CRChead */
0x86e1479bu /* !CRChead */
};
0 Likes
Not applicable
Hello Smith ,

Thank you for reply.

Yes , I got BMHD from the code . And its also given by Neal Manson (one of the TriCore Forum Member) . Though I have proper formated BMHD structure I'm facing Stand Alone issue.

Thanks for sharing important points on this.

- Regards
Veeresh Biradar
0 Likes