![](https://img-blog.csdnimg.cn/3d4287eb9ff64523ad5c84cb3bed4aa2.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
座舱虚拟化QNX Hypervisor2.2用户指南与实践
文章平均质量分 72
本系列基于Qcom8155+QNX架构方案。
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
高桐@BILL
校园到职场,做过室内设计;WEB前后端,APP,嵌入式,LinuxAndroid,ChromiumOS,YunOS,智舱OS等开发。
行业遍及互联网,手机,IOT,汽车。
合作品牌如华为,中兴,OV,小米,三星,谷歌,联想,诺基亚,魅族,上汽,大众,腾讯,百度,网易,LG、HTC,沃达丰,AT&T,中移动,中国电信。
职业规划为操作系统方向,涉及不同框架、方案架构设计开发,可维可测,全维度的工程化;
目前主要涉及Android产品从App、FWK、HAL、Kernel、QNX全链路的垂直工程化,以及跨域产/研/测/项目/互联网产品的横向工程化;
展开
-
[QNX 自适应分区用户指南] 目录(完结)
目录原创 2022-08-15 23:04:13 · 1612 阅读 · 0 评论 -
【QNX Hypervisor 2.2用户手册】目录(完结)
为什么要翻译QNX Hypervisor 2.2用户手册手册?首先Q+x是目前SOC或座舱系统主流的方案。QNX是目前使用最广而且最稳定的方案之一,毕竟车厂和广大的用户的眼睛是雪亮的,况且QNX在车联网的市场份额非常惊人。了解QNX可以帮助系统地提高开发效率,减少无效case引起的开发成本。...原创 2022-07-19 23:04:51 · 4521 阅读 · 0 评论 -
[QNX Hypervisor 2.2用户手册]12.2 术语(二)
下面是在贯穿整个Hypervisor文档中的术语。翻译 2022-06-25 16:42:24 · 848 阅读 · 0 评论 -
[QNX Hypervisor 2.2用户手册]12.1 术语(一)
下面是在贯穿整个Hypervisor文档中的术语。翻译 2022-06-24 22:33:04 · 809 阅读 · 0 评论 -
[实践篇]13.30 QNX下的系统性能监控工具 - sysMonAppQNX(二)
将 ADSP 的核心时钟设置为 200 MHz,总线时钟设置为 100 MHz。 (默认: 0) - 设置 HCP 总线时钟频率 (可选) (默认: 0) - 设置 DMA 总线时钟频率 (可选)调用会等待用户输入解锁。测试结束后等待返回的时间 (单位: 毫秒) (默认: 0) (默认: 0) - 设置核心时钟频率。 (默认: 0) - 设置总线时钟频率。运行测试的时间 (单位: 秒) (默认: 60 秒)原创 2024-07-17 22:56:18 · 83 阅读 · 0 评论 -
[实践篇]13.29 QNX下的系统性能监控工具 - sysMonAppQNX(一)
sysMonAppQNX,即System Monitor Application for QNX;它是有QNX开发的系统监控应用程序。它用于监控 QNX 系统的性能和健康状况。sysMonAppQNX 可以监视各种指标,包括 CPU 使用率、内存使用率、磁盘 I/O、网络流量和进程活动。它还可以生成警报以指示潜在问题。原创 2024-07-17 22:38:19 · 634 阅读 · 0 评论 -
5.1 显示窗口的内容(一)
显示器用于在物理硬件(如计算机显示器或触摸屏显示器)上显示窗口的内容。屏幕API提供的功能允许我们创建同时写入多个窗口和显示的应用程序。屏幕支持多个显示器,但创建和管理使用多个显示器的应用程序可能会非常棘手。你需要考虑线程、性能和图形优化。显示器彼此独立,每个窗口只能与一个显示器相关联。我们可以在配置文件graphics.conf中提供要应用于平台支持的物理显示器的配置。有关更多信息,请参阅配置屏幕。原创 2023-12-26 03:00:00 · 1757 阅读 · 0 评论 -
12.5 【Screen配置】配置winmgr(三)
class子段指定了窗口属性的默认值。Windows 必须与显示器相关联。因此,只有在系统支持显示器,或者系统上有需要显示器的应用程序时,才需要在配置文件中包含此部分。此class部分必须以 begin class class_name 开头并以 end class 结尾。class子段用于设置该部分中定义的窗口属性的默认值;这些属性是通过应用于帧缓冲区和应用程序窗口的参数来指定的。原创 2024-01-06 22:13:12 · 995 阅读 · 0 评论 -
12.4 【Screen配置】配置winmgr(二)
如果 display_id 是一个整数,Screen 会将配置参数应用于其 ID 为 display_id 指定的显示器。否则,如果 display_id 是一个与有效显示器连接类型匹配的字符串,则 Screen 会将配置参数应用于其连接类型与 display_id 指定的显示器匹配的第一个可用显示器。可以使用 display_id 将每个display部分与物理显示器相关联。display_id 可以是标识显示器的数字,也可以是显示器的连接类型。display部分的数量取决于平台支持的物理显示器的数量。原创 2024-01-06 17:37:43 · 962 阅读 · 0 评论 -
12.3 【Screen配置】配置winmgr(一)
与显示相关的参数在该段中指定,从开始显示display_id开始,到end display结束。可以有多个display子段,每个子段对应一个平台可用和支持的物理显示器。与类相关的参数在本段中指定,从begin class class_name 开始,以end class结束。graphics.conf 配置文件必须包含一个 winmgr 部分,在其中指定global, display,和class参数。winmgr 部分被标识为由 begin winmgr 和 end winmgr 包围的配置文件部分。原创 2024-01-04 22:19:59 · 500 阅读 · 0 评论 -
12.1 【Screen配置】概括
graphics.conf 文件位于以下目录中:源码目录:$QNX_TARGET/processor/usr/lib/graphics/platform终端目录:/usr/lib/graphics/platform其中处理器是目标终端设备对应的CPU架构(例如armle-v7),平台是平台的名称(例如imx6x)。除非终端设备上的系统允许,否则需要修改源码中的 graphics.conf 文件,然后将其构建到操作系统映像文件系统中。原创 2024-01-02 21:19:46 · 548 阅读 · 0 评论 -
13 术语
Screen系列中常见的术语。原创 2024-01-02 21:04:27 · 393 阅读 · 0 评论 -
11.2 Screen调试实战(二,运行时阶段)
运行时出现的问题是比较难查的。我们可以使用一些调试工具或通过slog2info打印的日志排查问题。原创 2024-01-01 07:44:12 · 1000 阅读 · 0 评论 -
11.1 Screen调试实战(一,初始化阶段)
调试图形并不容易。由于图形涉及许多方面和组件,因此找出问题所在可能具有挑战性。该节介绍了相关调查的工具和方法。图形问题主要包含以下两类:图形堆栈未正确初始化,或者应用程序运行时发生异常。这里的大多数调试方法都需要Screen的调试模块(screen-debug.so)。调试时,我们需要确保确保可以使用此模块和其他调试工具。原创 2024-01-01 07:43:53 · 956 阅读 · 0 评论 -
9 权限与特权
权限和特权共同决定了对API对象(例如窗口和会话)的访问级别。权限和特权是两个不同的概念。权限定义了执行某些操作的能力,例如设置属性。特权是根据角色类型授予的权限集合。请注意,在创建(例如 screen_create_())或销毁(例如 screen_destroy_())对象时,不会应用权限。原创 2023-12-31 10:41:01 · 904 阅读 · 0 评论 -
8 异步通知
应用程序可以通过sigevent请求异步接收特定Screen事件。对于多线程应用程序,所有事件处理都可以通过异步通知定向到一个线程。当应用程序的所有事件处理都由一个线程执行时,更容易同步任务并确保某些任务按正确的顺序执行。在你调用screen_notify()之前,你必须调用screen_register_event()来注册screen_notify()使用的sigevent。当你不再使用异步通知时,需要禁用通知,然后移除事件注册。我们建议你在禁用使用 你要注销事件的同时,仅在禁用使用该事件的异步通知之原创 2023-12-30 01:53:37 · 919 阅读 · 0 评论 -
7 事件处理
Screen事件,包括输入和常规事件,与给定的上下文相关联,通常在主应用程序的循环中处理。Screen在服务器端管理每个上下文的事件队列。Screen为每个上下文创建事件队列,最大队列大小默认为200。此值可在graphics.conf的全局部分配置。如果有比指定的队列大小更多的事件,则此队列大小不会增长。这意味着如果应用程序在更多事件排队超过队列容量之前未得到处理,则可能会丢失事件。在应用程序调用 screen_get_event() 之前,事件会一直存在于服务器上的上下文队列中。原创 2023-12-30 01:53:13 · 966 阅读 · 0 评论 -
6.6 会话与输入事件(三)
指针输入会话使用SCREEN_EVENT_POINTER类型创建,通常用于控制光标的形状和位置。指针会话的SCREEN_PROPERTY_MODE属性未使用。表示一组六个整数,表示x和y的线性系数、x和y的二次系数以及最小和最大速度。指定一个备用会话。可以将一个会话设置为另一个会话(通常是输入区域)的备用。通常,作为备用的会话也是无窗口的。可以设置应用程序,以便当指针处于一个区域时,它会跳转到另一个会话。例如,如果指针位于特定区域上,可以移动到另一个显示器。原创 2023-12-29 06:56:22 · 1200 阅读 · 0 评论 -
6.5 会话与输入事件(二)
键盘输入会话是用类型SCREEN_EVENT_KEYBOARD创建的,可以与可能生成这些类型输入事件的一个或多个设备相关联。当输入是从键盘设备输入文本时,使用键盘会话。不使用键盘会话的SCREEN_PROPERTY_MODE 属性。原创 2023-12-29 06:55:42 · 1010 阅读 · 0 评论 -
6.4 会话与输入事件(一)
会话是特定类型输入事件的接收者。与窗口不同,会话不产生任何图形内容,也不能放入组中。会话可以被认为是已为会话关联的窗口建立的组。输入会话(会话)允许应用程序控制谁接收哪种类型的输入事件以及如何传递这些输入事件。对于每种类型的输入事件,都有一个相应的会话类型。会话类型由Screen会话类型定义。通过调用screen_create_session_type()和要创建的会话类型来创建会话。逻辑输入事件由输入会话封装。这种输入的一个例子是在文本字段中输入文本。原创 2023-12-28 06:02:25 · 814 阅读 · 0 评论 -
6.3 窗口与输入事件
默认情况下,Windows会接收多种类型的输入事件。在大多数情况下,指针和触摸事件的大小和位置(以及源大小和源位置)决定了输入焦点的位置。也就是说,围绕指针或触摸事件的大小和位置的窗口通常是接收输入事件的窗口。原创 2023-12-28 06:01:55 · 458 阅读 · 0 评论 -
6.2 Input事件类型详解
键盘事件可以与文本输入、导航、选择或特殊键(即具有特殊功能的键,例如音量增/减键)的使用有关。原创 2023-12-27 09:47:43 · 763 阅读 · 0 评论 -
6.1 Input与Input事件分类
Screen支持完全交互式用户体验开发的一个关键方面是支持输入事件并将输入和通知传递回应用程序的功能。输入事件表示用户与应用程序的某种交互。虽然Screen支持多个事件,但并非所有事件都是输入事件。事件可以广播,但输入事件始终只发送给一个接收者(通常是具有焦点的窗口或会话)。输入事件通常(但不一定)与物理设备相关联。例如,输入事件可能来自调用 screen_inject_event(),这可能与物理设备相关联,也可能不相关联。原创 2023-12-27 09:47:02 · 475 阅读 · 0 评论 -
4.10【共享源】外部合成
Screen通过使用根窗口和流支持外部合成(即使用非Screen的合成器)。当Screen不支持所需的效果时(例如页面卷曲效果、旋转效果、显示效果等),有时需要使用外部合成器。外部合成器使客户端能够实现自己的效果。使用外部合成器并不是为了取代Screen的合成管理器组件。Screen的合成管理器负责维护最终场景的合成以供显示。外部合成器本质上是一个消费者。它消费来自多个来源(例如窗口、流或两者)的内容,并反过来将内容呈现到自己的根窗口。原创 2023-12-26 17:14:02 · 1070 阅读 · 0 评论 -
5.3 显示窗口的内容(三)
合成是将多个内容源组合在一起的过程。当你在一个显示器上有多个可见窗口时,就会发生这种情况。Screen执行合成,同时确保所有应该可见的东西都可见,所有应该被覆盖的东西都被覆盖。正如你可能想到的那样,当你考虑单独的窗口和显示器的属性数量,以及多个窗口中的每一个时,如何组合图像几乎有无限种可能。由于最终图像需要正确构建,Screen 并不一定需要单独使用一种合成选项。例如,如果产生的结果图像不准确,即使性能有所提高,也是不合理的。原创 2023-12-27 01:00:00 · 910 阅读 · 0 评论 -
4.9【共享源】流的多生产者和消费者
本质上,一个生产者流可以与多个消费者流连接,但一个消费者流只能连接到一个生产者流。请注意,基数关系仅限于单个流,而不限于生产者或消费者应用程序。在这个例子中,Stream-p2被Stream-c1和Stream-c2连接并被它们消费。然而,因为Stream-c2已经在消费Stream-p2,它也不能再消费Stream-p1。如果消费者需要来自多个生产者的内容,那么它必须管理多个消费者流。对于本例中的消费者2,为了消费流p1和流p2,它必须创建两个单独的流,并将一个连接到流p1,一个连接到流p2。原创 2023-12-25 18:08:53 · 495 阅读 · 0 评论 -
4.8 【共享源】流的消费者
消费者从生产者那里获取内容,以进行下一步的处理。消费者从生产者那里获取内容,并对其进行某种形式的处理(例如图像处理、合成)。它最终也可以显示来自生产者的内容。通常,我们需要在消费者应用程序中执行接下来的步骤,以从生产者那里获取内容;原创 2023-12-25 14:44:40 · 767 阅读 · 0 评论 -
4.5 【共享源】流详解
流是屏幕API提供的屏幕外多缓冲渲染目标。流由应用程序而不是Screen本身的使用者使用。在窗口的情况下,最常见的是消费者是Screen,因为内容的存在就是为了在显示器上显示。然而,流的内容则被其他应用程序使用。这些应用程序可以与产生流内容的应用程序分开,可以在同一进程中,也可以在不同的进程中。使用流的常见情况是显示来自摄像机(或视频)的输出,在显示之前需要对摄像机的输出进行某种形式的图像处理。生产者流的缓冲区是通过调用 screen_create_stream_buffers() 创建的。原创 2023-12-23 22:27:17 · 1021 阅读 · 0 评论 -
4.4【共享源】克隆实战开发之截屏(二)
screen_read_display() 函数则用于捕获显示器的屏幕截图。我们需要在特权上下文中工作,以便可以完全访问系统的显示属性。我们可以通过调用具有 SCREEN_DISPLAY_MANAGER_CONTEXT 上下文类型的 screen_create_context() 来创建特权上下文。您进程必须具有 root 的有效用户 ID 才能创建此上下文类型。当捕获多个显示器的屏幕截图时,我们需要为每个显示器调用一次 screen_read_display()。原创 2023-12-23 22:09:17 · 467 阅读 · 0 评论 -
4.3【共享源】克隆实战开发之截屏(一)
screen_read_window() 函数用户捕获窗口的截图。此函数调用的上下文没有限制。当捕获多个无关窗口(即不在同一层次结构中的窗口)的屏幕截图时,则必须为每个窗口调用一次 screen_read_window()。接下来我们来详细了解下screen_read_window()函数。以下过程描述了如何使用Screen捕获单个窗口的屏幕截图。我们可以将生成的屏幕截图存储在pixmap或窗口缓冲区中以进行进一步操作。此特定过程描述了在pixmap缓冲区中捕获屏幕截图,然后将屏幕截图写入位图。原创 2023-12-22 22:40:44 · 1011 阅读 · 0 评论 -
4.1 共享源介绍
共享源表示允许在同一应用程序和进程内或不同应用程序和进程之间访问缓冲区及其内容。在共享源中,生产者指创建源内容并提供给另一个对象的对象(例如,进程、应用程序、窗口)。消费者是从另一个对象(例如,进程、应用程序、窗口)获取其源的任何对象。我们可以通过不同的方式共享或允许访问缓冲区。选择共享缓冲区的方式取决于我们的应用程序的目的、内容的类型,或两者兼而有之。例如,如果你想将内容在多个显示器上显示,那么你需要使用克隆的方式。但是,如果你需要控制消费者和生产者之间的更新速度,则建议使用流。原创 2023-12-21 21:29:54 · 399 阅读 · 0 评论 -
3.10【窗口】窗口使用示例(窗口缩放 三)
要从窗口的所有者本身进行放大,可以将源图像矩形设置得比窗口小。可以想象我们在一张图片中选取一部分进行放大的操作。屏幕使用默认位置 (0,0) 作为源矩形、窗口和显示器显示的左上角。要放大源图形的特定区域,必须设置源矩形的大小。源矩形表示我们打算显示的窗口缓冲区的区域。假设我们将目标对准样本源图像中心的矩形区域进行显示。要设置这些属性,请将相应的窗口属性与Screen API函数一起使用,即Screen_set_window_property_iv().原创 2023-12-20 22:00:45 · 919 阅读 · 0 评论 -
3.9【窗口】窗口使用示例(窗口缩放 二)
要以全屏模式显示源,缓冲区和窗口大小必须与显示器显示大小相同。屏幕使用默认位置 (0,0) 作为源矩形、窗口和显示器的左上角。当缓冲区、窗口和源与显示器大小相同时,源将以全屏模式显示。默认情况下,屏幕将缓冲区设置为与显示器大小相同。屏幕还默认将源矩形和窗口设置为与缓冲区大小相同。但是,在此示例中,我们说明了如何显式设置这些大小。例如,假设想以全屏模式显示我们的样本源图像。SCREEN_PROPERTY_SIZE 是一个父窗口属性。通常,应用程序只设置缓冲区和源矩形的大小。原创 2023-12-20 21:41:14 · 856 阅读 · 0 评论 -
3.8【窗口】窗口使用示例(窗口缩放 一)
设置的属性以实现最终的显示效果取决于这个窗口是父窗口还是所有者窗口。父窗口和所有者窗口只能分别设置某些属性。因此,根据对应有权限访问的属性,我们需要设置不同的属性以实现所需的显示效果。在示例中,一些矩形以不同的颜色显示。例如,源矩形和剪切矩形通常以与(窗口和显示)上不同的颜色进行显示。通过设置一组或多组特定的窗口属性,我们可以操纵窗口缓冲区的显示部分以及它在显示器上的显示位置。有关这些窗口属性的详细信息,可以参考Screen属性类型。几个窗口属性控制着屏幕如何显示窗口缓冲区(源图像)。原创 2023-12-20 21:23:47 · 864 阅读 · 0 评论 -
3.7【窗口】窗口使用示例(创建子窗口)
使用 screen_create_window_type() 创建子窗口。SCREEN_CHILD_WINDOW 类型的窗口必须与父窗口相关联,以便它在显示器上可见。为了创建一个子窗口,我们需要经历下面的接步骤。原创 2023-12-20 21:05:42 · 406 阅读 · 0 评论 -
3.6【窗口】窗口使用示例(创建窗口)
下面是一些简单的教程和指南,通过该指南,你可以轻松了解如何使用你的Windows。我们使用 screen_create_window_type() 创建应用程序窗口。要创建窗口,请执行以下操作:1.2 创建上下文。上下文描述了应用程序与底层窗口系统之间的关系1.3 创建一个窗口。 screen_create_window() 函数接受窗口变量和你在第一步中创建的上下文变量1.4 以字符串形式检索窗口ID,以便子窗口可以使用它加入此窗口的组。SCREEN_PROPERTY_ID属性在原创 2023-12-19 23:31:19 · 800 阅读 · 0 评论 -
3.5【窗口】窗口管理
窗口管理器和父窗口负责管理其他窗口,包括相应地处理来自应用程序和子窗口的事件。窗口管理器和父窗口都会收到它们负责的窗口的事件。他们应该根据这些事件采取相应的行动。在大多数情况下,事件会触发窗口可见性、大小或位置的更新。窗口管理器和父窗口被赋予特殊权限,可以更改其组或层次结构中窗口的属性。原创 2023-12-18 22:25:42 · 1261 阅读 · 0 评论 -
3.3【窗口】窗口的几何形状(二,窗口属性)
应用程序使用窗口来显示内容。一些属性决定了窗口及其内容的大小和位置。其他属性决定了窗口内容的外观和解释。了解窗口属性引用的两个坐标系非常重要。如果你知道你正在使用的坐标系,那么为你的窗口属性选择设置值会容易得多,并且会更有意义。原创 2023-12-17 18:54:39 · 65 阅读 · 0 评论 -
3.2【窗口】窗口的几何形状(一,窗口类型)
窗口的几何形状由一组属性定义,这些属性指示窗口及其内容的显示方式。定义窗口几何形状的属性集可分为两组:与显示相关的属性和与内容相关的属性。设置与显示相关的属性需要了解显示坐标系和窗口层次结构。原因是与显示相关的属性用于在显示上调整窗口的大小和位置。这些属性都与其父窗口相关,因此,你需要知道你的显示和窗口层次结构,以便正确设置这些窗口属性。通常,父窗口(如果存在)决定其子窗口的显示方式。与内容相关的属性使用源坐标系,与显示相关的属性不同,通常由窗口本身设置,而不是由其父窗口设置。原创 2023-12-17 18:24:18 · 113 阅读 · 0 评论 -
3.1【窗口】窗口简介与窗口组
Windows用于显示内容,并将不同生成的内容组合在一起。每个不同的呈现器都可以在同一个进程中,也可以在另一个或多个进程中。Screen中的窗口概念与你在传统窗口系统中可能习惯的略有不同。在Screen中,当内容来自不同来源时,应用程序被分成几个窗口,当应用程序的一个或多个部分必须独立于其他部分进行更新时,或者当应用程序试图面向多个显示器时。例如,在Adobe AIR中开发的用户界面可以叠加在本地文档查看器上,或者插件可以嵌入到Web视图或文档中。原创 2023-12-17 17:00:04 · 94 阅读 · 0 评论