how to jump application address

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

cross mob
x3x3
Level 1
Level 1
5 sign-ins 5 replies posted 5 likes given

Hello, I am developing a bootloader using the tc389 board.

 

First , I apologize first for my poor English.

From 0x80000000 to 0x80007ff  is bootloader section,

from 0x80008000 ~ i use application. 

 

my last bootloader code is 

1.version

Ifx_Ssw___setAddressReg(A0,0xA0008004);
__asm("ji a0");

2.version

pProgResetHandler = (void(*)(void))(*((u_addr *)0xA0008004)); 

pProgResetHandler();

 

but it  doesn`t work!

always i meet trap_bus_Error 

and that is  "Program Fetch Synchronous ERROR"

 

so i think this problem is like protecting flash memory ?

but i can`t find register  

please , help me 😞 

 

 

0 Likes
1 Solution
µC_Wrangler
Employee
Employee
50 solutions authored 100 sign-ins 25 likes received

DEADD=0xF0001010 is the address that caused the trap - and 0xF0001010 is STM0_TIM0.  Could it be your code was trying to write to this read-only register?  What's in A11 (the instruction where the trap occurred)? 

 

View solution in original post

13 Replies
MoD
Employee
Employee
50 likes received 500 replies posted 100 solutions authored

It seems there is the cacheline on address 0xA0008000 not completely programmed, therefore the fetch from the address is not possible. Check the content of the flash on your application.

lock attach
Attachments are accessible only for community members.
x3x3
Level 1
Level 1
5 sign-ins 5 replies posted 5 likes given

thanks about your reply .

but i think it`s completely programmed application ...but  or i miss something ..

could you check my lsl file ? 😞 

this is my bootloader and application lsl file . 

 

anyway thank you for your time 

0 Likes
MoD
Employee
Employee
50 likes received 500 replies posted 100 solutions authored

The map file gives more information where the code finally is located. If possible please add.

lock attach
Attachments are accessible only for community members.
x3x3
Level 1
Level 1
5 sign-ins 5 replies posted 5 likes given

I have attached the map file.
Thank you for your help

0 Likes
MoD
Employee
Employee
50 likes received 500 replies posted 100 solutions authored

It seems that the application is not correct linked to the addresses or the map file is not correct generated. In bootloader there are the space addr set to the correct corresponding addresses. In application the space addr is always 0.

x3x3
Level 1
Level 1
5 sign-ins 5 replies posted 5 likes given

thank you for your reply. 

I will check the application`s lsl file again

0 Likes
x3x3
Level 1
Level 1
5 sign-ins 5 replies posted 5 likes given

thanks to your advices , i find that problem is  application start sw PMS init function. 🙂

 

 

0 Likes
µC_Wrangler
Employee
Employee
50 solutions authored 100 sign-ins 25 likes received

Also check DEADD, which will show you the address that caused the error.  Perhaps you are executing the application correctly, but the error is happening later.

thanks to your advice , i check DEADD register ,

this value is F0001010 , but i don`know what is meaning . 😞

0 Likes
µC_Wrangler
Employee
Employee
50 solutions authored 100 sign-ins 25 likes received

DEADD=0xF0001010 is the address that caused the trap - and 0xF0001010 is STM0_TIM0.  Could it be your code was trying to write to this read-only register?  What's in A11 (the instruction where the trap occurred)? 

 

Hi . Thanks for times , at some point .

I face trap class 4 , id 2 is "Data Access Synchronous Error "

and as your advice , again i check register 

CPU0_DEADD is 0x0000001C3

and A11 register A0008020

.so i think jumping application is success ,but there are problem in application .

i will more study 😞 

anyway really thank you !!!

0 Likes
Tonny
Level 3
Level 3
25 replies posted 10 questions asked 50 sign-ins

Hi:

Could you share you BMHD configuration file, If convenient please add.

x3x3
Level 1
Level 1
5 sign-ins 5 replies posted 5 likes given

thanks your help but i don`t have bmhd configuration file 😞 

cause i am using debugging tool trace32 winidea 

iam not using debugging in aurix studio.

0 Likes