You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派GPIO配置驱动舵机时出现malloc内存分配错误求助

树莓派GPIO驱动舵机出现malloc内存分配错误的排查方向

问题重现

在树莓派上使用Python的RPi.GPIO库配置GPIO驱动舵机时,执行代码触发内存分配错误,代码及报错如下:

代码:

# Import libraries
import RPi.GPIO as GPIO
import time

# Set GPIO numbering mode
GPIO.setmode(GPIO.BOARD)

# Set pin 11 as an output, and set servo1 as pin 11 as PWM
GPIO.setup(11,GPIO.OUT)
servo1 = GPIO.PWM(11,50) # Note 11 is pin, 50 = 50Hz pulse

报错信息:

malloc(): invalid size (unsorted)
Aborted

已确认舵机为全新品,引脚连接无误,以下是可能的原因及解决方法:


可能的原因及解决办法

  • RPi.GPIO库版本存在bug
    旧版RPi.GPIO在PWM初始化环节可能存在内存分配bug,优先尝试更新库到最新稳定版:

    sudo pip install --upgrade RPi.GPIO
    

    若更新后问题仍存在,可替换为更稳定的gpiozero库(注意引脚编号为BCM模式,BOARD11对应BCM17):

    from gpiozero import Servo
    from time import sleep
    
    servo = Servo(17)
    servo.min()
    sleep(1)
    servo.mid()
    sleep(1)
    servo.max()
    
  • Python环境与系统架构不兼容
    若树莓派为64位系统但Python是32位版本,可能引发内存分配异常。执行以下命令检查Python架构:

    python3 -c "import platform; print(platform.architecture())"
    

    若显示32位,建议安装对应64位的Python版本,或切换到32位树莓派系统。

  • 系统内存不足或内存碎片堆积
    后台进程过多导致内存不足,或长期运行产生的内存碎片会触发这类错误。先清理内存再测试:

    sudo sync && sudo sysctl -w vm.drop_caches=3
    

    同时可以关闭一些不需要的后台服务释放资源。

  • GPIO权限不足引发底层异常
    低权限下的GPIO操作可能伪装成内存分配错误,尝试用sudo运行脚本:

    sudo python3 your_script.py
    

内容的提问来源于stack exchange,提问作者Andrew Mason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:05:05