lyzhsf 发表于 2023-11-3 14:35:03

stc8h8k64u keil编译,代码空间不够,编译失败

做项目过程中遇到一个编译问题,用的MCU:stc8h8k64u,使用keil5编译,出现代码空间不够,编译失败,如下图所示:




编译后的代码量如下图所示:



知道一种解决办法是修改编译选项,Memory Model,默认是第一个选项small,改成后面两个就可以编译通过;但是不知道这种方法是否是最优解决办法,
所以请教下大家这个问题:这种解决方法是否最优,是否有更好的办法。


gentleman 发表于 2023-11-3 14:51:47

大数组 可以在定义时 直接放在xdata 区域

lyzhsf 发表于 2023-11-3 15:20:17

gentleman 发表于 2023-11-3 14:51
大数组 可以在定义时 直接放在xdata 区域

还没有加大数组啊,只有一个4*4的数组

lyzhsf 发表于 2023-11-3 15:21:23

lyzhsf 发表于 2023-11-3 15:20
还没有加大数组啊,只有一个4*4的数组

4*4数组加code属性后,data减少,但还是超出的

乘风飞扬 发表于 2023-11-3 15:31:51

lyzhsf 发表于 2023-11-3 15:21
4*4数组加code属性后,data减少,但还是超出的默认 data 空间超过128字节就会报错



将一些数组,不常用的变量,加 xdata 关键字,定义到 xdata 空间
例如: unsigned char xdata buf;

lyzhsf 发表于 2023-11-3 15:41:07

乘风飞扬 发表于 2023-11-3 15:31
默认 data 空间超过128字节就会报错




基本都是单个的变量,也只能加xdata关键字?

ahong 发表于 2023-11-3 16:24:06

这个勾上就可以了吧



lyzhsf 发表于 2023-11-3 16:37:28

ahong 发表于 2023-11-3 16:24
这个勾上就可以了吧

貌似不行哦,一样的效果
页: [1]
查看完整版本: stc8h8k64u keil编译,代码空间不够,编译失败