IMX6U Qt 开发环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

一、交叉编译

1. 安装通用 ARM 交叉编译工具链

2. 安装 Poky 交叉编译工具链

二、编译出厂源码 

1. U-boot

2. 内核和模块

3. 编译出厂 Qt GUI 综合 Demo



前言

搭建编译环境


提示:以下是本篇文章正文内容,下面案例可供参考

一、交叉编译

下面选择的 Poky 编译器是 Yocto 项目编译出的。

1. 安装通用 ARM 交叉编译工具链

该部分在裸机开发就安装好了,这里再写一遍。

Linaro GCC 编译器下载地址如下: https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/

选择下载 arm-linux-guneabihf,下载地址如下:

Linaro Releases

下完后,通过 FileZilla 传到 ubuntu 里,自行创建 linux/tool 文件夹。

然后,创建目录:

sudo mkdir /usr/local/arm

将交叉编译器复制到该目录下

sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f

然后进入该目录,解压工具

sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

修改环境变量

sudo vi /etc/profile

在最后面输入

export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

然后重启客户机,到此交叉编译器安装成功。

可能有些环境缺失必要的依赖库:

sudo apt-get install lsb-core lib32stdc++6

最后,我们查看是否安装成功

2. 安装 Poky 交叉编译工具链

将 fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh 拷贝到 Ubuntu 中。并给予权限,最后安装。

chmod u+x fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh

执行脚本时,连续2次回车确认,然后再输入用户密码即可。脚本默认是安装到 /opt 下。

使能环境

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi 

使用 arm-poky-linux-gnueabi-gcc -v 指令可以查看 gcc 版本,表明环境变量已经生效。

要使用此编译器编译内核和 U-boot 还需要安装以下软件

sudo apt-get update // 先更新软列表(本地数据库) 
sudo apt-get install lzop // 安装 lzop 工具,用于生成压缩或解压镜像 
sudo apt-get install libncurses* // 安装 ncurese 相关库,U-boot 或者内核菜单显示时需要

二、编译出厂源码 

1. U-boot

创建目录,并将 U-boot 源码解压到该目录下

mkdir -p IMX6/uboot-imx-2016.03-2.1.0 
tar xf uboot-imx-2016.03-2.1.0-g0ae7e33-v1.7.tar.bz2 -C IMX6/uboot-imx-2016.03-2.1.0/ 
cd IMX6/uboot-imx-2016.03-2.1.0 
ls 

执行 bulid.sh 即可编译 U-boot 源码。

编译完成后查看当前目录下的 tmp 文件夹编译的文件目标,*imx 是已经添加头部信息的 U-boot 镜像,可直接使用 dd 指令烧写到 TF 卡和开发板上的 eMMC 储存设备。

2. 内核和模块

mkdir -p IMX6/linux-imx-4.1.15-2.1.0 
tar xf linux-imx-4.1.15-2.1.0-g3dc0a4b-v2.7.tar.xz -C IMX6/linux-imx-4.1.15-2.1.0/ 
cd IMX6/linux-imx-4.1.15-2.1.0 
ls 

解压完,运行 build.sh 

3. 编译出厂 Qt GUI 综合 Demo

将 QDesktop 拷贝到 Ubuntu 家目录下。

进入到 QDesktop 目录下,

使能交叉编译环境

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

执行 qmake,生成 Makefile,然后 make -j 16。编译过和中有报警告,可忽略。编译完成如下图,编译得到的 QDesktop 文件,同时拷贝 QDestkop 和 src 文件夹,可以直接拷贝到出厂系统下直接执行./QDestkop 即可。

三、拷贝文件

准备一个示例,例如,控制 LED 的程序。

使能交叉编译环境后,qmake,make。拷贝可执行文件和 src 文件夹(如果有)到 U盘里。

用MobaXterm连接开发板时,注意串口驱动要安装CH340。

将U盘插入开发板,用指令 df 查看挂载

/dev/sda1为U盘的挂载节点,挂载目录为/run/media/sda1。

拷贝该文件到 /home/root 下

安全弹出 U盘,请用 sync 命令,来同步数据,然后退出挂载。

原来桌面的 GUI 系统,可以通过设置中退出桌面,然后就能实验 led 灯了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Oracle专栏】2个入参,生成唯一码处理

Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.背景 业务需要:2个参数,如 aidbankid ,两个值是联合主键,需要生成一个固定唯一码,长度有限制32位,为了…

跨界融合:人工智能与区块链如何重新定义数据安全?

引言:数据安全的挑战与现状 在信息化驱动的数字化时代,数据已成为企业和个人最重要的资产之一。然而,随着网络技术的逐步优化和数据量的爆发式增长,数据安全问题也愈变突出。 数据安全现状:– 数据泄露驱动相关事件驱…

给DevOps加点料:融入安全性的DevSecOps

