当前位置: 首页 > news >正文

012-第二代硬件选型

头图

第二代硬件选型

文章目录

  • 第二代硬件选型
    • 项目介绍
    • 重新换平台缘由
      • X86 && Arm 架构
      • 切换 ARM Linux
    • 硬件选型
    • 系统确定
    • Qt 版本确定
    • 总结一下

关键字: QtQmlArmX86linux

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏更新到第三代软件开发时将转为收费专栏

重新换平台缘由

这个东西和公司的历史遗留以及业务逻辑是分不开的,说说我们的历史情况,我们公司在这个项目开始的时候,就有两个中低端的项目在进行,他们的上位机开发环境就是基于Arm 的Linux 系统。(非常不推荐在产品中使用的平台,这就不点名了)

在我们项目完成第一代原理验证后,就有了统一开发平台的计划,第一开始想着是定制一套属于我们公司的Arm 架构的硬件设备,包括软件系统等,经过和多家公司的接洽,基本总结下,就是开发功能没有问题,但是要是搞医疗那些认证,那目前我们公司的用量,是达不到的,而我们内部有不想把大部分时间及精力都浪费这个板子的医疗认证上面,所有最终还是决定先用市场上成熟的产品,基本需求就是有证,不用我们单独过检。这个决定在经过后面实践,反过来再看确实是一个非常明智的决策。这里也建议前期刚开始搞项目的小伙伴们,还是把精力放在核心的业务上,像这种板子,前期虽然成本相对较高,但是能少走弯路,这省出来的钱和时间绝对能覆盖你前期的生产成本。

X86 && Arm 架构

x86(也称为x86-32或IA-32)和Arm(Advanced RISC Machine)是计算机处理器的两种不同架构。它们在许多方面有所不同,包括设计哲学、指令集和应用领域。以下是它们之间的一些主要区别:

  1. 设计哲学:

    • x86:x86架构是复杂指令集计算机(CISC)架构,其设计目标是提供功能丰富而灵活的指令集,以便直接执行复杂的操作。
    • Arm:Arm架构是精简指令集计算机(RISC)架构,其设计目标是通过精简指令集、优化执行流程和降低功耗来提高性能效率。
  2. 指令集:

    • x86:x86架构具有较大的指令集,包含了大量的指令和复杂的编码格式。这使得x86处理器能够在单个指令中完成复杂的操作,但也导致了较高的电路复杂度和功耗。
    • Arm:Arm架构具有较小的指令集,使用简单的指令和统一的编码格式。虽然每条指令的功能相对简单,但由于指令集更紧凑,可以更好地利用处理器内部的资源,从而提高性能效率。
  3. 应用领域:

    • x86:x86架构在个人计算机(包括台式机和笔记本电脑)上得到广泛应用。它通常用于运行桌面应用程序、游戏和复杂的任务,因为x86处理器具有较高的单线程性能。
    • Arm:Arm架构在移动设备(如智能手机和平板电脑)和嵌入式系统中得到广泛应用。由于其低功耗和高能效特性,Arm处理器在移动设备上具有重要优势。此外,Arm架构还在物联网(IoT)设备和嵌入式系统领域中得到广泛采用。
  4. 生态系统:

    • x86:x86架构拥有庞大的软件生态系统,有许多针对x86处理器优化的操作系统、编译器和应用程序。
    • Arm:Arm架构也拥有强大的软件生态系统,尤其在移动设备和嵌入式领域。随着Arm服务器处理器的发展,Arm生态系统在数据中心领域也逐渐扩大。

需要注意的是,这些是一般性的区别,并不代表每个特定情况下都成立。随着时间的推移,x86和Arm之间的差异也在逐渐缩小,例如,Arm架构的性能正在不断提高,同时x86架构也在努力降低功耗。

切换 ARM Linux

跟着上面的历史缘由,我们的第二代软件就要切到Linux下了,这里才是我正式的开始和挑战,因为在加入公司的前期沟通中,就明确,我是奔着Linux 软件开发来的,因为WIndows真的玩的不想玩了,哈哈哈。

硬件选型

