We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
My company is using Philips 8031 chip. The new batch of chips we received, every one of them keeps reseting itself when when it come accross the PRINTF statement !!! The c-code works fine with the old 8031 chip !! Does anybody in this forum experience such problem? The PRINTF statement we are using is to send out a stream of characters to the RS232 port. It is a SOFTWARE routine, we are not used the built-in UART, could this be the problem? however, I was very confused why the old chip works !!! Thanks in advance, any helps or suggestions are veru appreciated.
"Finally I found I need initialize some internal ram to zero,if I clear these location to zero, the new chip works." This is precisely why it is so important to ensure that all variables are initialised [1] before they are used! "I think the problem is that new chip won't clear internal RAM by default when it powers on and old one does that." Did the datasheet for the old processor actually say that it cleared internal RAM? Usually, the content of RAM is undefined at powerup - that means that it could be absolutely anything, and it does not have to be consistent, or repeatable, or predictable, or anything! It could very well change between batches of chips, or the phase of the moon! You were probably just lucky that it worked with the old chips (the RAM just happened to powerup in a favourable state for you!) [1] By "initialised" here, I just mean "specifically assigned some value" - whether that's done in your startup, or as part of your main code.
Hi, You are absolutely right,we should initialize any variables before use them. In fact, I was extremely lucky, because the old code with init. problem worked well on Intel and Philips chips for years but did not work with Winbond chips at all. Xiao J