The newbie problem I have is that I want, at run time, to modify my USB descriptors which in the Cypress examples are in a file called dscr.a51. They are declared in a segment called CODE, and I assume this is why attempts to modify them from the code are called illegal, even though they are actually in RAM on the FX2 Can anyone give me a quick nudge towards the best way to get round this? I'm familiar with C but not in an embedded environment.
"If you want to alter constants (sic?!) on the fly, declare them xdata" While this is true in general, there may be specific requirements for these specific "constants" (USB descriptors) on this specific chip (Cypress FX2). Hence this needs checking with the data sheet and/or Cypress tech support.