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é.