找回密码
 立即注册
查看: 102|回复: 1

求救提问,关于STC32G12k128芯片 FreeRTOS 如何编译超过64K代码的问题,OLED无法运行

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2026-06-09 15:18:34

2

主题

16

回帖

76

积分

注册会员

积分
76
发表于 2026-6-8 12:53:25 | 显示全部楼层 |阅读模式
a)   单个文件的代码大小必须小余64K。若大于或等于64K,则需要将代码分割为多个代码文件
b)   单个代码数据表格的数据量必须小余64K。若大于或等于64K,则需要将数据表格分割为多个数据表格
c)   使用code关键字定义的数据表格,Keil会强制分配到FF:0000H~FF:FFFFH区域(例如:char code CODE_STR[] ="64K地址范围内数\xfd据表格定义演示";)若需要定义超64K地址范围的数据表格,则需要使用ecode关键字,(例如:char ecode ECODE_STR[] = "超64K地址范围内数\xfd据表格定义演示";)
问题1:
我想问一下, 这里如何判定一个单文件的代码 是否大于 64K ? 是肉眼观察比如 char ecode HUGE_STR1[63*1024UL] ,  char ecode HUGE_STR2[45*1024UL] 还是 看哪个文件的后缀(是编译后Objects内的 .obj 是否大于 64K)?
问题2:
STC32G12K128 作为主控, 搭配FreeRTOS, 当KEIL编译出的代码总量code小于64K时, 将 configUSE_ROMHUGE = 0时, 且KEIL内的 Code Rom Size 设置为 Large, 程序烧录后, 能正常显示效果
但是后期添加了OLED相关程序(oled.c很大,且搭配了 oledfont.c 大量的字符编码和图画数组. 且我将code 数组 全部改写了 ecode  数组 ), 将 configUSE_ROMHUGE = 1时, 且KEIL内的 Code Rom Size 设置为 Huge, ROM 设置了程序空间从地址 0xFE0400 开始,大小为127K(0x1FC00),  STC-ISP EEPROM也配合进行了上述地址/大小设置, 但是程序烧录后, 却不能正常显示效果, 到底是出了什么问题? 有没有STC官方的工程师指出到底哪个地方出问题了? 有哪位大神知道? 在此谢谢谢了


objects1.png
objects2.png
objects3.png
objects4.png
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:586
  • 最近打卡:2026-07-04 12:34:03
已绑定手机

112

主题

4958

回帖

1万

积分

荣誉版主

无情的代码机器

积分
10758
发表于 2026-6-9 17:00:32 | 显示全部楼层
一天过去了还是没上传工程
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-5 15:42 , Processed in 0.075284 second(s), 49 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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