智能监测课程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);

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

祝大家取得好成绩!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值