从前,安全防护只是特定团队的责任,在开发的最后阶段才会介入。当开发周期长达数月、甚至数年时,这样做没什么问题;但是现在,这种做法现在已经行不通了。 采用 DevOps 可以有效推进快速频繁的开发周期(有时…

CDP中的Hive3之Hive Metastore(HMS)

CDP中的Hive3之Hive Metastore(HMS) 1、CDP中的HMS2、HMS表的存储(转换)3、HWC授权 1、CDP中的HMS CDP中的Hive Metastore(HMS)是一种服务,用于在后端RDBMS(例如MySQL或PostgreSQL&a…

【算法】判断一个链表是否为回文结构

问: 给定一个单链表的头节点head,请判断该链表是否为回文结构 例: 1 -> 2 -> 1返回true;1 -> 2 -> 2 -> 1返回true;15 -> 6 -> 15返回true 答: 笔试:初始化一个栈用来…

Python双指针

双指针 双指针:在区间操作时,利用两个下标同时遍历,进行高效操作 双指针利用区间性质可以把 O ( n 2 ) O(n^2) O(n2) 时间降低到 O ( n ) O(n) O(n) 反向扫描 反向扫描: l e f t left left 起点,不断往右走&…

VMware虚拟机安装Home Assistant智能家居平台并实现远程访问保姆级教程

目录 前言 1. 安装Home Assistant 前言 本文主要介绍如何在windows 10 上用VMware Workstation 17 Pro搭建 Home Assistant OS Host os version:Windows 10 Pro, 64-bit (Build 19045.5247) 10.0.19045 VMware version:VMware Workstation 17 Pro 1. 安装Home …

【MySQL】SQL菜鸟教程(一)

1.常见命令 1.1 总览 命令作用SELECT从数据库中提取数据UPDATE更新数据库中的数据DELETE从数据库中删除数据INSERT INTO向数据库中插入新数据CREATE DATABASE创建新数据库ALTER DATABASE修改数据库CREATE TABLE创建新表ALTER TABLE变更数据表DROP TABLE删除表CREATE INDEX创建…

【Java回顾】Day5 并发基础|并发关键字|JUC全局观|JUC原子类

JUC全称java.util.concurrent 处理并发的工具包(线程管理、同步、协调) 一.并发基础 多线程要解决什么问题?本质是什么? CPU、内存、I/O的速度是有极大差异的,为了合理利用CPU的高性能,平衡三者的速度差异,解决办法…

自然语言转 SQL:通过 One API 将 llama3 模型部署在 Bytebase SQL 编辑器

使用 Open AI 兼容的 API,可以在 Bytebase SQL 编辑器中使用自然语言查询数据库。 出于数据安全的考虑,私有部署大语言模型是一个较好的选择 – 本文选择功能强大的开源模型 llama3。 由于 OpenAI 默认阻止出站流量,为了简化网络配置&#…

一学就废|Python基础碎片,文件读写

文件处理是指通过编程接口对文件执行诸如创建、打开、读取、写入和关闭等操作的过程。它涉及管理程序与存储设备上的文件系统之间的数据流,确保数据得到安全高效的处理。 Python 中的文件模式 打开文件时,我们必须指定我们想要的模式,该模式…

牛客网刷题 ——C语言初阶(6指针)——倒置字符串

1. 题目描述:倒置字符串 牛客网OJ题链接 描述 将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I 输入描述: 每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超…

YOLOv10改进,YOLOv10自研检测头融合HyCTAS的Self_Attention自注意力机制+添加小目标检测层(四头检测)+CA注意机制,全网首发

摘要 论文提出了一种新的搜索框架,名为 HyCTAS,用于在给定任务中自动搜索高效的神经网络架构。HyCTAS框架结合了高分辨率表示和自注意力机制,通过多目标优化搜索,找到了一种在性能和计算效率之间的平衡。 理论介绍 自注意力(Self-Attention)机制是HyCTAS框架中的一个重…

Web前端界面开发

前沿:介绍自适应和响应式布局 自适应布局:-----针对页面1个像素的变换而变化 就是我们上一个练习的效果 我们的页面效果,随着我们的屏幕大小而发生适配的效果(类似等比例) 如:rem适配 和 vw/vh适配 …

机器学习05-最小二乘法VS梯度求解

机器学习05-最小二乘法VS梯度求解 文章目录 机器学习05-最小二乘法VS梯度求解0-核心知识点梳理1-最小二乘法和梯度求解算法什么关系最小二乘法梯度求解算法两者的关系 2-最小二乘法可以求解非线性回归吗3-最小二乘法不使用梯度求解算法,给出一个简单的示例&#xff…

maven的简单介绍

目录 1、maven简介2、maven 的主要特点3、maven的下载与安装4、修改配置文件5、私服(拓展) 1、maven简介 Maven 是一个广泛使用的项目管理和构建工具,主要应用于 Java 项目。Maven 由 Apache 软件基金会开发和维护,它提供了一种简洁且一致的方法来构建、…

C++ 基础思维导图(三)异常-STL

1、异常 异常举例 BankAccount.h #ifndef BANK_ACCOUNT_H #define BANK_ACCOUNT_H#include <iostream> #include <stdexcept>class InsufficientFundsException : public std::runtime_error { public:InsufficientFundsException() : std::runtime_error("I…

【C++入门】详解(中)

目录 &#x1f495;1.函数的重载 &#x1f495;2.引用的定义 &#x1f495;3.引用的一些常见问题 &#x1f495;4.引用——权限的放大/缩小/平移 &#x1f495;5. 不存在的空引用 &#x1f495;6.引用作为函数参数的速度之快&#xff08;代码体现&#xff09; &#x1f4…

人工智能之数学基础:函数间隔和几何间隔

本文重点 在机器学习领域,尤其是支持向量机(SVM)算法中,函数间隔(Functional Margin)和几何间隔(Geometric Margin)是两个至关重要的概念。它们不仅用于描述数据点到超平面的距离,还直接影响到分类器的性能与泛化能力。本文将详细介绍这两个概念,并探讨它们之间的区…

UE5 打包项目

UE5 打包项目 flyfish 通过 “文件”->“打开项目”&#xff0c;然后在弹出的对话框中选择项目文件&#xff08;通常是以.uproject为后缀的文件&#xff09; 选择目标平台&#xff1a; 在 UE5 主界面中&#xff0c;找到 “平台”&#xff08;Platforms&#xff09;。根据…