Retrieving files from eeprom??? Possible?
Rforbes
Posts: 281
Hello all!
Is it possible to read the eeprom with the propeller tool to get the spin files off of it?
For some reason, almost every object in my latest project just became corrupted and renamed. This happened a couple of weeks ago too, so I started using a new SD card. But it happened again a couple minutes ago and now my application is trashed. Well, not totally trashed because I have archives... but I just spent a considerable amount of time coding in between archives.
Also, is anyone else experiencing this? My files get a bunch of junk in them like the examples below:
This was about 1020 lines of code before this incident.
And another odd one:
This is what happened to the W5100_Indirect_Driver.
Any thoughts/advice would REALLY be appreciated here! (slinking off to weep for a few minutes. hehe)
Thanks in advance,
Robert
Is it possible to read the eeprom with the propeller tool to get the spin files off of it?
For some reason, almost every object in my latest project just became corrupted and renamed. This happened a couple of weeks ago too, so I started using a new SD card. But it happened again a couple minutes ago and now my application is trashed. Well, not totally trashed because I have archives... but I just spent a considerable amount of time coding in between archives.
Also, is anyone else experiencing this? My files get a bunch of junk in them like the examples below:
2XÔÄpPÜÅ+"a pÛ©*á;^ÀYÈ ä.Z,ÇWpÈÁ<Æ]ñ=«J÷ a¥´¸¤ÜðJ$Ðâ¼/Ø8Óæ4ne!jHz´gÎ?Á1¼bZ+Î~jN*<F7qŪ&"èÐFÙ Hn ÷ôÎñMZM<d{CzbB<bÛb tïТ´>y©3íb=;$EÆ´bZËYbhÕ2®ÿHÝgRGcÓmAlhàV!&^r%%¾<ªÚ£<¦Þ5<¼=jkwºfaå_UäUúVûýy½ÑGÃ7t×pøªr%ÌcæÄ>ÜFNìAøóVG_?è&jgDïλ¤»ÈµF¶Þ¬C>é @3çÑè6w}Ñ =8Aæ#\Ñ&'iΫV5$1QöìT×éòXíëVjûI.¯ó³]ò'b£D´Ug£]çø³-Ðg6V{Á$dPòÚ¢us²`¢Öd¥ãîK2["iôÂÈ\½í·¢8beèÚ»PdPân|ä¶*gØÜÇ^òÈó"yø°ÃìѧHÉ#§õQŸ-¤/*zºd²°GÏQGÎɳÜÖDßu
This was about 1020 lines of code before this incident.
And another odd one:
PUB Start : okay 'PUB StartINDIRECT(_databit0, _addr0, _addr1, _cs, _rd, _wr, _reset, _sen) : okay '' Initializes the I/O and registers based on parameters. '' After initilization another cog is started which is the '' cog responsible for the Indirect/parallel communication to the W5100. '' '' The W5100 Indirect/parallel cog will allow only one instance of itself '' to run and the it consumes only 1 cog. '' '' params: the seven pins of required for indirect/parallel '' _databit0 is the pin for bit0, the other pins are assumed to be sequential following this pin. '' _sen = the pin of the W5100 SPI_EN. If not used, set to -1 '' return: value of cog if started or zero if not started 'Keeps from two cogs running StopINDIRECT '------------------------------------------------------------- ' Mike Gebhard ' This guy is one long above the PASM entry point ' It points to the a HUB ram block that holds socket ' state and memory lock. '------------------------------------------------------------- statusSemId := locknew statePointer := @statusSemId 'Initialize the I/O for writing the mask data to the memory area that will be copied into a COG. 'This routine assumes Indirect/parallel connection, SPI_EN will be made output low by the ASM cog ADD0mask := |< _addr0 ADD1mask := |< _addr1 CSmask := |< _cs RDmask := |< _rd WRmask := |< _wr RESETmask := |< _reset BASEpin := _databit0 'The base pin of data byte for shifting operations DATAmask := %1111_1111 << _databit0 'Special mask setup with ei筻⼍⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼯⼍ ㍓㌵〹⁁敒污吠浩⁥汃捯湅楧敮⼍യ⼯䄠瑵潨㩲䬠慷敢慮圠*杁敹慭൮⼯唠摰瑡摥⼳㌲㈯㄰റ⼯䐠獥杩敮⁤潆㩲倠堸㈳ു⼯嘠牥楳湯⸱ര⼯⼍ 潃祰楲桧⁴挨
〲ㄱ䬠慷敢慮圠* 杁敹慭൮⼯匠敥攠摮漠⁦楦敬映牯琠牥
This is what happened to the W5100_Indirect_Driver.
Any thoughts/advice would REALLY be appreciated here! (slinking off to weep for a few minutes. hehe)
Thanks in advance,
Robert
Comments
BTW, there are no Spin files on the EEPROM, only the compiled binary.
So, the compiled binary... I have no idea what to do with that. Was worth asking about I guess.
There is a utility distributed for the Defcon badges that can read (rip) an image from the eeprom using the propellent utility. There are minimal docs included in the zip file, but it works fine. It expects a 5MHz xtal. Search for BadgeUtil.Zip, on github or elsewhere
Tubular- thanks. I'll look at that. Would it allow me to get everything back in order? I am definitely not skilled enough to look at 8 bazzillion 0's and 1's and say "oh yeah, THERE'S my junk! Lemme rename that to blahblah.spin and I'm good to go."
I was playing around with this a bit.. I wonder why would you use the PropHexWriter.exe to write the eeprom file when you can just use Propellent to do the same thing?
Peter, did you run a test that demonstrated this? For example, write the same value to every byte in a block and read it back, and then increment the value, and repeat until you detect a failure? I thought we did this when we implemented SD in propforth, but it was in development and I don't have that test. Anyway, I thought the test ran with no errors until we needed the hardware for something else. Also, the test automation we use constantly writes to EEPROM and SD, and we've never seen an error with hardware failing.
I have some old SD's I could sacrifice if you can share your torture test.
It's more likely that the card was corrupted because it hadn't updated all of the sectors that needed to be written before it lost power or was reset.
EDIT: I was working on a program to disassemble a binary file back into Spin. I never completed it, but it does generate Spin bytecode mnenomics, and they are grouped together so that you can determine where a Spin statement should be. I think I got it to a point where it did generate a few Spin statements. Read the contents from the EEPROM and save it to a file, and I can run my disassembler on it if you're interested.
Seems to me, an e-mail account would make for a great cloud storage. Maybe try that. You can keep the data transfer requirements lean enough to be viable on the blackberry. Source isn't generally that large for Propeller.
A few Kb / sec is all you need to backup to e-mail, and you get version history!