【嵌入式】飞凌嵌入式ELF1开发板 初体验 | 嵌入式Linux开发

文章目录

  • 前言
  • 一、开机初体验
    • 1.1、开机
    • 1.2、连接WIFI
  • 二、基本功能测试
    • 2.1、主板命令行测试
      • 2.1.1、TF卡热插拔测试
      • 2.1.2、LED命令行测试
      • 2.1.3、数据库测试
  • 三、基础编程实战
    • 3.1、交叉编译链部署
    • 3.2、温湿度传感器程序
    • 3.3、看门狗程序
    • 3.4、六轴传感器程序
    • 3.5、MQTT物联网
  • bug记录
    • 波特率设置错误,导致putty界面异常


前言

参考:飞凌嵌入式Elfboard ELF1开发板快速启动手册
chatgpt
本节内容比较简单,第一次用到6X的板子,本节内容主要是把操作手册上比较基础的内容重新跟着做了一遍。

一、开机初体验

1.1、开机

首先先拿USB-typeC连到电脑上看下串口状态:
在这里插入图片描述
很好,是COM7,已经被识别出来了。(这里需要说一句,这个端口每次开机识别出来可能都不一样哈,比如第二次开机就变成了COM8)
然后使用putty通过串口远程登陆开发板。按照英飞凌官方的手册,连接方式选择串口,波特率开到115200
在这里插入图片描述
之后再打开开发板的电源开关就能连接上了,putty按下回车出现如下画面:(这里有个小插曲,第一次我是先出现了putty画面然后再开的板子上的电源,这时候报错了一次。第二次我先开电源再连putty就一切正常了)

在这里插入图片描述
之后再输入账号密码就行了,就来到了我们最熟悉的LInux命令行界面了。
在这里插入图片描述
太久没玩linux了,首先测试几个之前做项目最喜欢的命令回忆一下。

(切换到根目录查看所有文件分布):cd / 和 ls
在这里插入图片描述
(查看系统的存储空间):df -h
在这里插入图片描述
输出中可以看出:
Mounted on是文件系统的挂载点。
根文件系统 /dev/root 总大小为 6.5G,已使用 788M,可用 5.4G,使用率为 13%。
/dev/mmcblk1p1 文件系统总大小为 500M,已使用 13M,可用 488M,使用率为 3%。

(查看当前路径) pwd
在这里插入图片描述

这里我们复习一下根目录下每个文件夹的作用:

bin: 存放系统启动和修复时使用的基本命令。
/etc: 包含系统的配置文件和子目录,其中存放了大多数系统-wide 的配置文件。
/lib: 存放系统启动时和运行过程中需要的共享库文件。
/media: 自动挂载的可移动媒体设备(例如USB驱动器、CD-ROM等)的挂载点。
/proc: 一个虚拟文件系统,提供对内核及进程信息的访问。
/sbin: 存放系统管理员使用的系统管理程序,这些程序不一定是普通用户必须使用的,但是对于系统的正常运行和维护是必需的。
/tmp: 用于存放临时文件的目录,重启系统时会清空该目录。
/var: 包含经常变化的文件,比如各种日志文件、数据库文件等。
/dev: 包含与设备相关的文件,每个设备都以文件的形式表示在这个目录中。
/home: 存放用户的主目录,每个用户通常有一个独立的子目录。
/lost+found: 在文件系统发生错误时,文件系统检查和修复工具(如fsck)将损坏的文件和目录片段放置在此目录。
/mnt: 用于手动挂载临时文件系统的目录。
/run: 用于存放系统运行时的临时数据,如PID文件和UNIX域套接字。
/sys: 包含与内核和系统配置相关的文件,允许在运行时与内核进行交互。
/usr: 包含用户安装的应用程序和文件。

这些文件夹组成了Linux文件系统的基本结构,每个都有其特定的目的和用途。

1.2、连接WIFI

按照说明书上的提示,首先看一下开发板的模块是否加载完毕:(命令:lsmod)

在这里插入图片描述

