关于上位机修改单片机HEX文件内容问题,请高手指点方向。
现在想通过上位机通过读取HEX文件,修改该HEX文件源程序内容的一个数组值或一个常量值,然后再生产一个新的HEX文件,最后写入单片机中执行,请问这样方法是否正确(例如有修改IP地址的需要等)。
1、若方法可以,我将通过什么方法得知数组所在的地址?
2、ADS1.2编译器中是否可以制定地址存放数组或变量(片内存储方式)?
[解决办法]
可以尝试用汇编写启动代码,固定要修改的数据到最前面的几个字节处,再研究下HEX文件格式
[解决办法]
可以指定地址的
[解决办法]
你是没有源程序,只有HEX文件?
[解决办法]
如果你有源程序
1. 可以建立通信协议
2. 更简单的方法是下位机将可能修改的数据放在片内的dataflash中,下位机每次开机读取一次dataflash,上位机修改后重启下下位机就可以
[解决办法]
修改HEX文件操作我知道,怎么定位,你有源程序可能好办,在源程序仿真的时候找到这个IP的地址,然后去HEX文件中修改。
修改HEX文件可以使用STC-ISP.EXE软件修改,打开HEX文件后在程序文件的代码区就可以修改,这里可以看都地址的,然后保存就可以了。
可能其他的软件也可以这么办,我只是提供一个可能行的通的思路。
[解决办法]
这个一定要先把HEX搞成人可读的代码,至少是汇编文件。
如果你确定你要修改的数据就这几个,可以全局找出所有相类似的内容
然后,根据存储结构来判定大概是哪个,修改后,下到芯片里面去试
实在不行,只能一个一个的试,肯定有能试完的那一天