您尚未登录。

#1 Re: PikaPython(嵌入式Python引擎) » 关于预编译器使用的问题 » 2025-07-02 15:09:05

@lyon1998
没看懂,rust-msc-latest-win10.exe没放在py所在目录,如何运行

#2 PikaPython(嵌入式Python引擎) » 请教如何使用预编译器对另一个目录的源码编译字节码 » 2025-06-27 11:16:53

onongg
回复: 0

使用rust-msc-latest-win10.exe可以对py文件编译成.o,.a。执行字节码,单片机启动快,执行效率高,但exe须在py文件目录里进行预编译。
能否使用于编译器,对其他目录进行编译字节码。
我想将于编译器放在我的工具软件目录中,
当然最好是可以集成到我的一些软件里。

#3 Re: PikaPython(嵌入式Python引擎) » 关于预编译器使用的问题 » 2025-06-24 18:06:06

@lyon1998
搭车请教一下
rust-msc-latest-win10.exe放在我软件目录,然后对其他目录的py文件打包,如何传递参数
其实就是想将rust-msc-latest-win10.exe做到我软件里(无需在py的目录里放这个exe),如何操作更好。
感谢

#4 Re: PikaPython(嵌入式Python引擎) » 事件回调里的singalCode疑惑 » 2025-06-14 16:41:51

@lyon1998
又遇到问题了,不确定是否跟这个回调有关。
FreeRTOS中,一个任务跑python虚拟机。然后创建RTOS里的软件定时器。创建了两个定时器。
定时器回调里调用pks_eventLisener_sendSignal发送信号。

python里定时器回调:
def timer_cbA(signal):
    print('timer cb_A: ',signal)
def timer_cbB(signal):
    print('timer cb_B: ',signal)

python里有while周期闪烁LED

当这两个定时器时间周期里,刚好同一时刻触发,python任务就没反应,LED停了。
后来将C代码fputc函数里的代码注释掉测试,故障依旧。

在这之前遇到过IO触发回调,python回调函数里有print,当print时刚好python里也有print,就会出现,去掉print代码又正常。

#5 Re: PikaPython(嵌入式Python引擎) » 事件回调里的singalCode疑惑 » 2025-06-11 11:17:39

@lyon1998
刚latest了,看到PIKA_TAB_ENABLE改为关闭了。strdup 仍有提示
.\objects\template.axf: Error: L6218E: Undefined symbol strdup (referred from pikaobj.o).
在getFilteredCompletions函数里还有用到,而getFilteredCompletions只有在#if PIKA_TAB_ENABLE里的代码用到。
我临时更改将这函数里的代码#if PIKA_TAB_ENABLE起来,测试OK了

文档中心里的示例按理应该有测试过,前面最初的事件回调singalCode,这些基本应用应该容易发现

#6 Re: PikaPython(嵌入式Python引擎) » 事件回调里的singalCode疑惑 » 2025-06-10 17:52:46

lyon1998 说:

这个问题我也发现了,是内部 bug,我已经修改了,需要更新一下版本:

pikascript-core==latest
PikaStdLib==latest


此外,似乎向一个PikaEventListener用两个不同EventId,regist两个EventCallback。
pika_eventListener_registEventCallback(DIN_event_listener,port,eventCallBack);
DIN_event_listener :  同一个全局PikaEventListener
port :  EventId,两次传入的为不同的值
eventCallBack :  python里传过来函数,两次不同

使用两个EventId触发pika_eventListener_sendSignal,python里触发调用的都只是其中一个函数。
先触发哪个就一直是哪个。

#7 Re: PikaPython(嵌入式Python引擎) » 事件回调里的singalCode疑惑 » 2025-06-09 23:16:55

更新前是V1.13.4,更新后是一串数字87640856fa447be1ab1f70668994b55aeeaade5e

更新后,在keil里有提示error
linking...
.\objects\template.axf: Error: L6218E: Undefined symbol strdup (referred from pikaobj.o).
.\objects\template.axf: Error: L6218E: Undefined symbol strndup (referred from pikaobj.o).
Not enough information to list load addresses in the image map.
Not enough information to list image symbols.
这个strdup和strndup好像之前没有的。

