Visual Studio编译器和x86上的gcc 都把`char `定义为`signed char`, 而arm-linux-gcc 却把char 定义为`unsigned char` , 所以造成了 同样的代码在PC 和 ARM 设备上执行的结果不一样。
解决办法:添加编译参数
-fsigned-char
这样 char 就是 signed char 了。