Comake Pi D2开发板在EMMC模式下,是无法长久保存程序的。起初没太在意,在完成程序录入后,就关机作其它事情,等再次开机才发现程序竟然消失了。
毕竟在Linux环境下,多是采用VI编辑器,使用它输入程序是件比较繁琐的事,不如在windows环境下来得顺畅。
那该如何解决呢?
经探索,可利用tty设备的接收性能来接收外部的程序文件。
以生成脚本文件bjdj.sh为例,所使用的指令为:
cat > /dev/tty << EOF > bjdj.sh
其中,“EOF”是接收结束符。

图1 发送接收指令
设待发送的脚本内容为:
#!/bin/sh
if test -d /sys/class/gpio/gpio27 ;then
echo "alread export !"
else
echo 27 > /sys/class/gpio/export
fi
则发送过程见图2所示,在完成发送后,可使用指令来查看,其指令为:
cat bjdj.sh

图2 完成程序发送

图3 查看程序内容
由此可知,脚本程序已被传送到开发板,它与原程序的差异在于每行会多出一个空行,但这不影响程序的运行。
此时,发送指令“source bjdj.sh”,执行见图4所示。

图4 测试1
若再次运行,则测试结果见图5所示,说明运行正确。因为首次运行是创建设备GPIO27,而再次运行由于已生成设备GPIO27,故给出“alread export !”的提示。

图5 测试2
至此,解决了程序存入开发板的问题,在完成程序测试后,为以后能进行使用,可使用cat指令来显示程序,然后将显示内容加以复制并转存到外部文件中,这样就实现了一个将外部程序存入开发板,再由开发板转存外部文件的闭环,以对冲程序无法长久保存的问题。

图6 程序转存
此外,在Comake Pi D2的LINUX环境下,使用vi编辑器要删除空白行是件麻烦的事,为此可用图7所示的程序来去除脚本程序bjdj.sh中的空白行。

图7 程序内容
