找回密码
 立即注册
楼主: 一轮明月

用8A8K64D4编译总说数据超出

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-06-16 08:41:37
已绑定手机

67

主题

1915

回帖

4301

积分

荣誉版主

无情的代码机器

积分
4301
发表于 2025-6-5 15:53:03 | 显示全部楼层
21cns*** 发表于 2025-6-5 15:15
C:\TEST\8a8k64d4>dir
驱动器 C 中的卷是 System
卷的序列号是 8C87-78DE

没有编译register_definitions.c
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-06-16 08:41:37
已绑定手机

67

主题

1915

回帖

4301

积分

荣誉版主

无情的代码机器

积分
4301
发表于 2025-6-5 16:03:41 | 显示全部楼层
4631755*** 发表于 2025-6-5 14:51
2)KEIL C51中,程序中我设置了sp=0x80,为什么.M51文件中,栈指针仍然指向0X30

问题1:可以切换寄存器组,但是这些地址还是要留给编译器使用。
问题2:给SP赋值时已经运行在main函数里了,那运行main函数前运行在哪呢~,用C不建议搞这些操作了。

使用C编程,一般不要再操作寄存器组和栈指针了。
可以看下Ai8051U C的例程包。
除非一些xxOS里需要设置保护啥的,一般应用不需要这两操作。
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:67
  • 最近打卡:2025-06-16 08:30:05
已绑定手机

17

主题

472

回帖

1341

积分

金牌会员

积分
1341
发表于 2025-6-5 16:43:22 | 显示全部楼层
8K中大部分是XDATA,IDATA只有256,换编译模式,或变量定义在XDATA空间
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-06-16 09:44:50
已绑定手机

14

主题

1312

回帖

3298

积分

论坛元老

积分
3298
发表于 2025-6-5 17:31:51 | 显示全部楼层
erci*** 发表于 2025-6-5 15:53
没有编译register_definitions.c

C:\TEST\8A8K>D:\Software\单片机\编译\C51_V961\c51 main.c

C51 COMPILER V9.60.7.0 - SN: K1DZC-EN58KC
COPYRIGHT Copyright (C) 2012 - 2022 ARM Limited or its Affiliates. All rights reserved.

C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

C:\TEST\8A8K>D:\Software\单片机\编译\C51_V961\c51 register_definitions.c

C51 COMPILER V9.60.7.0 - SN: K1DZC-EN58KC
COPYRIGHT Copyright (C) 2012 - 2022 ARM Limited or its Affiliates. All rights reserved.

C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

C:\TEST\8A8K>D:\Software\单片机\编译\C51_V961\bl51 main.obj;register_definitions.obj

BL51 BANKED LINKER/LOCATER V6.22.4.0 - SN: K1DZC-EN58KC
COPYRIGHT (C) 1987-2021, Arm Limited or its Affiliates. All rights reserved.

Program Size: data=9.0 xdata=0 code=19
LINK/LOCATE RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)

C:\TEST\8A8K>D:\Software\单片机\编译\C51_V961\oh51 main

OBJECT TO HEX FILE CONVERTER OH51 V2.7.0.0
COPYRIGHT KEIL ELEKTRONIK GmbH 1991 - 2001

GENERATING INTEL HEX FILE: main.hex

OBJECT TO HEX CONVERSION COMPLETED.

C:\TEST\8A8K>dir
驱动器 C 中的卷是 System
卷的序列号是 8C87-78DE

C:\TEST\8A8K 的目录

2025/06/05  17:28    <DIR>          .
2025/06/05  17:24    <DIR>          ..
2025/06/05  17:28               333 MAIN
2025/06/05  11:27               962 main.c
2025/06/05  17:28                90 main.hex
2025/06/05  17:28             2,081 main.LST
2025/06/05  17:28             1,226 MAIN.M51
2025/06/05  17:28               256 main.OBJ
2025/06/04  23:59            11,512 register_definitions.c
2025/06/05  11:25             9,195 register_definitions.H
2025/06/05  17:28            23,617 register_definitions.LST
2025/06/05  17:28             6,916 register_definitions.OBJ
2025/06/04  23:44           109,887 STC8Gxxx.h
              12 个文件        166,396 字节
               2 个目录 124,144,861,184 可用字节



加上register_definitions.c,正常编译。

点评

bl51 多obj编译,分隔要用 逗号  详情 回复 发表于 2025-6-5 17:43
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-06-16 08:41:37
已绑定手机

67

主题

1915

回帖

4301

积分

荣誉版主

无情的代码机器

积分
4301
发表于 2025-6-5 17:43:42 | 显示全部楼层
21cns*** 发表于 2025-6-5 17:31
C:\TEST\8A8K>D:\Software\单片机\编译\C51_V961\c51 main.c

C51 COMPILER V9.60.7.0 - SN: K1DZC-EN58K ...

bl51 多obj编译,分隔要用 逗号
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:498
  • 最近打卡:2025-06-16 09:44:50
已绑定手机

14

主题

1312

回帖

3298

积分

论坛元老

积分
3298
发表于 2025-6-5 17:57:44 | 显示全部楼层
erci*** 发表于 2025-6-5 17:43
bl51 多obj编译,分隔要用 逗号

呀,大意了。
改成逗号就一样报错。我还纳闷呢
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-16 16:23 , Processed in 0.252374 second(s), 82 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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