lsmod 是 Linux 系统中的一个命令,用于列出当前加载的内核模块(Kernel Modules)的信息。在 Linux 中,内核模块是一种动态加载到内核中的代码,它们可以扩展内核的功能,添加新的驱动程序或功能。
chatgpt的解释:
ov5640_camera: 一个与摄像头驱动相关的内核模块,可能用于支持某种类型的摄像头。
8723du: 一个内核模块,大小为 1303801 字节,可能是 Realtek 公司生产的 8723du 系列无线网卡的驱动程序。
rtk_btusb: 一个与 Realtek 蓝牙 USB 适配器相关的内核模块,可能用于支持特定型号的 Realtek 蓝牙设备。

和树莓派等开发板一样,这款板子也可以直连WIFI,校园网应该是连不上的,好在这栋楼有个免费WIFI可以蹭一下,在开发板中输入指令:
在这里插入图片描述
根据开发文档,-s后跟的是WIFI名字,-p后面跟的是WIFI密码,这里无密码就NONE了。接下里就是几秒的连接时间:在这里插入图片描述
最后这里写的finish,算连接成功了。
测试一下能不能和百度ping通:
在这里插入图片描述
还不错,基本没丢包傲。

二、基本功能测试

接下来的测试部分我都是按照ELF官方给的操作手册一步步进行的,并对里面有意思的部分进行展开学习。

2.1、主板命令行测试

2.1.1、TF卡热插拔测试

将SD卡插入开发板中,putty界面会显示:
在这里插入图片描述
TF卡挂载后的文件名就叫nmcblk0p1
此时/run/media是TF卡的挂载目录,可以进去看看

ls /run/media

在这里插入图片描述
如果要查看TF卡中的文件:

ls /run/media/mmcblk0p1

在这里插入图片描述
或者ls-l显示具体信息:
在这里插入图片描述
下面是一个在TF卡里读写的测试:

 echo 1 > /run/media/mmcblk0p1/test.txtsynccat /run/media/mmcblk0p1/test.txt

echo 1 > /run/media/mmcblk0p1/test.txt: 这个命令创建了一个名为test.txt的文件,并将数字1写入该文件。
sync: 这个命令用于将内存中的数据同步到磁盘上,确保文件系统的一致性。
cat /run/media/mmcblk0p1/test.txt: 这个命令用于显示test.txt文件的内容。在这种情况下,它应该显示数字1。
最后的效果就是:
在这里插入图片描述

2.1.2、LED命令行测试

测了两条指令,LED红灯心跳,黄灯不亮,绿灯亮
在这里插入图片描述

2.1.3、数据库测试

在这里插入图片描述
在 SQLite 中创建了一个表格 tbl1,并向其中插入了两行数据。然后,你使用 select * from tbl1 查询了表格内容,显示了结果。最后,通过使用 .quit 命令退出了 SQLite。

三、基础编程实战

3.1、交叉编译链部署

首先还是再复习一下,我们嵌入式设备的资源是很紧张的,所以编译这一步骤一般是在另外一个终端上完成的,编译完成后再将可执行文件考到嵌入式设备上。这个就是交叉编译的意思
按照手册上的操作步骤呢,我们这里实在虚拟机上进行编译,正常情况下我们虚拟机是在X86架构的计算机上的,而我们的程序试运行在ARM架构上,所以这里我们需要在虚拟机中安装ARM编译工具,方便我们在虚拟机上直接编译程序,然后再把可执行文件考到嵌入式ARM设备上。

首先我们将官方提供的自动安装脚本(fsl…)拷到 虚拟机的/home/makeru下(这里的makeru是我自己的名字,每个人不一样):
在这里插入图片描述
然后执行这个脚本,最后显示安装成功了:
在这里插入图片描述
设置环境变量:
在这里插入图片描述
查看一下版本号:
在这里插入图片描述
在这里插入图片描述
最后再看一下普通GCC和ARM-GCC的区别(这里对main.c进行两次不同的编译):
在这里插入图片描述

3.2、温湿度传感器程序

设定好编译器:

. /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

找到官方提供的代码进行交叉编译:

$CC elf1_cmd_aht20.c -o elf1_cmd_aht20

最后得到arm型号的可执行文件(看门狗程序,六轴传感器程序类似)。将它们考到开发板上(这里我用的是FileZila):
在这里插入图片描述
这里有个问题熬,所有的可执行文件没有运行权限,需要改一下:

