1、 文档背景
在PK51 9.55,基于8051的微控制器无法运行了。在MAP文件看到堆栈不像往常一样位于DATA/IDATA区域的最后一段。堆栈在运行时覆盖数据/数据变量。

2、软硬件环境
1)、软件版本:PK51 V9.55 LX51 V4.66.64.0
2)、电脑环境:Windows 11
3)、外设硬件:无
3、操作步骤
方法一:
在C51的更新文档内具体说明了,9.56版本就已经解决了该问题,这是由于 LX51 V4.66.64.0 版本的Bug导致的,LX51 V4.66.64.0 这个链接器有时会错误地将堆栈段(典型大小为1字节)定位到数据/数据区的空隙中。这种间隙有时存在于位可寻址区域之前。
用户PK51更新至9.56及以上版本即可解决该问题。
原厂说明链接如下:
方法二:
1)、对于客户来说成型的项目想要再次切换编译器,风险较高,我们无法保证编译后的二进制文件完全相同。
方法二:客户可以下载有关LX51 V4.66.64.0的补丁包,进入网址内下载3842.zip
下载链接如下
LX51: PK51 V9.55 May Locate the Stack to Wrong Address

2)、下载完成后将该zip文件解压,内包含新版本的LX51.exe程序,将其放置在KeilC51BIN路径下,替换掉原有LX51.exe程序。

注:该补丁包后续是否可以安全解决该问题,根据原厂回复确认该事实。


首页 > 资源中心 > FAQ
