【北京迅为】《STM32MP157开发板嵌入式开发指南》- 第二十八章 借助U盘或TF卡拷贝程序到开发板上
iTOP-STM32MP157开发板采用ST推出的双核cortex-A7+单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板+底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐用,可满足高速信号环境下使用。共240PIN,CPU功能全部引出:底板扩展接口丰富底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口,CAMERA接口、ADC电位器、SPDIF、SDIO接口等
第二十八章 借助U盘或TF卡拷贝程序到开发板上
之前我们已经学习了怎么在ubuntu和win上互传文件,那么怎么把ubuntu或win上的程序拷贝到开发板呢,这里给大家介绍第一种方法,使用U盘或者TF 卡来完成,如果大家使用的是U盘,那么大家直接把U盘插到电脑上就可以了,如果大家使用的是TF卡,那么大家要把TF卡连接到读卡器上,然后把读卡器插到电脑,其他的操作方法都是一样的,我就不给大家做区分了,我现在把U盘插到电脑上。
步骤一:保证U盘或者TF卡的格式为FAT32格式,TF卡要用读卡器和电脑相连。
我们要检查U盘或者TF卡是不是FAT32格式的,打开我的电脑,然后找到识别出来的U盘或TF卡的盘符,点击右键,选择属性,我们可以看到文件系统FAT32 ,就是文件系统的类型,这里我们要使用FAT32格式,不能使用其他格式。
如果大家的格式不是这个,可以格式化一下,选中U盘或者TF卡,点击右键,选择格式化,文件系统这里选择默认的FAT32格式,然后点击开始。
我们格式化之前要保证U盘或TF卡里面没有重要的东西,因为格式化完了,里面的东西就全部没有了,如果大家之前的U盘或者TF卡分成了好几个区,就要先把它变成一个区然后在格式化。
我们TF卡使用读卡器和电脑相连,然后我们虚拟机VM软件识别出来的就是U盘而不是TF卡,如果你直接插TF卡,那么虚拟机软件可能会识别不出来,所以要用读卡器和电脑相连,把win上的文件或程序拷贝到TF卡。
步骤二:把U盘或者TF卡连接到VM软件上,然后使用df 命令确定挂载的路径。
我们要怎么把ubuntu上的文件拷贝到U盘或者TF 卡呢。
第一步,我们要把U盘或者TF卡连接到虚拟机VM,我们可以点击VM里虚拟机这个选项,选择可移动设备,然后选择Unknown Mass Storage ,连接(断开与主机的连接),()里是断开与主机的连接,这就是说我们选上这个选项之后,他会把我们的U盘或者TF卡与win电脑连接断开,然后把它们连接到ubuntu上,我们点一下,连接成功以后,我们ubuntu会弹出来U盘或者TF卡里面的存储的界面。如下图所示。
弹出这个界面就说明我们已经连接成功了,点击左上角的x关掉这个界面,把ubuntu里面的程序或者文件拷贝到TF卡,我们就可以使用df命令查看我们U盘或者TF卡挂载到了Ubuntu哪个目录上,我先把U盘断开,我们点击可移动设备,然后断开连接。如下图所示。
现在我的win电脑已经识别了U盘,说明他已经从虚拟机里面断开了,然后我输入 df 命令。如下图所示。接着我再把我的U盘连接到我的虚拟机软件里,连接成功之后,我再输入 df 命令。如下图所示。
我们对比下这两个 df 命令的输出结果,我们第二次输入 df 命令 ,这里多了个 /dev/sda1的设备,那么这个设备就是 U盘或者TF卡,我们第一次没有连接U盘或者TF卡的时候是没有这个设备的,如下图所示。
设备挂载到了 mounted on 这个挂载点,它挂载到了这个路径上,我们直接可以使用 cd 命令进到这个路径。如下图所示。
然后我们 ls 看下,
这个路径下面就是我们的U盘或者TF卡里面的文件列表,我们的内容都可以在这个路径下看到,我们可以来试一下,我现在再打开一个控制台,我们还是使用之前的 hello.c 作为例子,我们使用交叉编译器来编译这个 .c 文件,因为这个可执行文件是要在开发板运行的,所以我们这里要使用交叉编译器,输入
arm-none-linux-gnueabihf-gcc hello.c -o hello -static
可以看到是在arm运行的,如下图所示。
然后我们把这个可执行文件拷贝到U盘或者TF 卡上,直接使用cp命令,如下图所示。
这就是我们的路径,把它复制过来,然后我们再来看下,拷贝成功,如下图所示。
我们已经把 hello 这个可执行文件拷贝到我们的U盘上了,然后我们断开连接,我们把它连接win电脑上,我们打开看一下,这里面就多了个 hello 的可执行程序。如下图所示。
步骤三:把U盘或TF卡连接到开发板,TF卡使用读卡器和开发板连接
接着就可以把U盘或者TF卡拔下来连接到开发板上了。我们先给开发板上电,连接好超级终端,这里作者已经连接好了,然后我们启动开发板,现在把U盘从电脑上拔下来,我们等待系统启动成功。系统启动成功之后我们就可以把U盘或者TF卡连接到TF上了,如下图所示。
作者开发板的启动是最小Linux文件系统,我现在把U盘插到开发板上,插好了之后我们开发板会弹出来一些打印信息,这个是正常的。我们可以看到识别出的是sda(注意,这里大家要以实际情况为准,有可能识别出来的是sda1,sdb等等)如下图所示。
我们要怎么访问我们的U盘或者TF卡呢,我们的qt系统和最小系统是支持热插拔的在上面的信息中,可以看到该设备被挂载到了/mnt/usbdisk/sda1目录下。我们进入/mnt/usbdisk/sda1目录下,就可以看到我们U盘或者TF卡的内容,我们就可以看到 hello 这个可执行文件了,如下图所示。
我们运行下./hello,这样他就打印了 hello world! 如下图所示。
所以说这个目录下就是我们U盘的目录,我们可以把hello拷贝到开发板上,我们把它拷贝到根目录下,然后我们来运行下也是没有问题的,如下图所示。
命令解析:
挂载我们使用的是 mount 命令
命令格式:mount 设备名称 挂载点 ,
如设备的名称是 dev下边的 sda(一定要以识别出来的为准) ,我们把它挂载到 mnt 路径,也就是我们的挂载点是 mnt
mount /dev/sda /mnt
我们要怎么卸载呢,卸载使用的是 umount命令,
格式:umount 挂载点
我现在卸载掉U盘挂载的 mnt 这个挂载点,我们直接输入 umount ,后边跟我们的挂载点就可以了,我们输入umount /mnt 如下图所示
我们来总结和扩展下,使用U盘或者TF卡拷贝文件到开发板上,我们一般是在开发板没有预留出网口等其他接口的时候,我们使用这个办法来拷贝,因为比较麻烦。
第一步要保证U盘或者TF卡的格式为FAT32 格式,我们把文件或者是程序拷贝到U盘或者TF卡之后,连接到开发板上,连接好之后我们要先确定我们的开发板上有没有自动挂载,使用 df命令来查看,如果他是自动挂载的,我们直接访问挂载的路径就可以了,如果不是自动挂载的(如本章的实验不是自动挂载的),我们要使用 mount 命令手动挂载,使用mount命令我们要确定设备的名称,确定设备的名称我们可以通过打印信息来确定,如果没有打印信息,我们可以通过查看分区信息命令来确定(如cat /proc/partitions),然后我们手动挂载上之后就可以直接访问我们的挂载点也就是访问我们的U盘或者TF卡了,这个思路并不难,大家可以自己体验下。