sudo chmod +x elf1_cmd_aht20 elf1_cmd_icm20607 elf1_cmd_watchdog

现在就对了:
在这里插入图片描述
现在运行一下呢:

在这里插入图片描述
没啥问题

3.3、看门狗程序

还是和刚刚一样我们直接运行,过了一会就重启了
在这里插入图片描述

3.4、六轴传感器程序

还是和刚刚一样我们直接运行,这里就不放截图了,很简单

3.5、MQTT物联网

先去阿里云网站上生成一个示例,这个比较简单,这里就放几张截图略过了:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将SDK下载到自己的虚拟机中,文件结构如图所示:
请添加图片描述
修改三元组信息和MQTT host:
请添加图片描述
修改MakeFile,将最前面两句话注释掉:
将鲁
再进入mqtt_rrpc_demo.c更改三元组的信息:
请添加图片描述

在这里插入图片描述
最后输入指令:
. /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
执行这条命令的目的是设置环境变量,以便在当前的Linux系统中使用特定的交叉编译器和工具链。这对于交叉编译基于ARM架构的软件非常重要,因为它确保在开发和构建过程中使用正确的工具,以生成适用于目标设备的可执行文件。这个命令可能会定义诸如路径、库目录、编译器选项等环境变量,以确保后续的编译和构建步骤能够正确地针对目标设备进行。

最后make一下(执行makefile):
在这里插入图片描述
稍等 几秒我们可以看到make成功了,同时我们用file检查一下格式,是ARM就没错了:
在这里插入图片描述
这会把程序拷到板子上就能运行了

bug记录

波特率设置错误,导致putty界面异常

在这里插入图片描述
比如很经典的把115200写成了152000
然后putty登录界面就会一直闪现乱码,或者干脆直接无反应:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/590524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS TF坐标变换 - 动态坐标变换

目录 一、动态坐标变换(C实现)二、动态坐标变换(Python实现) 一、动态坐标变换(C实现) 所谓动态坐标变换,是指两个坐标系之间的相对位置是变化的。比如机械臂末端执行器与 base_link 之间&…

渗透线上下料控制(SCL源代码)

有关渗透线的其它详细介绍请参考下面链接文章: https://rxxw-control.blog.csdn.net/article/details/133611151https://rxxw-control.blog.csdn.net/article/details/133611151这里的渗透线上下料属于整个渗透线流程里的最前端和最后端,分别负责待处理…

《Linux系统与网络管理》复习题库---简答题

1、简述这些分区的名字以及各自的作用。 答: /boot 存放内核镜像的地方,这个文件夹独立分区的意义在于降低不能开机的风险。 /根目录,一般采用 ext3 文件系统,分区的容量一定要大于安装软件包的容量。 /usr 多数软件的默认安装的地…

Anaconda3 2021.11安装

1. 镜像下载:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 2. 安装在D盘: 3. 配置环境变量: 在这里,第一个教程A在系统变量里配置了五个,但我没有 所以又搜了教程B&#xf…

扎根底层技术,推动机器人换代式升级

热赛道和冷市场的矛盾之下,机器人需要一次换代式升级。 冷中有热的资本市场 在宏观经济下行的影响下,我国服务机器人产量从2022年开始出现明显放缓,2021年12月至2022年12月,我国服务机器人产量都处于同比下滑的状态,…

LeetCode每日一题.05(N皇后)

按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种…

以元旦为题的诗词(三)

愿新的一年给我们带来无尽的好运和幸福愿我们的梦想在新的起点绽放! 让我们在未来的日子里书写新的篇章! 接着分享几首以元旦为题的几首诗,喜欢的朋友可以自取,想要更多免费的诗词,请自行百度或小程序搜索:美诗计 元旦 元旦佳节…

剑指“CPU飙高”问题

一、什么是cpu飙高? 一般指程序运行时cpu占用率过高   linux系统中,我们使用top命令,会看到正在运行进程的cpu使用率等,同时在最上面也会看到总的cpu使用率,当总的cpu使用率过高,如果有运维监控平台&…

【Linux】理解文件系统

