1. 主函数不识别问题
现在我在main.py定义函数时,存在识别不到所定义函数的问题。具体问题代码如下(已经是全部代码,最小化测试):
import PikaStdLib
def blinkTest():
print("blink tick")
def statTest():
print("stat tick")
def initTimer():
print("timer started")
blinkFunc = blinkTest
statFunc = statTest
initTimerFunc = initTimer
错误现象,比如这个,报错信息为blinkTest没定义,其实都已经定义了的,具体运行报错信息如下:
pikascript-core==v1.11.8 (2022/12/03 19:05:57)
PikaStdLib==v1.11.8
===========================================
~~~/ POWERED BY \~~~
~ pikascript.com ~
~~~~~~~~~~~~~~~~~~~~
NameError: name 'blinkTest' is not defined
-> REF blinkTest (#102)
目前做过的尝试:
- 修改函数名(无效)。
- 直接调用函数,而不用对象把函数装起来(无效)。
- 调换函数定义顺序(有时有效)。
Pikascript和pikastdlib版本号都是1.11.8,运行在nano模式。
平台为ch203cbt6(128k flash 32k ram),m3核,主频72m。
补充:在Pikascript和pikastdlib版本号都为1.13.4上也测试了存在此问题。
2. Flash空间大小问题
目前我在平台为ch203cbt6(128k flash 32k ram),m3核,主频72m上对Pikascript和pikastdlib版本号都为1.13.4的源码进行编译,编译配置如下:
- 编译器版本为AC6.22.
- 不使用微库。
- PIKA_NANO_ENABLE=1。
- 工程只有串口驱动,main.py中为prinf("Hello world")的简单测试代码。
- 编译时为-Oz + LTO + One ELF Section Per Function。
在这种情况下,如果代码如下:
void App_Init(void)
{
// PikaObj * pikaMain = pikaScriptInit();
return;
}
此时编译占用的ROM为3.31kB。
如果:
void App_Init(void)
{
PikaObj * pikaMain = pikaScriptInit();
return;
}
此时ROM占用为95.20kB。
请问这个空间占用是否正常?我看到官方文档有说到nano模式下可以在64k Flash的单片机上运行,要如何配置才能将该工程控制在64k以内?
当前 Linux core 资源量化基线
语法兼容修复分支 fix/syntax-compat-issues 的 R13 提交 ed6948738 完成了 default/minimal 双配置测量:
- R12 基线:default
text=1080693 data=125784 bss=24338;minimal text=1028379 data=47180 bss=23074。
- R13 当前值:default
text=1081861 data=125784 bss=24338;minimal text=1029539 data=47180 bss=23074。
- 本轮正确性和错误可见性修复增加 default/minimal text 1168/1160 B,静态 data/bss 无增量。
- 函数参数绑定临时结构
FunctionArgsInfo 保持 88 B,没有结构体 RAM 增量。
- 这些数值来自 Linux 静态库
size -t libpikascript-core.a,不能直接替代 Cortex-M 的 AC6 -Oz + LTO 最终链接结果。
64 KiB 目标仍需在 nano 配置下用实际 ARM 工程 map 文件按保留符号和模块拆分,确认标准库、文件系统、设备模块及链接选项的贡献;当前证据只说明本轮语法修复没有增加静态 RAM,并保留约 1.1 KiB 可解释的 Flash 债务。
1. 主函数不识别问题
现在我在main.py定义函数时,存在识别不到所定义函数的问题。具体问题代码如下(已经是全部代码,最小化测试):
错误现象,比如这个,报错信息为blinkTest没定义,其实都已经定义了的,具体运行报错信息如下:
目前做过的尝试:
Pikascript和pikastdlib版本号都是1.11.8,运行在nano模式。
平台为ch203cbt6(128k flash 32k ram),m3核,主频72m。
补充:在Pikascript和pikastdlib版本号都为1.13.4上也测试了存在此问题。
2. Flash空间大小问题
目前我在平台为ch203cbt6(128k flash 32k ram),m3核,主频72m上对Pikascript和pikastdlib版本号都为1.13.4的源码进行编译,编译配置如下:
在这种情况下,如果代码如下:
此时编译占用的ROM为3.31kB。
如果:
此时ROM占用为95.20kB。
请问这个空间占用是否正常?我看到官方文档有说到nano模式下可以在64k Flash的单片机上运行,要如何配置才能将该工程控制在64k以内?
当前 Linux core 资源量化基线
语法兼容修复分支
fix/syntax-compat-issues的 R13 提交ed6948738完成了 default/minimal 双配置测量:text=1080693 data=125784 bss=24338;minimaltext=1028379 data=47180 bss=23074。text=1081861 data=125784 bss=24338;minimaltext=1029539 data=47180 bss=23074。FunctionArgsInfo保持 88 B,没有结构体 RAM 增量。size -t libpikascript-core.a,不能直接替代 Cortex-M 的 AC6-Oz + LTO最终链接结果。64 KiB 目标仍需在 nano 配置下用实际 ARM 工程 map 文件按保留符号和模块拆分,确认标准库、文件系统、设备模块及链接选项的贡献;当前证据只说明本轮语法修复没有增加静态 RAM,并保留约 1.1 KiB 可解释的 Flash 债务。