firmware programming ?

Discussion in 'Programmer's Corner' started by Mathematics!, Jan 7, 2012.

  1. Mathematics!

    Thread Starter Senior Member

    Jul 21, 2008
    1,022
    4
    I have over the years programmed pic, avr ,based chips to turn on led's
    and other small things...

    I had to buy a programmer that plugged into my usb or serial port on my computer and then run wires to the correct places on the solder-less breadboard.

    But I am curious sony , phoenix (bios company ) ,...etc have to programmer their firmware for their TV, CD/DVD Players , HDD controllers ,...etc

    I am wondering if their is away of buying what they have online or buying something online that would allow me to (copy/write new firmware to the device ) like HDD , cd/dvd player , tv ,...firmware

    If it is not possible to buy this sort of stuff then what places/jobs would allow you to work with programming this low level stuff.....

    Curious would it be possible to copy or flash/write to the firmware of a old nintendo system or at least
    Buy a device that allows you to copy the rom image off of a nintendo game.... sort of like rombay has on their site?
     
  2. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    6,357
    718
    You can get universal programmers that will write EPROM (most common hardware type update, EEPROM is more common since it can be done via USB stick).

    The problem is knowing what the language is/means to change anything.

    I changed the boot EPROM on my old 486 back in the 90's to display my name on power on instead of the boring memory count, for example.
     
  3. Mathematics!

    Thread Starter Senior Member

    Jul 21, 2008
    1,022
    4
    What did you use to program your name?


    And in theory if you had insider info on how to program a device /controller/eeprom firmware.
    would it be possible to buy a programmer to do it.

    For example
    lets say I had the ability to know how to program the firmware/eeprom of a sony controller chip ...etc
    Would it be possible with out working for them to get the chip and a programmer to program it or not.

    I.E is it in theory possible to get the chips and programmers for any device regardless of if you know how to program them or not?
     
  4. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    6,357
    718
    I used a hex editor.

    For anything else, you'll need the right software tools, there is no "universal set".
     
  5. Mathematics!

    Thread Starter Senior Member

    Jul 21, 2008
    1,022
    4
    I see ... how about the rest of the stuff do you have any clue about those things?

    i,e

    I know their maybe know one programmer device for everything that could possible come out (that would be impossible unless everybody used the same standards .. pin-outs ,...etc)
    but is their one device for each of the chips you can get for yourself... or must you work for a particular company for 90% of this stuff.

    Because how can you get good at this type of programming if you don't have the ability to use it.... unless you are already an employ hired for this stuff....and if you are then they would only hire you if you knew the stuff..

    chick and egg problem
    would programming avr and pic based chips qualify you with some type of electronics 4 year for a position in this stuff?
     
    Last edited: Jan 7, 2012
  6. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    6,357
    718
    Yes, you can reverse engineer/hack about anything if you put enough time and money into it.

    You learn a great deal when reverse engineering a product, assuming it is open source obviously.

    First find out what CPU is used, then look for the boot code, read and disassemble the boot code from PROM to see how a motherboard, for example, goes through the self tests at startup.

    It's harder to do with software, even newer firmware, as they load into memory then decompress and decrypt in RAM, so the actual running code isn't seen until you run a hardware debugger/supervisor on the program, which shows step by step the different RAM areas accessed, and what the values change to. After hours of this, you know how they compress and encrypt the core, then you can play with it a bit by seeing which bytes are saved in a CRC and checked more than once per run. This allows somebody to modify software to do anything they'd like, including put your name in the title. Mostly the info is simply shared with others who get bored and start looking at stuff in a machine opcode level so they can also improve hacks. The evil ones will use loopholes found to create malware, so the groups are pretty tight on enrollment, though different groups often have an ongoing friendly banter between them. Again, all of this is for educational purposes only.
     
  7. John P

    AAC Fanatic!

    Oct 14, 2008
    1,632
    224
    A mass-produced device may be set up with a processor that's intended to be programmed once at the factory and then never again. The code is basically built-in, and you can't see it or change it.

    Even if the chip can be reprogrammed, manufacturers of the chips give the buyer the ability to set a security lock, which prevents the data from being read out. With a chip like this, you'd be able to reset it and reprogram it, but you'd never be able to see what was in it originally. Note that once it's been erased, whatever it controls becomes useless until it's reprogrammed, so you'd better have new code ready to install!
     
  8. joeyd999

    AAC Fanatic!

    Jun 6, 2011
    2,675
    2,722
    Except for the most basic devices (like, perhaps a microwave oven or digital clock), I think this approach is pretty rare these days. Things change too quickly for OTP to be cost effective.

    Your cable company can update their code in your box without you even knowing about it. Your PC's BIOS can be 'flashed'. You can download and install updates for your smart phone, etc. Even your car's 'bios' can be updated to enhance performance, gas mileage, and so on. This is pretty much a rule these days.

    IMHO, of course.
     
  9. Mathematics!

    Thread Starter Senior Member

    Jul 21, 2008
    1,022
    4
    I gotcha on that stuff

    ok, what would qualify you to program firmware for this low level stuff...

    i.e tv , hdd controllers ,....etc for companies

    would an electronics degree and some practices writing stuff for avr and pic chips qualify?

    Because even for an electronics major you would really have to be working at a company that has the equipment.... or a school that has the equipment

    I would think only a handful of places would have the machines to do some of these things
    so the only way they would hire you is if you can learn on the job and was familar with the theory of how all this works / had some practice on small scale things.

    Just curious how they would select a new guy coming out of school for jobs like this?
    i.e firmware, cpu making ,...etc
     
  10. kubeek

    AAC Fanatic!

    Sep 20, 2005
    4,670
    804
    The equipment you keep talking about is irrelevant, it is allways just a device that when connected properly is able to upload your bytecode into the ROM of the device and you don´t really need to care about what is going on inside. Often it also allows you to debug the device, i.e. see almost-realtime what is going on on the ports etc., but still it is just a tool with a manual for it. Sometimes you need a scope or logic analyzer to pinpoint hw problems in communication, but that is again general knowledge and you don´t need to know the specific models until you meet them.

    The more important thing is being able to see all the ways how your program is related to all the other stuff present in the device, and also being able to proof or verify that what your program does will allways be correct. Of course general programming knowledge is a must.

    Fimware making is related to knowledge of how cpus work, but you need to know a lot more about the typical techniques used to make a cpu than what you need to know to make a firmware for it.
     
  11. Mathematics!

    Thread Starter Senior Member

    Jul 21, 2008
    1,022
    4
    so what requirements would you need to get hired for a job in firmware programming or cpu making... if you are coming fresh out of college?

    Would an electronics degree with some experience in programming chips be enough?
    i.e what would your resume need to say or be ( note how can you get experience in this stuff / work with this stuff if you have the knowledge of the theory and some small avr programmed devices for the practice)
     
  12. kubeek

    AAC Fanatic!

    Sep 20, 2005
    4,670
    804
    I think that depends completely on the company that is hiring you and what position you apply for, but also who else applies for the same job and what do they know. Because if you go there saying you know some of programming and the other guy says he already made this and that and has complete analogue knowledge too, then they will choose him.

    Basically fresh out of college I think you can get jobs like measuring and verifying other´s work, and then after some time you get to do something more creative.

    I have a bachelors degree in elctronics an IT and study for masters, and since I started looking for a job like what your talking about I got only 2 offers over a year, and one company didn´t even bother to reply and the other says the have too many replies and didn´t even have time to go through all of them, but then again this is a country with only 10mil people so there is not too many job offers. Also I want to stay in the capital city and there are many companies elswhere that offer jobs like this, but I can´t commute between a part time job and school.
     
Loading...