当前位置: 首页 > 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技术我们就不用召回每部手机,直接通过云端就可…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

LLMs 系列实操科普(1)

写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

微服务通信安全:深入解析mTLS的原理与实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言&#xff1a;微服务时代的通信安全挑战 随着云原生和微服务架构的普及&#xff0c;服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...