需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;优惠多多。&#xff08;联系我有折扣哦&#xff09; 文章目录 1. 了解磁盘1.1 磁盘的物理结构1.2 磁盘的逻辑结构1.3 磁盘的存储结构 2. 文件系统2.…

2023年12月编程语言排行榜

TIOBE Index for December 2023 December Headline: C# on its way to become programming language of the year 2023 2023年12月的TIOBE指数&#xff1a;12月头条:c#将成为2023年最佳编程语言 Yes, I know, we have been here before. At the end of 2022, it looked like …

全局异常和自定义异常处理

全局异常GlobalException.java&#xff0c;basePackages&#xff1a;controller层所在的包全路径 import com.guet.score_management_system.common.domian.AjaxResult; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bi…

电脑怎么设置代理IP上网?如何隐藏自己电脑的真实IP?

在现代互联网中&#xff0c;代理IP已成为许多用户保护隐私和上网安全的重要手段。通过设置代理IP&#xff0c;用户可以隐藏自己的真实IP地址&#xff0c;提高上网的安全性&#xff0c;同时保护个人信息不被泄露。本文将详细介绍如何设置代理IP上网以及如何隐藏电脑的真实IP地址…

Vue Tinymce富文本组件添加自定义字体项

实现效果如下&#xff1a; Tinymce 组件进行字体设置 设置完后&#xff0c;就可以使用自定义的字体了。

Spring Boot整合 EasyExcel 实现复杂 Excel 表格的导入与导出功能

文章目录 1. 简介2. 引入依赖3. 导入功能实现3.1 创建实体类3.2 编写导入 Controller3.3 编写导入页面 4. 导出功能实现4.1 编写导出 Controller4.2 编写导出页面 5. 启动应用 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &…

你好2024!

大家好&#xff0c;我是小悟 2024年1月1日&#xff0c;新年的第一天&#xff0c;阳光明媚&#xff0c;空气中弥漫着希望和新的开始的气息。在这个特别的日子里&#xff0c;大家纷纷走出家门&#xff0c;迎接新年的到来。 街道上&#xff0c;熙熙攘攘的人群中&#xff0c;有孩…

【动态管理日志】Spring Boot 实现 热插拔 AOP,非常实用!

现在有这么一个需求&#xff1a;就是我们日志的开与关是交给使用人员来控制的&#xff0c;而不是由我们开发人员固定写死的。大家都知道可以用aop来实现日志管理&#xff0c;但是如何动态的来实现日志管理呢&#xff1f;aop源码中的实现逻辑中有这么一个步骤&#xff0c;就是会…

将学习自动化测试时的医药管理信息系统项目用idea运行

将学习自动化测试时的医药管理信息系统项目用idea运行 背景 学习自动化测试的时候老师的运行方式是把医药管理信息系统项目打包成war包后再放到tomcat的webapp中去运行&#xff0c;于是我想着用idea运行会方便点&#xff0c;现在记录下步骤方便以后查找最开始没有查阅资料&am…

蓝牙物联网灯控设计方案

蓝牙技术是当前应用最广泛的无线通信技术之一&#xff0c;工作在全球通用的 2.4GHZ 的ISM 频段。蓝牙的工作距离约为 100 米&#xff0c;具有一定的穿透性&#xff0c;没有方向限制。具有低成本、抗干扰能力强、传输质量高、低功耗等特点。蓝牙技术组网比较简单&#xff0c;无需…

【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(3)-训练yolov5模型(本地)

训练yolov5模型&#xff08;本地&#xff09; 训练文件 train.py训练如下图 一些参数的设置weights:对于weight参数&#xff0c;可以往Default参数中填入的参数有 cfg&#xff1a;&#xff08;缩写&#xff09;cfg参数可以选择的网络模型 data对于data hyp 超参数epochs 训练多…

托管在亚马逊云科技的向量数据库MyScale如何借助AWS基础设施构建稳定高效的云数据库

MyScale是一款完全托管于亚马逊云科技&#xff0c;支持SQL的高效向量数据库。MyScale的优势在于&#xff0c;它在提供与专用向量数据库相匹敌甚至优于的性能的同时&#xff0c;还支持完整的SQL语法。以下内容&#xff0c;将阐述MyScale是如何借助亚马逊云科技的基础设施&#x…