I've spent almost two weeks in writing a console program in linux using C language. It can successfully program Hex file to P89C51RA2 after the chip is reset, and it also can read information out.
But my project requires me to send a command through UART to make 51 firmware jump to 0xFC00(location of the boot loader), so I can update firmware even when the firmware is running. But I failed, the firmware can successfully jump to ISP boot loader, and I can read information out using my own program, but my program failed to program HEX file into 51 chip, because the BLOCK_ERASE command always failed to get a handshake of '.'.
So I go back to win2000, the flashmagic can still correctly program 51 chip after the running firmware jump to ISP boot loader. So my firmware part is proved OK.
Then I turn to HyperTerminal to do some test. when chip enter ISP mode after reset. the BLOCK_ERASE command get the '.' very quickly(3 seconds).
but when jump to ISP boot loader, only echo the BLOCK_ERASE command and miss the '.' response.
Can someone help me ?Thanks
But my project requires me to send a command through UART to make 51 firmware jump to 0xFC00(location of the boot loader), so I can update firmware even when the firmware is running. But I failed, the firmware can successfully jump to ISP boot loader, and I can read information out using my own program, but my program failed to program HEX file into 51 chip, because the BLOCK_ERASE command always failed to get a handshake of '.'.
So I go back to win2000, the flashmagic can still correctly program 51 chip after the running firmware jump to ISP boot loader. So my firmware part is proved OK.
Then I turn to HyperTerminal to do some test. when chip enter ISP mode after reset. the BLOCK_ERASE command get the '.' very quickly(3 seconds).
but when jump to ISP boot loader, only echo the BLOCK_ERASE command and miss the '.' response.
Can someone help me ?Thanks