From a220e668964e84590e5cb851b2f3cd17cf1c32a6 Mon Sep 17 00:00:00 2001 From: "MikuQ.com" Date: Mon, 30 May 2016 20:39:39 +0800 Subject: [PATCH] M2p&M3 --- test/hello4.c | 128 ++++++++++++++++++++++++++++++++++++++++++++++-- test/hello4.exe | Bin 7764 -> 9284 bytes 2 files changed, 124 insertions(+), 4 deletions(-) diff --git a/test/hello4.c b/test/hello4.c index 1d0a1f4..d3fe62e 100755 --- a/test/hello4.c +++ b/test/hello4.c @@ -7,7 +7,26 @@ #define FALSE (1==2) #endif -int wiringPiDebug = TRUE; +#define PI_MODEL_UNKNOWN 0 +#define PI_MODEL_M1 1 +#define PI_MODEL_R1 2 +#define PI_MODEL_M2 3 +#define PI_MODEL_M1p 4 +#define PI_MODEL_M3 5 +#define PI_MODEL_M2p 6 + +const char *piModelNames [7] = +{ + "Unknown", + "BPI-M1", + "BPI-R1", + "BPI-M2", + "BPI-M1+", + "BPI-M3", + "BPI-M2+", +} ; + +int MikuPiDebug = TRUE; static void piBoardRevOops (const char *why) { @@ -23,10 +42,14 @@ int isH3(void) FILE *cpuFd ; char line [120] ; char *d; + int processorCount=0; + if ((cpuFd = fopen ("/proc/cpuinfo", "r")) == NULL) piBoardRevOops ("Unable to open /proc/cpuinfo") ; while (fgets (line, 120, cpuFd) != NULL) { + if (strncmp (line, "processor", 9) == 0) + processorCount++; if (strncmp (line, "Hardware", 8) == 0) break; } @@ -37,29 +60,126 @@ int isH3(void) for (d = &line [strlen (line) - 1] ; (*d == '\n') || (*d == '\r') ; --d) *d = 0 ; - if (wiringPiDebug) + if (MikuPiDebug) printf ("piboardRev: Hardware string: %s\n", line) ; if (strstr(line,"sun8i") != NULL) { - if (wiringPiDebug) + if (processorCount==4) + { + //H3-M2P + } + if (processorCount==8) + { + //A83T-M3 + } + if (MikuPiDebug) + { printf ("Hardware:%s\n",line) ; + printf ("processorCount:%d\n",processorCount) ; + } return TRUE; } else { - if (wiringPiDebug) + if (MikuPiDebug) printf ("Hardware:%s\n",line) ; return FALSE; } } + + +void piBoardId(int *model, int *mem) +{ + FILE *cpuFd ; + char line [120] ; + char *d; + + int processorCount=0; + + if ((cpuFd = fopen ("/proc/cpuinfo", "r")) == NULL) + piBoardRevOops ("Unable to open /proc/cpuinfo") ; + while (fgets (line, 120, cpuFd) != NULL) + { + if (strncmp (line, "processor", 9) == 0) + processorCount++; + if (strncmp (line, "Hardware", 8) == 0) + break; + } + + fclose (cpuFd) ; + if (strncmp (line, "Hardware", 8) != 0) + piBoardRevOops ("No \"Hardware\" line") ; + + for (d = &line [strlen (line) - 1] ; (*d == '\n') || (*d == '\r') ; --d) + *d = 0 ; + if (MikuPiDebug) + printf ("piboardRev: Hardware string: %s\n", line) ; + + if (strstr(line,"sun8i") != NULL) + { + if (processorCount==4) + { + //H3-M2p + *model = PI_MODEL_M2p; + *mem = 1024; + } + if (processorCount==8) + { + //A83T-M3 + *model = PI_MODEL_M3; + *mem = 2048; + } + if (MikuPiDebug) + { + printf ("Hardware:%s\n",line) ; + printf ("processorCount:%d\n",processorCount) ; + } + } + else if (strstr(line,"sun7i") != NULL) + { + *model = PI_MODEL_M1; + *mem = 1024; + } + else if (strstr(line,"sun6i") != NULL) + { + *model = PI_MODEL_M2; + *mem = 1024; + } + else + { + *model = PI_MODEL_UNKNOWN; + *mem = 0; + if (MikuPiDebug) + printf ("Hardware:%s\n",line) ; + } +} + + int main() { + int model, mem; printf("Hello MikuQ.com!\n"); + piBoardId (&model, &mem); + + if (model == PI_MODEL_UNKNOWN) + { + printf ("Your Pi has an unknown model type. Please report this to\n") ; + printf (" i@mikuq.com\n") ; + printf ("with a copy of your /proc/cpuinfo if possible\n") ; + } + else + { + printf ("BananaPi Details:\n") ; + printf (" Type: %s, Memory: %dMB\n", + piModelNames [model], mem) ; + } + /* if (isH3()) printf("is H3!\n"); else printf("is not H3!\n"); + */ return 0; } \ No newline at end of file diff --git a/test/hello4.exe b/test/hello4.exe index 5179fecff3f960864bfceeb4d020451705acccff..3d74356337dbf0d76543b016030ba04ac842b6a4 100755 GIT binary patch delta 3780 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 W1Fc4GJA}VB?AU?}x=k#vE&m^uAUMAO