I'm not having much success in finding an 8031 POST (power on self test) online. I'd be especially interested in tests from a microprocessor manufacturer. For example, are there published tests to verify that the 128 bytes of indirect memory are reliable? Are there simple tests for the SFRs? Thanks for your comments. Robert Berkey
I like the idea of being very thorough with this testing. I suppose that for the SFR's, I could go through each of them and wiggle each bit. I wonder why such routines aren't published, though. It seems like every microprocessor would need one. I remember that when the IBM PC was first introduced, I felt that the addition of a POST in their BIOS was an advance in microcomputer technology. That leads to the question, "has your test ever reported a bad processor?"
Back in the late 70's and early 80's it was a requirement for any kind of Military hardware that used micro's to perform a complete self test, not just of the RAM and EPROM but of the processor as well. Chip vendors supplied the micro test as part of a requested doc package for military users. The Intel 8080 version performed a test on all machine codes - if it passed you exited only one way, otherwise you wound up in various end points. I think as time went on, chip processes became so much better that this kind of test fell by the wayside ( I don't know if this is still a requirement by the military). For the 8051 and its variants it might not be worth it except for cases where life and limb is at stake (medical equipment and the like). There have been some concerns expressed about the latest technology parts, because the material thickness and volume are so small that stray alpha particles are becoming dangerous again. You might want to visit http://www.embedded.com for a recent article on this subject.
The destructive RAM test has discovered problems. 80C52 software that includes the Borer RAM test and a number of other self-test features has been incorporated into some 200,000 production units. The production contractors are not too analytical about why a unit fails, so I don't have exact figues, but it is clear that processor failures are rare. Probably between one in 1,000 and and one in 10,000. The self-test features generally ensure that units with faulty processors do not leave the factory. Only one service return indicating a failure to pass the destructive RAM test has ever been brought to my attention. The software includes other self-test features inlcuding testing SFRs on the lines that you suggest. I am not aware of this test ever detecting a fault. However, I think it is still worth doing as the effects of such faults may be very subtle. Although faults have been rare, it is important the remember that components are changing all the time. Your software may be put into processors made by different companies at different factories and even into processors that have a completely different construction. As fabrication techniques change, failure rates could change suddenly without warning. I feel that all embeded systems should include a power-on RAM and ROM test as a minimum and that a watchdog of some sort is a very good idea. Depending on the application, you might also consider a continuous ROM test and a non-destructive RAM test.