cancel
Showing results for 
Search instead for 
Did you mean: 

IAP of uPSD3234A

jliu
Associate II
Posted on June 21, 2004 at 21:46

IAP of uPSD3234A

6 REPLIES 6
jliu
Associate II
Posted on May 17, 2011 at 12:01

I've stuck on IAP for few weeks. I even sent the relevant code to ST support, but nothing helpful back from them. Does anyone here implemented IAP completely on uPSD2324A ever? My application programme can run from secondry correctly but give different results when running from main flash. what's wrong?

jdaniel
Associate II
Posted on May 17, 2011 at 12:01

ben007,

I have implement IAP completely on a uPSD3254A device. I allow for programming via the serial channel and also via a DPRAM interface to another processor, so I think I've got a handle on things. What problems are you running into? What do you mean it runs differently on different memory banks? I need a bit more information to even make a guess at a problem.

Regards,

Phaze426
jliu
Associate II
Posted on May 17, 2011 at 12:01

My application program originally run from the Boot Flash(csboot0-3: 0x0000-0x7FFF). To implement IAP I download it into Main Flash using the bootloader which resides in Boot Flash. Then the bootloader pass the control to the application program, and the application start to run from Main Flash. After initialization on hardware the program is just freezing some where in the middle. I've tracked the point the program stop at. There is no external condition for the program to wait at that point! If I remove this part of code the program will stuck in a different position. I used to suspect that the program is not download correctly. But the fact is that the content of Main Flash must pass CRC check before switch over the memory. I did another test, i.e. burn the program into Main Flash using JTAG, of course need to change the configuration of PSDsoft. The program show the same symptom. It's quite clear now that I can run the same program from Secondry Flash but CAN'T run from Main Flash. Any idea about this?

lwang
Associate II
Posted on May 17, 2011 at 12:01

This is just a wild guess, cold it be that the Main Flash is a little slower than the Boot Flash and your clock is too fast for the Main Flash?

What is the power supply voltage, temperature, clock rate, and the full part number of the the uPSD3234?
jdaniel
Associate II
Posted on May 17, 2011 at 12:01

ben007,

Where is your main flash mapped? After you use your IAP routines to program the main flash, you can use the JTAG programmer and a hex file and select ''verify'' and it will tell you whether it programmed successfully. That would be a good starting point to check. Another thing to note: If you have main flash mapped from say 0x8000 to 0xFFFF and you jump to there and run your application, you CANNOT set the VM register to not allow accesses to boot flash. This is because no matter what you do, the uPSD is going to vector to this area when it gets an interrupt. What you might be seeing is your processor trying to execute say a timer interrupt but unable to fetch code from the lower memory area due to the contents of the VM register.

Best Regards,

Phaze426
jliu
Associate II
Posted on May 17, 2011 at 12:01

I've solved the problem by including _psen in the equation for psel0