找回密码
 立即注册
查看: 480|回复: 11

关于程序超64K相关的问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-02-26 17:50:24
已绑定手机

3

主题

7

回帖

71

积分

注册会员

积分
71
发表于 2025-2-24 15:21:46 | 显示全部楼层 |阅读模式
AI8051的手册中说程序超过64K时可将64K的EEPROM部分作为ROM使用?
我这样理解没问题吧
截图202502241516429512.jpg
然后keil的配置也按照手册说的配置了,用法和他的示例一样,
将FE0000-FE1FFF的8K作为EEPROM,然后将剩下的120K作为ROM
截图202502241519009903.jpg
,这是我的keil的配置,这样配置之后编译出来的code区大了一倍左右(这里是第一个疑惑的点),
并且我将ISP配置为8K的EEPROM,将hex导入后提示文件大小超出程序区,
超出部分移入EEPROM,这里的这个提示应该是正常的吧?





回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:479
  • 最近打卡:2025-06-28 06:38:34
已绑定手机

19

主题

3233

回帖

5343

积分

论坛元老

积分
5343
发表于 2025-2-24 15:47:19 | 显示全部楼层
现在8051u最大flash好像就64k吧,超64k的是12k128吧。所以这个应该是12k128的操作吧
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:480
  • 最近打卡:2025-06-28 00:00:59
已绑定手机

80

主题

5214

回帖

9305

积分

超级版主

DebugLab

积分
9305
发表于 2025-2-24 15:56:27 | 显示全部楼层
所有IAP的型号(用户EEPROM大小可在ISP程序设置的型号),code区和EEPROM区共用整个FLASH,code区和EEPROM区可重叠(非IAP型号不可重叠),code区可存放指令并可执行,EEPROM区不可存放指令只能存放数据(非易失性,断电不丢失),当EEPROM区和code区完全重叠时,就可以IAP(运行时升级程序)
AI8051U的FLASH就是64K,程序不能超过64K,当程序为64K时,可用EEPROM为零,此时如需要IAP,ISP软件上可以设置EEPROM为64K,如果不需要IAP,保持默认的0.5K即可,此时虽最后0.5K可IAP,但因为此处有程序,不能使用,否则程序会被意外擦除导致无法工作,如果程序小于63.5K,那么最后0.5K可正常当EEPROM使用
以上都是按扇区划分的,0.5K就是512字节一个扇区,不能再细分
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-02-26 17:50:24
已绑定手机

3

主题

7

回帖

71

积分

注册会员

积分
71
发表于 2025-2-24 19:43:02 | 显示全部楼层
so*** 发表于 2025-2-24 15:47
现在8051u最大flash好像就64k吧,超64k的是12k128吧。所以这个应该是12k128的操作吧 ...

呃,好吧,我在8051u手册里看到的,想当然了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2025-02-26 17:50:24
已绑定手机

3

主题

7

回帖

71

积分

注册会员

积分
71
发表于 2025-2-24 19:53:49 | 显示全部楼层
Debu*** 发表于 2025-2-24 15:56
所有IAP的型号(用户EEPROM大小可在ISP程序设置的型号),code区和EEPROM区共用整个FLASH,code区和EEPROM ...

我还注意到实际不到64k的程序hex导入ISP也会报超出大小的提示,然后我去网上查了是因为加密,但是我在ISP中并没用使用过加密,这是为什么

点评

这个是程序大小  详情 回复 发表于 2025-2-24 20:16
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:480
  • 最近打卡:2025-06-28 00:00:59
已绑定手机

80

主题

5214

回帖

9305

积分

超级版主

DebugLab

积分
9305
发表于 2025-2-24 20:16:58 | 显示全部楼层
lingj*** 发表于 2025-2-24 19:53
我还注意到实际不到64k的程序hex导入ISP也会报超出大小的提示,然后我去网上查了是因为加密,但是我在ISP ...


这个是程序大小

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:111
  • 最近打卡:2025-06-28 08:54:08

740

主题

1万

回帖

1万

积分

管理员

积分
17147
发表于 2025-2-25 08:34:01 | 显示全部楼层
AI8051U最大只有 64K, 后续的 AI8052U, 6/1见,256K FLASH
现在 STC32G12K128, 128K FLASH
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-06-23 10:47:05
已绑定手机

0

主题

3

回帖

10

积分

新手上路

积分
10
发表于 6 天前 | 显示全部楼层
神*** 发表于 2025-2-25 08:34
AI8051U最大只有 64K, 后续的 AI8052U, 6/1见,256K FLASH
现在 STC32G12K128, 128K FLASH

FLASH里80:0000H到FE:FFFFH这段ecode不能用吗?16M的空间只留了64K给程序……
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-06-23 10:47:05
已绑定手机

0

主题

3

回帖

10

积分

新手上路

积分
10
发表于 6 天前 | 显示全部楼层
Debu*** 发表于 2025-2-24 15:56
所有IAP的型号(用户EEPROM大小可在ISP程序设置的型号),code区和EEPROM区共用整个FLASH,code区和EEPROM ...

手册里提到FLASH的80:0000H到FE:FFFFH这段为ecode,我在keil里选择huge的rom size,并且设置extern memory的rom在ecode范围内,如图一,编译产生.map文件表明中断向量从FF0000H开始往后排列,符合8051运行要求,并且ecode区也存放了部分代码,如图2。但是用烧录软件打开hex文件,出现图3所示警告,警告地址位于RAM,我设置了ecode地址为什么RAM被覆盖了?最后,烧录完程序单片机不运行
1.png
2.png
3.png

点评

注意看芯片选型页面Flash大小,Ai8051U系列没大于64K的,所以不要搞ecode。可以测试32G12K128系列 [attachimg]105637[/attachimg]  详情 回复 发表于 6 天前
HEX保存的是FLASH中的数据,就是CODE+EEPROM,非易失性存储器,不是RAM 使用用户ISP,注意中断向量重映射问题,按照教程操作  详情 回复 发表于 6 天前
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:480
  • 最近打卡:2025-06-28 00:00:59
已绑定手机

80

主题

5214

回帖

9305

积分

超级版主

DebugLab

积分
9305
发表于 6 天前 | 显示全部楼层
8051天*** 发表于 2025-6-23 10:59
手册里提到FLASH的80:0000H到FE:FFFFH这段为ecode,我在keil里选择huge的rom size,并且设置extern memor ...

HEX保存的是FLASH中的数据,就是CODE+EEPROM,非易失性存储器,不是RAM
使用用户ISP,注意中断向量重映射问题,按照教程操作
利用STC的IAP单片机开发自己的ISP程序-STC32G8K64U系列.pdf (723.57 KB, 下载次数: 7)

DebugLab
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-29 00:06 , Processed in 0.983337 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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