AC米兰·(中文)官方网站-2026 World Cup

【Arm】PK51-9.55版本堆栈特殊处理的Bug补丁

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及以上版本即可解决该问题。


原厂说明链接如下:

Keil C51 Release Notes


方法二:

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程序。


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



XML 地图