其实选型这个东西,真的好考验一个人的经验和能力,所以第一代选型中,我也没有太多的经验,之前的经验基本都是基于X86架构,所以在Arm 上,我也只用过瑞星微的RK3288,那时候的仪表简单,而我们第一代中其实也没有太多的东西,所以在更多的是考虑了成本,所以选择了RK3399,综合一下,最终选择了 研华的 一款板子,其核心就是 Rk3399

RK3399 是一款由瑞芯微电子(Rockchip)推出的高性能嵌入式处理器。它采用了大核小核(big.LITTLE)架构,配备两个Cortex-A72 核心和四个Cortex-A53 核心,以及集成了ARM Mali-T860MP4 图形处理单元。这种设计使得 RK3399 在性能和功耗之间取得了良好的平衡。

RK3399 处理器主要针对嵌入式系统和物联网设备应用,具有广泛的应用领域,包括智能电视盒子、个人电脑、工业控制、机器人、智能音箱等。它支持Android和Linux操作系统,并提供了丰富的接口和功能扩展选项,如USB 3.0、PCIe、HDMI、MIPI-CSI、MIPI-DSI等,使开发者可以根据实际需求进行灵活的扩展和定制。

RK3399 还具备强大的多媒体处理能力,支持4K视频解码和编码,以及各种音频格式的处理。此外,它还提供了较高的图形性能,适合于图形密集型应用和游戏。

总的来说,RK3399 是一款功能齐全、性能出色的嵌入式处理器,可以满足各种应用领域的需求。它的大核小核架构、丰富的接口和功能扩展选项,以及多媒体处理和图形性能的支持,使得它成为物联网设备和嵌入式系统开发者的理想选择之一。

其实在这里我们的性能就已经不够了,但是呢,又不是那么明显的不够,没有后期的对比,我们还真就以为是流畅了。

系统确定

我们有两个需求,第一就是Bios 需要定制成我们的公司的LOGO,这个已经是现在的基操了,剩下就是定制系统,但是研华吗,目前我们的体谅肯定是不够的,所以第二部就一直没有执行,一直是跑着研华提供的全功能的Debian 10.

其实可以有安卓系统,但是呢,你让我用Qt开发安卓,我认为应急还可以,单不是长久之计,所以还是选择了Debian 10.

Qt 版本确定

大家都知道哈,Linux 下的交叉编译,那基本就是一步一坑,坑坑不一样,你的问题百度都有解决方案,就是解决不了你的问题。所以在选择Qt时就是研华提供那个版本,我们就使用对应的那个版本,上位机也是,与研华Arm 下提供的Qt 一样。

总结一下

那么到这里,我们的硬件选型基本就确定了,就是等待最终的移植测试了。下一篇咱们唠唠上位机Debian开发环境的搭建。


博客签名2021

相关文章:

012-第二代硬件选型

第二代硬件选型 文章目录 第二代硬件选型项目介绍重新换平台缘由X86 && Arm 架构切换 ARM Linux 硬件选型系统确定Qt 版本确定总结一下 关键字: Qt、 Qml、 Arm、 X86、 linux 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QM…...

Spring中的设计模式

目录 工厂模式 组合模式 适配器模式 代理模式 单例模式 观察者模式 模板方法模式 责任链模式 Spring有着非常优雅的设计,很多地方都遵循SOLID原则,里面的设计模式更是数不胜数大概有以下几种: 工厂模式 所谓的工厂模式,核…...

软考 系统架构设计师系列知识点之软件质量属性(1)

这个十一注定是一个不能放松、保持“紧”的十一。由于报名了全国计算机技术与软件专业技术资格(水平)考试,11月4号就要考试,因此8天长假绝不能荒废,必须要好好利用起来。现在将各个核心知识点一一进行提炼并做记录。 所…...

GPT系列论文解读:GPT-1

GPT系列 GPT(Generative Pre-trained Transformer)是一系列基于Transformer架构的预训练语言模型,由OpenAI开发。以下是GPT系列的主要模型: GPT:GPT-1是于2018年发布的第一个版本,它使用了12个Transformer…...

数学分析:含参变量的积分

