cancel
Showing results for 
Search instead for 
Did you mean: 

Software techniques to improve EMC performance

ezanen9
Associate II
Posted on March 10, 2006 at 08:51

Software techniques to improve EMC performance

3 REPLIES 3
ezanen9
Associate II
Posted on March 03, 2006 at 09:40

Hi all,

At the moment I am implementing the AN1015 application note from the ST website(see attachment). This document discribes how you can write the most robus and reliable software for you MCU.(In my case the STR710)

I have troubles implementing chapter 2.2.

My questions for chapter 2.2:

1. My program is running from flash, how do I write a reset of jump instruction to all the unused flash memory adresses?

In case of a corrupted program counter the system will be reset or will jump to a known location at once.(no waiting for watchdog)

2. How do I know which part of the SRAM of my STR710 is not used by the program? Can the program counter be corrupted and jump to the SRAM memory location? If so, do I also have to fill unused SRAM with reset or jump to known location instructions?

Does someone know more about the above topics?

Regards,

Jimmey

________________

Attachments :

AN1015.pdf : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HtPl&d=%2Fa%2F0X0000000aPe%2FU692EwFv5E6LJvgwcL_uH3arHxNx14ixujZgG14ku0I&asPdf=false
ezanen9
Associate II
Posted on March 03, 2006 at 11:22

Thank you RISC,

I think that my IDE is already taking care of writing 0xFFFFF to the unused flash. With my JTAG I looked in the flash during programm startup and most of the flash was written 0xFFFFF.

Is this possible? If not how does it look in C-code if I want to write this undefined exeption to the unused flash memory?

What is the undef exeption vector? Is it some kind of an interrupt service routine? If so what do I put in it? Perhaps a software reset of the system via RCCO->CLKCTL | = BIT3|BIT11; ? Or is there something better?

Perhaps you have a code example to clear things up for me. That will really help.

Thank you,

Jimmey

ezanen9
Associate II
Posted on March 10, 2006 at 08:51

Hi RISC,

I have created the undefine handler that should reset the system when the program counter jumps to unused(filled with 0xFFFFFF) memory.

Now I what to test this. I am running from SRAM(evaluation board) and I want the program counter to jump to a memory location in the flash. The flash contains only FFFFFF's.

How do I make a jump with the PC?

I tried the inline assembly in my main() function:

__asm

{

B 0x40010000

}

To jump to the flash memory. But this does not work.

Does someone know how to jump to a specific memory location in a C program. I am not known with assembly instructions.

Regards,

Jimmey