- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Reading data at low addresses changes depending on when I read it.
How big is the RAM overlay? I assume it is for the interrupt vector table and that the table can not be in Flash.
I'm trying to calculate a CRC on the firmware during initialization and also later while it is running.
- Labels:
-
BLE
- 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
Thanks. I usually do not change the MPU. Do you know where it gets modified?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When you tell us the address you monitor, we might be able to tell where it gets modified.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For example 0x88 get changed in the following Cypress generated code. The code in italics was added by me.
dataAt88 = 0xFB95; dataAgainAt88 = 0x61d9; address = 0x61d9; PWM_RIGHT_PUMP_ISR__INTC_NUMBER = 18u;
void PWM_RIGHT_PUMP_ISR_SetVector(cyisraddress address)
{
uint32_t dataAt88 = *(uint32_t*)0x88;
CyRamVectors[CYINT_IRQ_BASE + PWM_RIGHT_PUMP_ISR__INTC_NUMBER] = address;
uint32_t dataAgainAt88 = *(uint32_t*)0x88;
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Address 0x00000088 is flash and not overlaid by ram.
As long as you do not rewrite flash it will keep its content. Use debugger to display memory, any changes would be marked in red colour.
Bob