找到了内存溢出的问题，在connection的实现代码中，变量char* cmd在使用之后没有释放，调用几次之后便会消耗掉所有的内存，从而导致arduino重启。