raspberry pcduino black beaglebone arm raspberry-pi beagleboneblack iot

arm - pcduino - raspberry pi 3



Cómo identificar tablero ARM programáticamente (3)

Puede leer el registro MIDR que proporcionará implementador, variante, architecutre, partnum y revisión que podría ayudar a distinguir las placas en las que está ejecutando su código.

Puede obtener ese registro usando MRC p15, 0, <Rt>, c0, c0, 0

Referencia: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0500f/BABFEABI.html

¿Hay alguna manera de identificar programáticamente qué tablero de brazo estoy ejecutando? O frambuesa pi, cubieboard o beagleboneblack? Estos 3 tipos son suficientes para diferenciar. Esperaba usar cat /sys/devices/virtual/dmi/id/sys_vendor pero esto no está disponible en los puertos ARM de debian: - /


En mi tablero, en / proc / cpuinfo, tengo

Processor : ARMv7 Processor rev 7 (v7l) processor : 0 BogoMIPS : 1562.98 processor : 1 BogoMIPS : 1560.01 Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x2 CPU part : 0xc09 CPU revision : 7 Hardware : FC7100 Workbench Revision : 6008

La parte interesante es el campo Hardware , que es el nombre de mi placa. Este campo se basa en la identificación de la máquina, del archivo arch / arm / tools / mach-type linux. Sin embargo, este enfoque puede estar desactualizado ahora, ya que ahora usamos árboles de dispositivos en lugar de paquetes de soporte de placas. Es posible que deba buscar la documentación de Device Tree para obtener la información que necesita.


Yo escribo en Python.
Miro / proc / cpuinfo y analizo el campo Hardware.
BCM2708 es un Pi1 (A, B, A +, B +)
BCM2709 es un Pi2 (B +)
BCM2835 es un Pi3

Para Beaglebone puedes:

import platform p = platform.platform()

Si alguno de estos es cierto, tienes un Beaglebone Black.

if p.lower().find(''arm7l-with-debian'') > -1 if p.lower().find(''arm7l-with-ubuntu'') > -1 if p.lower().find(''arm7l-with-glibc2.4'') > -1 if p.lower().find(''arm7l-with-arch'') > -1

Si no es RPi y no Beaglebone, entonces tal vez sea el otro.

Esto fue extraído del trabajo realizado por Tony DiCola en Adafruit, pero no recuerdo en qué proyecto lo encontré.