I Was Wondering Is It To read Possable To Read From Arduino Flash Memory or EEP ROM Using PC Or Are There Any Software Powerfull Enough To Perform That Action? If There Is Some Way Please Write
I Was Wondering Is It To read Possable To Read From Arduino Flash Memory or EEP ROM Using PC
Not directly.
Are There Any Software Powerfull Enough To Perform That Action?
Powerfull? It isn't a matter of the software being weak or strong. There is no physical access to the Arduino hardware, so there can be no software access to the data that the hardware stores.
You can, if you can get your shift key working properly, send data out the serial port on the PC. The Arduino can read that serial data.
If the serial data that the PC sends is in the form of a request for data, and the Arduino is programmed to respond to such requests, the Arduino can write data to the serial port that is an appropriate response to the input request.
The PC can then read the reply and do whatever it wants to.
Avrdude would happily read the flash wouldn't it?
This may be yet-another-post where the OP lost his code somehow (dude, set up a backup system already - this time it was your code, next time it could be your thesis, your tax records when you are having an audit, your old digital photos - ie, something you can NEVER get back - back it up, already!) and now wants to somehow retrieve it from magic-land.
Or it is someone who wants to retrieve said code from an ATMega device that isn't his code...
The short of the matter is, while this is possible, all you will get out is a hex copy, which can be turned into an assembly version; you will not be able to turn that assembly into anything worthwhile as far as C code is concerned (aka, a reverse compiler). Anything you did get out would look very strange, convoluted, and nothing at all (most likely) like what the original coder of the device used. In fact, you would probably get something that would look like obfuscated and compressed javascript (only worse)...
Give it up - cry in your beer - and rewrite the code; consider it an object lesson in the hazards of computing, set up a backup system to keep this from happening in the future (note - even backup systems can fail - this happened to me recently!), and use it as another chance to rewrite the code better...
cr0sh Thnx but dude ;D i havent lost my code i wanted to be sure that my written software in arduino would be safe from being copyed
There are fuse settings that can be used to prevent reading the hex code back from the Arduino. I'm not sure that they are necessary, since there is so little you can do with the hex data you get off the chip, anyway.
I'm not sure that they are necessary, since there is so little you can do with the hex data you get off the chip, anyway.
Well, you can just clone the hardware, burn another arduino and get an exact copy of the original.
But, after all, Arduino is an open source project, both hardware and software, wouldn't be a bit unethical get money from a derivative project while closing sources? I mean, you could make money and keep it open as the creators of Arduino do.
Just 2 cents.
cr0sh Thnx but dude i havent lost my code i wanted to be sure that my written software in arduino would be safe from being copyed
Alright - sorry I jumped to that conclusion, but it seems like a common thing people ask. As mentioned, you can set fuses and such (to prevent the code from being copied), but it takes some skill (I've never tried it) to pull it off the ATMega using tools like avrdude (or similar), and you would end up with the hex file (which in theory could be dumped to another ATMega or disassembled).
Even setting the fuses, though, ultimately does no good - you could use a "high-voltage" programmer to reset those fuses, and you're back at square one. If it was really valuable, and you had some way to "fix" it so that even that wasn't possible (let's just say for sake of argument), someone with the right tools, skills, and motivation could, in theory, do some destructive reverse-engineering to remove the package case material down to the die and examine that directly to determine the bit-patterns in the memory (very difficult, needs really special skills, but there are people out there who do it - some just for fun! Sparkfun actually had a guy they knew do it to find that some 328s they had ordered were slugs).
You have to ask yourself if you believe your code is that unique or difficult to figure out; for instance, could you give the final device to someone on this forum, and could they - by simply looking at the functionality, come up with a workalike? If so, it is probably not worth doing much, if anything. Set the fuses and forget it, or opensource the code.