- 打卡等级:初来乍到
- 打卡总天数:9
- 最近打卡:2026-06-09 15:18:34
注册会员
- 积分
- 76
|
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官方的工程师指出到底哪个地方出问题了? 有哪位大神知道? 在此谢谢谢了
|
|