#8 PikaPython(嵌入式Python引擎) » 事件回调里的singalCode疑惑 » 2025-06-09 16:21:28

onongg
回复: 7

移植到单片机,做事件回调时参考:https://pikapython.com/doc/coreapi_event.html
单片机IO口触发,C语言通过pks_eventLisener_sendSignal发送信号。

python代码:
def callback(signal):
    print('callback,signal:',signal)

测试C代码:
PikaEventListener* g_pika_user_listener;
uint32_t EventId = 0;

void Device_DigitalInput_setCallBack(PikaObj *self, Arg* eventCallBack)
{
    if(NULL==g_pika_user_listener)
    {
        pika_eventListener_init(&g_pika_user_listener);
    }
    uint32_t eventId = EventId;
    // 将这个事件注册进监听器
    pika_eventListener_registEventCallback(g_pika_user_listener,eventId,eventCallBack);
}

void EventHandler(uint32_t code)
{
    uint32_t eventId = EventId;
    pks_eventLisener_sendSignal(g_pika_user_listener, eventId, code);
}

当有触发时调用EventHandler,发送信号,这个code变化,而python里打印的signal却一直是0。
再继续用code++测试发送,到16时有打印16,经观擦是低4bit被清0

这个里面是否还有其他配置,或者这个singalCode有范围?

#9 Re: PikaPython(嵌入式Python引擎) » 请教:ESP32下py里有循环,清看门狗问题 » 2025-05-29 10:53:35

弄ESP32需要vTaskDelay切换这个是知道的.只是不清楚PIKA里关联的需要RTOS支持,time这部分.

#10 PikaPython(嵌入式Python引擎) » 请教:ESP32下py里有循环,清看门狗问题 » 2025-05-28 17:41:52

onongg
回复: 3

在学习了解,参照https://gitee.com/Lyon1998/pikapython/blob/master/examples/Device/GPIO_CALLBCK.py
import PikaStdDevice as std
print('hello pikascript')

io = std.GPIO()
io.setPin('P4')
io.setMode('in')
io.enable()

def cb1(signal):
    print('cb1', signal)

io.setCallBack(cb1, io.SIGNAL_FALLING)

while True:
    pass

在ESP32S3下,默认有看门狗,py文件里有while循环,会触发看门狗.
是哪里有触发调度的我没去处理?

#12 Re: PikaPython(嵌入式Python引擎) » 刚下的包管理器,按流程拉取error » 2025-05-13 23:10:11

下载的pikaPackage.exe是1.78MB,运行后生成的temp目录里只有一个pikaPackage.exe,2.47MB的。
删除temp目录,重新运行还是这样

#13 PikaPython(嵌入式Python引擎) » 刚下的包管理器,按流程拉取error » 2025-05-13 17:49:03

onongg
回复: 5

参照“十分钟部署到新平台”,下载包管理器,拉取,提示错误
Updating: 2588210/2594816 (99.75%)
Downloading pikapython to /tmp/pikascript_packages...
Need about 10 min(s)
Please wait...
error decoding upload-pack response: invalid pkt-len found
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x18 pc=0x10b25d8]

goroutine 1 [running]:
github.com/go-git/go-git/v5.(*Repository).Worktree(...)
        C:/Users/lyon/go/pkg/mod/github.com/go-git/go-git/v5@v5.4.2/repository.go:1412
main.updatePikascript({0xc00001dc08, 0x18})
        C:/Users/lyon/Desktop/pikalab/files/tools/pikaPackageManager/main.go:465 +0x2f8
main.process()
        C:/Users/lyon/Desktop/pikalab/files/tools/pikaPackageManager/main.go:161 +0xcf
main.install()
        C:/Users/lyon/Desktop/pikalab/files/tools/pikaPackageManager/main.go:136 +0x2b
main.main()
        C:/Users/lyon/Desktop/pikalab/files/tools/pikaPackageManager/main.go:60 +0x2ab
Error running Cmd exit status 2

页脚

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

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