HiPi(Raspberry Pi 库)因 undef 子例程而失败 HiPi::GPIO::xs_gpio_*

问题描述 投票:0回答:1

无论我尝试使用 HiPi / HiPi::GPIO 模块控制 GPIO 引脚的什么功能 - 它总是失败

Undefined subroutine &HiPi::GPIO::xs_gpio_write called at /usr/local/lib/aarch64-linux-gnu/perl/5.36.0/HiPi/GPIO.pm line 66.

(例如)。确切的子例程取决于我调用哪个函数,它总是

xs_gpio_something

环境:

  • Raspbian(Debian 12 Bookworm Lite,非图形环境)
  • Perl 5.36.1
  • 按照其网站上的说明安装 HiPi 0.90 *
  • Raspberry Pi 4 B 型修订版 1.5,2 GB

最简单的重现代码

#!/usr/bin/env perl

use strict;
use warnings;
use v5.36;

use HiPi qw( :rpi );
use HiPi::GPIO;

my $gpio = HiPi::GPIO->new();
$gpio->set_pin_level( RPI_PIN_15, RPI_HIGH );

* HiPi 安装说明 https://hipi.znix.com/install.html

有什么想法吗?

蒂亚, 埃基

已经尝试过:

  • 用本地 Perl(使用 perlbrew)编译我自己的 HiPi,没有乐趣。
  • 使用 HiPi::GPIO::Pin 作为替代,结果相同
  • 在别处寻找答案,一无所获
perl raspberry-pi gpio hipi
1个回答
0
投票

解决方案是使用 HiPi vrsion 0.91 及更高版本来修复此问题。

HiPi作者发现罪魁祸首是/proc/cpuinfo格式的意外变化。该问题现已解决,从 HiPi 0.91 起即可修复。 XSLoader 现在可以按预期工作。谢谢,马克。

© www.soinside.com 2019 - 2024. All rights reserved.