您尚未登录。

楼主 # 2023-05-06 16:58:05

耳东陈
会员
注册时间: 2023-05-06
已发帖子: 10
积分: 11

pikascript下print数据错误

RT_thread系统下,应用v5.38版本keil5进行编译,pikascript相关软件版本为:
pikascript-core==v1.12.2
PikaStdLib==v1.12.2
pikaRTThread==v1.3.2
在运行例程时发现无法正常打印数字,程序代码如下:
print('mem use max:')
mem.max()
print('mem use now:')
mem.now()
list = PikaStdData.List()
list.append(23)
list.append(45)
print(list.get(0))
print(list.get(1))
print(100)
输出结果为:
mem use max:
2.14 kB
mem use now:
1.15 kB
%ld
%ld
%ld

求指教为什么数字不能正确的输出。

离线

#1 2023-05-06 19:04:07

lyon1998
Moderator
注册时间: 2021-12-01
已发帖子: 110
积分: 55

Re: pikascript下print数据错误

因为你当前的libc的vsnprintf不是完整实现,不支持%ld的打印
解决方法是在requestments.txt里面加一个模块,pika_libc,这里面提供了一套完整的vsnprintf,添加编译就可用了,会覆盖原有的vsnprintf

离线

楼主 #2 2023-05-08 09:32:55

耳东陈
会员
注册时间: 2023-05-06
已发帖子: 10
积分: 11

Re: pikascript下print数据错误

lyon1998 说:

因为你当前的libc的vsnprintf不是完整实现,不支持%ld的打印
解决方法是在requestments.txt里面加一个模块,pika_libc,这里面提供了一套完整的vsnprintf,添加编译就可用了,会覆盖原有的vsnprintf

非常感谢,按照提示增加了pika_libc模块,编译过程中提示platform_vsnprintf重定义,后来去掉了pika_config.c中的
//int __platform_vsnprintf(char* buff, size_t size, const char* fmt, va_list args){
//    return rt_vsnprintf(buff, size, fmt, args);
//}
编译通过,经验证,数据打印正常。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn