"Device does not support operation"

Started by WP, March 11, 2010, 11:11:21 AM

Previous topic - Next topic

WP

I've successfully used the USP-ICP several times to program protypes projects for the P89LPC931.

I started a new project and successfully programed the part.  Then I added some code, Keil reassembled w/o errors or warnings, and tried to reprogram the flash at which time a "Device does not support operation" window popped-up.  The status bar at the bottom of the Flash Magic UI typically shows programming stopping at 0x0740, although I have seen some other addresses.

I changed the micro - same thing.  Then I successfully reprogrammed the flash with some previous, larger hex files.  The code also runs fine on a EMP900 emulator.

I commented-out the part of the code that changed since the last flash - didn't help although I'm not 100% positive I didn't miss something.

UART timing isn't an issue.

I posted at the teamfdi website an and a software engineer there suggested I post here thinking there may be a Flash Magic software issue.  I have the latest firmware in my USB-ICP (downloaded yesterday) and Flash Magic 5.61.

I need to ship my prototype, but can't program the part.



Help please!


Andy Ayre

Please generate a debug file while reproducing the problem and send it to us at support @ esacademy dot com. Reference this topic.

Andy
Embedded Systems Academy, Inc.
support at esacademy dot com

Andy Ayre

It is always important to provide the complete error message to get fast and accurate help. In this case the complete message is:

  Device does not support operation. (program additional security bits)

An examination of your hex file shows that it contains a byte for location FFF3H, which is the additional security bits value. The LPC931 does not support this, so the error is generated.

Therefore change your startup assembler code so it doesn't include that byte.

Andy
Embedded Systems Academy, Inc.
support at esacademy dot com

WP

Andy:

I never had an a reason to parse an Intel hex file until now.
   
The Flash Magic status bar showed an address of 0x740 when the error message popped-up.  I did look at the code around that block of addresses, but didn't notice anything wrong.

My "Project Workspace" window in my Keil µVision was closed, so I didn't relize the start file was part of the assembly process.  I must have forgot to remove it when creating the project (I don't use it for assembly language programs) which explains why I didn't have problems programming other projects.  I'm surprised that the list file didn't show anything at address 0xFFF0-0xFFFF.

Anyway, after removing the start file, I was able to program the chip.

Thanks for your help!

rbickle

Andy,

Having the same problem. I've been using the earlier version of Flash Magic for years, but now get the error.
My hex file does contain data at FFF0 and FFF8 for the ucfg bytes and security bytes as generated by the Keil startup code.
I though that flash magic would detect data at these locations and program the appropriate bytes using ISP.
Is that no longer the case?

Thanks,
Rick

Andy Ayre

The error is precisely because Flash Magic is trying to program the values starting at FFF0H, however not all devices support all settings. Check the user manual from NXP for your device for details.

Edit the Keil startup code to match the functionality of the device you are using.

Andy
Embedded Systems Academy, Inc.
support at esacademy dot com

rbickle

Andy,

I have re-reviewed the registers of the P89LPC920 and as far as I can see, no bits of these registers are being set that the device does not support.
The user's manual for this chip does not show a register for UCFG2 and the Keil startup code sets it to zero.
Would this cause Flash Magic to generate an error?

Keil startup code sample:

_UCFG1 EQU FOSC OR (WDSE SHL 4) OR (BOE SHL 5) OR (RPE SHL 6) OR (WDTE SHL 7)
_UCFG2 EQU 0

                CSEG    AT      0FFF0H
                DB      _UCFG1          ; place UCFG Bytes in hex file
                DB      _UCFG2          ; reserved for future use
                DB      BOOTVEC
                DB      BOOTSTAT
                CSEG    AT      0FFF8H               
                DB      SEC0
                DB      SEC1
                DB      SEC2
                DB      SEC3
                DB      SEC4
                DB      SEC5
                DB      SEC6
                DB      SEC7

Thanks,
Rick

Andy Ayre

Yes, I believe attempting to program the value of zero will cause the error. One person would think this is unnecessary, while altering that behavior would cause another person to complain that Flash Magic is quietly hiding things.

My suggestion is to remove _UCFG2, BOOTVEC and BOOTSTAT from the CSEG at FFF0H. Flash Magic will not program the boot vector from this file as it is too dangerous and the status byte is automatically cleared after programming a hex file anyway.

Andy
Embedded Systems Academy, Inc.
support at esacademy dot com