同样很多收敛性的证明不是重点,但里面的知识还是需要适当掌握,知道中间的大致思考和解决路径即可。 本质还是极限的可交换性,求导可以换到积分里面去操作。 这里要注意变量的区别,首先积分的被积变量是x,但是函数的变量…...

关于一篇ElementUI之CUD+表单验证

目录 一.CUD增删改查简述 1.1.增删改功能实现 二.表单验证 前端所有代码: 好啦今天就分享到这了,希望能帮到你哦!!! 以下的代码基于我博客中的代码进行续写 : 关于ElementUI之动态树数据表格分页实例 一.CUD增删改…...

VUE模板编译的实现原理

前言 在Vue.js 2.0中,模板编译是通过将模板转换为渲染函数来实现的。渲染函数是一个函数,它返回虚拟DOM节点,用于渲染实际的DOM。Vue.js的模板编译过程可以分为以下几个步骤: 将模板解析为抽象语法树(AST&#xff09…...

基础算法之——【动态规划之路径问题】1

今天更新动态规划路径问题1,后续会继续更新其他有关动态规划的问题!动态规划的路径问题,顾名思义,就是和路径相关的问题。当然,我们是从最简单的找路径开始! 动态规划的使用方法: 1.确定状态并…...

三十三、【进阶】索引的分类

1、索引的分类 (1)总分类 主键索引、唯一索引、常规索引、全文索引 (2)InnoDB存储引擎中的索引分类 2、 索引的选取规则(InnoDB存储引擎) 如果存在主键,主键索引就是聚集索引; 如果不存在主键&#xff…...

VBox启动失败、Genymotion启动失败、Vagrant迁移

VBox启动失败、Genymotion启动失败、Vagrant迁移 2023.10.9 最新版本vbox7.0.10、Genymotion3.5.0 Vbox启动失败 1、查看日志 Error -610 in supR3HardenedMainInitRuntime! (enmWhat4) Failed to locate ‘vcruntime140.dll’ 日志信息查看方法->找到虚拟机所在位置->…...

一篇短小精悍的文章让你彻底明白KMP算法中next数组的原理

以后保持每日一更,由于兴趣较多,更新内容不限于数据结构,计算机组成原理,数论,拓扑学......,所谓:深度围绕职业发展,广度围绕兴趣爱好。往下看今日内容 一.什么是KMP算法 KMP&#x…...

CSS盒子定位的扩张

定位的扩展 绝对定位(固定定位)会完全压住盒子 浮动元素不会压住下面标准流的文字,而绝对定位或固定位会压住下面标准流的所有内容 如果一个盒子既有向左又有向右,则执行左,同理执行上 显示隐藏 display: none&…...

SpringBoot整合POI实现Excel文件读写操作

1.环境准备 1、导入sql脚本: create database if not exists springboot default charset utf8mb4;use springboot;create table if not exists user (id bigint(20) primary key auto_increment comment 主键id,username varchar(255) not null comment 用…...

从零开始的力扣刷题记录-第八十七天

力扣每日四题 129. 求根节点到叶节点数字之和-中等130. 被围绕的区域-中等437. 路径总和 III-中等376. 摆动序列-中等总结 129. 求根节点到叶节点数字之和-中等 题目描述: 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 …...

【1】c++设计模式——>UML类图的画法

UML介绍 UML:unified modeling language 统一建模语言 面向对象设计主要就是使用UML类图,类图用于描述系统中所包含的类以及他们之间的相互关系,帮助人们简化对系统的理解,他是系统分析和设计阶段的重要产物,也是系统编码和测试的…...

SAP UI5 指定 / 变更版本

SAP UI5 指定 / 变更版本 Currently, SAP Fiori tools support SAP Fiori elements and SAPUI5 freestyle projects with minimum SAPUI5 versions 1.65 or higher. In case there’s a need to test an existing projects with a lower SAPUI5 version, the following worka…...

SpringMVC中异常处理详解

单个控制器异常处理 // 添加ExceptionHandler,表示该方法是处理异常的方法,属性为处理的异常类ExceptionHandler({java.lang.NullPointerException.class,java.lang.ArithmeticException.class})public String exceptionHandle1(Exception ex, Model mo…...

PPT课件培训视频生成系统实现全自动化

前言 困扰全动自化的重要环节,AI语音合成功能,终于可以实现自动化流程,在此要感谢团队不懈的努力和韧性的精神! 实现原理 请参照我的文章《Craneoffice云PPT课件培训视频生成系统》 基本流程 演示视频 PPT全自动 总结 过去实…...

Densenet--->比残差力度更大 senet-->本质抑制特征

...

基于腾讯云的OTA远程升级

一、OTA OTA即over the air,是一种远程固件升级技术,它允许在设备已经部署在现场运行时通过网络远程更新其固件或软件。OTA技术有许多优点,比如我们手机系统有个地方做了优化,使用OTA技术我们就不用召回每部手机,直接通过云端就可…...

如何在VS2022中进行调试bug,调试的快捷键,debug与release之间有什么区别

什么是bug 在学习编程的过程中,应该都听说过bug吧,那么bug这个词究竟是怎么来的呢? 其实Bug的本意是“虫子”或者“昆虫”,在1947年9月9日,格蕾丝赫柏,一位为美国海军工作的电脑专家,也是最早…...

初识jmeter及简单使用

目录 1、打开页面: 2、添加线程组: 3、线程组中设置参数: 4、添加请求 5、添加一个http请求后,设置请求内容 6、添加察看结果树 7、执行,查看结果 一般步骤是:在测试计划下面新建一个线程组&#xf…...

Spring 在多线程环境下如何确保事务一致性

问题在现 如何解决异步执行 多线程环境下如何确保事务一致性 事务王国回顾 事务实现方式回顾 编程式事务 利用编程式事务解决问题 问题分析完了,那么如何解决问题呢? 小结 问题在现 我先把问题抛出来,大家就明白本文目的在于解决什…...

[Machine Learning] Learning with Noisy Data

文章目录 Probabilistic Perspective of NoiseBias and VarianceRobustness among Surrogate Loss FunctionsNMF Probabilistic Perspective of Noise 假设数据来源于一个确定的函数,叠加了高斯噪声。我们有: y h ( x ) ϵ y h(x) \epsilon yh(x)ϵ…...

C++中有哪些常用的标准库?

C中有许多常用的标准库,这些库提供了丰富的功能和工具,方便开发人员进行各种任务。以下是一些常见的C标准库: iostream:用于输入和输出操作,包括cin、cout和cerr等类和函数。algorithm:提供了许多常用的算…...

软考-信息安全工程师概述

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 2023年10月 信息考试大纲 通过本考试的合格人员能够掌握网络信息安全的基础知识和技术原理,…...

2023-2024年华为ICT网络赛道模拟题库

2023-2024年网络赛道模拟题库上线啦,全面覆盖网络,安全,vlan考点,都是带有解析 参赛对象及要求: 参赛对象:现有华为ICT学院及未来有意愿成为华为ICT学院的本科及高职院校在校学生。 参赛要求&#xff1a…...

英特尔参与 CentOS Stream 项目

导读红帽官方发布公告欢迎英特尔参与进 CentOS Stream 项目,并表示 “这一举措不仅进一步深化了我们长期的合作关系,也构建在英特尔已经在 Fedora 项目中积极贡献的基础之上。” 目前,CentOS Stream 共包括以下特别兴趣小组(SIG&a…...

Centos 服务器 MySQL 8.0 快速开启远程访问

环境: MySQL 8.0(低版本会有些不同), Rocky Linux 9.0(CentOS) 直接上干货,相信大家看到这个文章的时候都已经安装完了。 1. 先从服务器上使用 root 进行登录(刚安装完默认只能本地…...

充电保护芯片TP4054国产替代完全兼容DP4054DP4054H 锂电充电芯片

■产品概述 DP4054H是-款完整的采用恒定电流/恒定电压单节锂离子电池充电管理芯片。其SOT小封装和较少的外部元件数目使其成为便携式应用的理想器件,DP4054H可 以适合USB电源和适配器电源工作。 由于采用了内部PMOSFET架构,加上防倒充电路,所以不需要外…...