@ TinyOne ,,, welcome back.
@ 1/4 mile ,thank you for the offer , i will hold off for now as the software is getting re-done as well as ported to linux and mac. Hopefully with the new changes to the script functions , it will eliviate some of the issues we are experiancing with some of the devices. Also are you having problems extracting just the full flash on RC13.5 ? if so does it extract ok on RC13 or is it the same.
@ zero11 , could you post the full output of your console as well as the script you are using.. There are too many scripts floating about for this device since TinyOne and myself were testing it. We can at least get it to the point where the flash is being detected.
some changes to the new software will be :
There is no longer any "Flash." object in the scripting environment.
From now on, you create a memory interface (which can be RAM, CFI, or SPI) with the usual parameters, and then you can use those interface objects to read or write data to it. Much like how C++ pipes work.
The benefits of this are many, first off, the software will not discriminate on the command, but on the actual interface created. You can create multiple interfaces (and multiple tabs), even from the same memory resource. This will also allow us to easily expand to other types of memory (such as I2C or SPI over JTAG for example).
The command JTAG.MemoryInit returns the index of the memory device created. So if you use that multiple times, save it to a variable so you can use that when you read/write to the device.
So now when you use a Memory.Read or Memory.Write command, you may need to specify the index of which memory device (if you have more than one).
Remember, if you don't specify the index, the index is zero. For example:
Memory(0).Write(MyData,0,BootSize)
is the same as:
Memory.Write(MyData,0,BootSize)
Now it is recommend not to use hard code index values, but rather the variables from the interface you created. First off, you may create a interface that fails (the flash was not present etc). The command to check if a interface is active is Memory.Exist(index). Example:
JTAG.MemoryAddress(0x1FC00000)
JTAG.MemoryType("CFI")
CFGFLASH = JTAG.MemoryInit()
If (Memory.Exist(CFGFLASH))
msgbox("We can now write to flash")
endif