找回密码
 立即注册
查看: 666|回复: 5

STC8 keill编译memor配置

[复制链接]

该用户从未签到

9

主题

13

回帖

93

积分

注册会员

积分
93
发表于 2023-5-14 16:27:12 | 显示全部楼层 |阅读模式
使用的是STC8G1K08和STC8G1K17 20pin系列芯片,默认例程编译都是用的small选项,编译会出现错误
*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   DATA   
    SEGMENT: ?DT?MOT600
    LENGTH:  0019H
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
    SYMBOL:  TIMES
    SEGMENT: ?DT?MOT600
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
    SYMBOL:  TOGGLE
    SEGMENT: ?DT?MOT600
我看规格书上写的是有1k 扩展ram,这个应该怎么用
1.需要所有变量都用xdata来修饰声明吗,还是说只用在keil编译选择large xdata选项就可以了?
2.其他地方需要改吗,看有网友说还要修改STARTUP.A51中的参数:PDATASTART和PDATALEN和keil中的Options选项/BL51的内容?
微信截图_20230514161342.png
回复 送花

使用道具 举报

该用户从未签到

46

主题

3159

回帖

7131

积分

超级版主

积分
7131
发表于 2023-5-14 19:58:47 | 显示全部楼层
一般建议使用small模式,有数组之类的就定义到xdata,当然单个变量也可以定义到xdata,默认的就在data,编译后代码紧凑。
unsigned char xdata tmp[100];
unsigned long xdata abc;
回复 支持 反对 送花

使用道具 举报

该用户从未签到

9

主题

13

回帖

93

积分

注册会员

积分
93
 楼主| 发表于 2023-5-14 20:42:31 | 显示全部楼层
梁工 发表于 2023-5-14 19:58
一般建议使用small模式,有数组之类的就定义到xdata,当然单个变量也可以定义到xdata,默认的就在data,编 ...

编译选项还用small,其他的都不用改只是把数组,变量加xdata来修饰对吧
回复 支持 反对 送花

使用道具 举报

该用户从未签到

562

主题

9800

回帖

1万

积分

管理员

积分
14359
发表于 2023-5-14 21:01:50 | 显示全部楼层
STC8G1K08, 速度足够快,你烧录时选择30MHz以上 !
xdata 是1024,你编译时就选 Large 编译
回复 支持 反对 送花

使用道具 举报

该用户从未签到

9

主题

13

回帖

93

积分

注册会员

积分
93
 楼主| 发表于 2023-5-15 11:56:30 | 显示全部楼层
神农鼎 发表于 2023-5-14 21:01
STC8G1K08, 速度足够快,你烧录时选择30MHz以上 !
xdata 是1024,你编译时就选 Large 编译
...

只用编译选择Large 编译,其他都不需要改,不用再用xdata来修饰了吗?
回复 支持 反对 送花

使用道具 举报

该用户从未签到

562

主题

9800

回帖

1万

积分

管理员

积分
14359
发表于 2023-5-15 14:57:45 | 显示全部楼层
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-6-8 12:54 , Processed in 0.062096 second(s), 52 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表