- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 😞
Solved! Go to Solution.
- Tags:
- TC389
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The map file gives more information where the code finally is located. If possible please add.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
thank you for your reply.
I will check the application`s lsl file again
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
thanks to your advices , i find that problem is application start sw PMS init function. 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
thanks to your advice , i check DEADD register ,
this value is F0001010 , but i don`know what is meaning . 😞
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 !!!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi:
Could you share you BMHD configuration file, If convenient please add.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.