第二代硬件选型
[toc]
关键字: Qt
、Qml
、Arm
、X86
、linux
项目介绍
欢迎来到我们的 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)是计算机处理器的两种不同架构。它们在许多方面有所不同,包括设计哲学、指令集和应用领域。以下是它们之间的一些主要区别:
设计哲学:
- x86:x86架构是复杂指令集计算机(CISC)架构,其设计目标是提供功能丰富而灵活的指令集,以便直接执行复杂的操作。
- Arm:Arm架构是精简指令集计算机(RISC)架构,其设计目标是通过精简指令集、优化执行流程和降低功耗来提高性能效率。
指令集:
- x86:x86架构具有较大的指令集,包含了大量的指令和复杂的编码格式。这使得x86处理器能够在单个指令中完成复杂的操作,但也导致了较高的电路复杂度和功耗。
- Arm:Arm架构具有较小的指令集,使用简单的指令和统一的编码格式。虽然每条指令的功能相对简单,但由于指令集更紧凑,可以更好地利用处理器内部的资源,从而提高性能效率。
应用领域:
- x86:x86架构在个人计算机(包括台式机和笔记本电脑)上得到广泛应用。它通常用于运行桌面应用程序、游戏和复杂的任务,因为x86处理器具有较高的单线程性能。
- Arm:Arm架构在移动设备(如智能手机和平板电脑)和嵌入式系统中得到广泛应用。由于其低功耗和高能效特性,Arm处理器在移动设备上具有重要优势。此外,Arm架构还在物联网(IoT)设备和嵌入式系统领域中得到广泛采用。
生态系统:
- 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
开发环境的搭建。