嵌入式开发阶段总结(2018.1~2018.2)

时间:2021-07-14 19:44:33

接触嵌入式已经有两个多月了,这段时间一直在学习嵌入式开发的基础知识。知道了如何用手头的这款i.MX-6开发板,如何安装配置虚拟机,如何搭建交叉编译环境,如何把编译好的程序用adb装到开发板上……等等。

现在将开发中遇到的问题以及一些经验做一个小结:

1. 虚拟机下挂载共享文件夹:

mount -t vmhgfs .host:/ /mnt/hgfs

2. ADB使用技巧:

  • 在使用adb之前,先要开启android设备上的调试功能)
  • adb devices //查看连接的设备
  • adb push * ** //*代表要上传的文件,**代表目标文件夹
  • adb shell //进入设备调试
  • 一开始进入的时候没有读写权限,用su进入root,再用“chmod 777 *”更改目标的权限。

3. Linux下的串口编程步骤:

  • 打开串口fd = open(port, O_RDWR | O_NOCTTY | O_NDELAY);
  • 串口初始化
  • 读/写串口
  • 关闭串口close(fd);

4. 在用Eclipse进行安卓开发时,switch中出现“case expressions must be constant expressions”的报错,其解决办法是:

检查项目的Properties->Android选项中的is Library是否选中,若已经选中,则取消勾选,然后应用修改。最后clean即可。

5. 在编译针对本开发板的程序时需要注意编译命令:

arm-none-linux-gnueabi-gcc-4.4.1 -o * *.c -static
  • 一定要注意加上静态编译的命令,否则在开发板上运行时会出现“No such file or directory”的报错

6. uboot设置流程(本开发板):

  • setenv bootsystem android //设置为安卓启动
  • setenv lcdtype 9.7 //设置显示屏尺寸
  • saveenv //保存环境
  • reset //重启

7. 有一天出现了开发板与主机无法通信的状况,开发板充当的是客户端,主机充当的是服务端,测试程序是简单的socket聊天程序。

当时一直在想是不是程序出错,后来发现问题出在网络上。我主机是用的ubuntu虚拟机,其网络地址是虚拟的,开发板无法访问到,所以一直出现connection time out的情况。

当我把服务器程序移植到我原本的主机(win10)上时,再进行测试,通信成功。