智能监测课程ARM部分

智能监测课程ARM部分

第一节课的计划任务是这样的:

  • 安装虚拟机
  • 在虚拟机中安装Ubuntu
  • 安装minicom,和开发板进行串口通信
  • 安装nfs-kernel-server,实现和开发板的网络传输文件
  • 配置Qt4.5.3的交叉编译环境
  • 写一个输出hello world的例子
  • 简单介绍ad7841.ko的用法
  • 课程圆满结束

现实比较残酷,只进行到了minicom串口通信,先假设大家都已经可以通过串口线进行和开发板的通信,有什么问题可以另外咨询,下面咱们接着这里往下进行。

注意到虚拟机中网络通信网线灯不亮,为降低难度就不用nfs挂载传输文件了,直接通过U盘在主机和开发板上拷贝文件。

1. 挂载U盘

我们通过U盘在主机和开发板之间拷贝文件。在开发板上从U盘复制文件首先要挂载U盘,将U盘插在开发板USB口上,在minicom中执行命令mount /dev/sda1 /mnt
这样U盘就挂载了/mnt文件夹下,我们可以通过ls /mnt查看U盘中的内容。

把文件从U盘拷贝到根目录下cp /mnt/filename /,查看根目录ls /就可以看到你拷贝过来的文件了。

注意:拔U盘前要执行umount /mnt,这就相当于Windows下的“安全移除U盘”。

2.配置Qt开发环境

先介绍一个要用到的命令tar,这个就是Linux下的解压缩指令,很常用,大家一定要自己查一下基本用法。这里只介绍我们用到的解压缩部分。

假设我们的压缩包叫做filename.tar.gz,我们要解压缩只要执行
tar zxvf filename.tar.gz
解压缩后的文件就放在你当前目录下,可以通过ls指令看到解压缩出来的内容。

以下内容是在虚拟机内的Linux系统中进行的

在拷贝的资料中我们可以看到两个压缩文件arm-9261.tar.gzTrolltech.tar.gz,将这两个文件分别解压缩,出现两个文件夹arm-9261Trolltech

  • arm-9261复制到用户目录下(/home/username/);
  • Trolltech文件夹复制到/usr/local/下。

如果提示"permission denied",记得给他们用户管理员权限哦(在指令前面加上sudo)。

因为大家的电脑路径和我的不一样,下面还有一丢丢环境变量需要去修改一下。

如果你上面运行正确,下面需要进到这个目录里/usr/local/Trolltech/QtEmbedded-4.5.3-arm/,怎么样?是不是很眼熟?对的,就是你刚才把压缩包解压缩后放到/usr/local/下后形成的文件夹。

打开这个目录下的setenv-arm.sh文件(vi是linux下常用的文本编辑命令,自己学习,我不管)。下面是原始文件的内容。

QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.3-arm
PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-arm/bin:$PATH
PATH=/home/yy/ctools/arm-9261/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-arm/lib:$LD_LIBRARY_PATH

我们要修改的是第三行以"PATH"开头的内容。

PATH=/home/yy/ctools/arm-9261/bin:$PATH中的路径改成实际bin文件夹实际的路径。到此Qt的环境就设置好了,在下一部分我们会用一个简单的例子介绍Qt交叉编译环境的使用。

3.让开发板跟大家打个招呼

不管大家是用Linux C还是用Qt编程,大家自己去学习。我今天只用一个最简单的Qt小程序为例介绍一下大概的过程。

#include <QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    qDebug()<<"hello world!";

    return app.exec();
}

保存成main.cpp,好了,源代码就这样就好了,下面我们来看一下如何编译。

  1. 打开一个终端,就是按Ctrl+Alt+T出来的那个小黑框框;后续的操作都在这个窗口里进行。
  2. 执行上文中提到的setenv-arm.sh。怎么执行呢?进入这个文件所在的文件夹,执行./setenv-arm.sh。这样做的目的是在这个窗口中增加文件中的环境变量,我们可以直接执行命令而不用输入命令的绝对路径。举个例子,qmake这个命令在/usr/local/Trolltech/QtEmbedded-4.5.3-arm/bin这个路径下,如果这个路径不在环境变量PATH中,直接执行qmake,他会提示not found,如果我们要执行这个命令就要输入他的绝对路径/usr/local/Trolltech/QtEmbedded-4.5.3-arm/bin。我们把这个路径加入到环境变量中就这个直接执行了。但是如果你换一个终端窗口,这个环境变量就失效了。
  3. 构建工程,进入源代码文件夹,执行qmake -project
  4. Qt编译,执行qmake
  5. 编译源文件,执行make

现在在源文件里文件夹里应该会有一个绿色的文件,为什么是绿色的呢?因为他是一个可执行文件,但他是不能在电脑上执行的。用U盘把这个文件拷贝到开发板,执行这个文件./filename,铛铛铛铛!是不是看到运行的结果了,Ctrl+C退回到命令行。

4.简单介绍ad7841.ko的用法

看原理图可以知道,AD采样采用AD7841数采芯片,SPI口通信。ad7841.ko内核模块已经放在开发板里,并启动是挂载,可以通过下面的方式读取AD值。

meter_fd = open("/dev/ads7841_spi1", O_RDWR | O_SYNC );

unsigned char command[2];
command[0]= ADS_S | ADS_S_D | ADS_POWER | ADS_CHANNEL;
read(meter_fd,&command[0],2);
memcpy(res,command,2);

这就是上节课没有完成的内容,台子搭好了,唱戏是你们的事了。

祝大家取得好成绩!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值