本发明涉及车辆车载技术领域,特别是涉及一种车载数据传输方法和一种车载数据传输装置。
背景技术:
随着车辆的发展,用户查看车载影像的场景也逐渐增加,对车载数据传输稳定性的要求也逐渐提高。
在现有技术中,采用单循环buffer(缓冲区)。从上到下依次使用,用完还给底层,循环使用。这种方案在电子设备上并不会有问题,但是在车载系统中,由于传输线路特别长,并且实际运行过程中的颠簸震荡等使得传输链路总会有一些不稳定的情况发生。而这种单循环系统传输就不稳定,并且上层显示与底层传输互相影响。因为上层显示系统卡顿,就会运行很慢,返回kernel(内核)的buffer就不及时。底层因为拿不到buffer填充就会出现丢帧、溢出等异常。反之亦然,当底层硬件出问题时,不能及时的填充buffer,上层因为无法获取已经准备好的buffer,会产生状态紊乱甚至发生crash(宕机)问题。
技术实现要素:
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种车载数据传输方法和相应的一种车载数据传输装置。
为了解决上述问题,本发明实施例公开了一种车载数据传输方法,应用于车载系统,所述车载系统上部署有直接存储器访问dma,所述dma用于接收车载数据,所述方法包括:
硬件抽象层hal进程将所述dma接收的车载数据填充到预设的第一缓冲区;
复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区;
所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区。
可选地,所述将所述dma接收的车载数据填充到预设的第一缓冲区的步骤,包括:
确定所述预设的第一缓冲区;
将所述dma接收的车载数据填充到预设的第一缓冲区。
可选地,在所述复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区的步骤之后,所述方法还包括:
当所述车载数据复制完成后,hal管理进程释放所述预设的第一缓冲区。
可选地,所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区的步骤,包括:
所述hal进程调用所述预设的第二传输缓冲区中的空闲队列;
将所述车载数据写入所述空闲队列,得到传递队列;
将所述传递队列传输至显示缓冲区;
释放所述传递队列,得到空闲队列。
可选地,所述车载系统与应用程序连接,所述方法还包括:
应用程序进程将所述显示缓冲区内的车载数据传输至应用程序,所述应用程序用于展示所述车载数据。
可选地,所述预设的第一缓冲区以及所述预设的第二缓冲区为所述hal进程中,管理的缓冲区。
可选地,所述预设的第一缓冲区为图像缓冲区graphicbuffer,所述预设的第二缓冲区为本地窗口缓冲区nativewindowbuffer。
本发明实施例还公开了一种车载数据传输装置,应用于车载系统,所述车载系统上部署有直接存储器访问dma,所述dma用于接收车载数据,所述装置包括:
填充模块,用于硬件抽象层hal进程将所述dma接收的车载数据填充到预设的第一缓冲区;
复制模块,用于复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区;
传输模块,用于所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区。
本发明实施例还公开了一种车辆包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述车辆执行如上所述的一个或多个的方法。
本发明实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的方法。
本发明实施例包括以下优点:
本发明实施例通过硬件抽象层hal进程将所述dma接收的车载数据填充到预设的第一缓冲区;复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区;所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区。本发明实施例通过采用双缓冲区进行传输,实现了上层缓冲区与底层缓冲区分别循环使用,使得传输过程与显示过程做到互不影响稳定性,有效的解决了车载影像数据传输不稳定及显示与传输互相影响的问题。
附图说明
图1是现有车载数据传输方法示例的示意图;
图2是本发明的一种车载数据传输方法实施例的步骤流程图;
图3是本发明的一种车载数据传输方法示例的示意图;
图4是本发明的一种车载数据传输装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了现有车载数据传输方法示例的示意图;具体执行流程如下:
首先,在hal(hardwareabstractionlayer,硬件抽象层)进程管理的buffer中,申请本地窗口缓冲区nativewindowbuffer。申请成功后,所述nativewindowbuffer处于待填充状态;此时,map(地图)进入kernel(内核)空间。
等待硬件设备dma(directmemoryaccess,直接存储器访问)的数据进行填充;其中,硬件设备dma使得硬件设备上的数据无需经过cpu即可进行传输。
将硬件设备dma接收的数据填充至所述nativewindowbuffer后,将所述nativewindowbuffer标记为bufferdone(缓冲区满载);并通知surface(操作层)当前bufferdone。
surface获知bufferdone后,app(application,应用程序)通过surface获取bufferdone内的数据进行显示消费;显示后,surface将已经消费的buffer标记为dequeue(出列),以将buffer继续进行循环。
可见,现有车载数据传输方法通过单buffer进行传输,从上到下依次使用,上层用完还给底层,循环使用。但是由于在车载系统中的传输线路特别长,并且实际运行过程中意外震动情况的发生会使得数据的传输链路发生一些不稳定的状况,传输的过程因此受到阻滞,导致这种单循环系统传输就不稳定;并且上层显示与底层传输使用同一个buffer,当上层显示系统卡顿,循环的过程就会运行很慢,返回kernel的buffer就不及时。底层因为拿不到buffer填充就会出现丢帧、溢出等异常现象。反之亦然,当底层硬件出问题时,不能及时的填充buffer,上层因为无法获取已经准备好的buffer,会产生状态紊乱甚至发生crash(宕机)问题。当buffer循环出现问题时,上层显示与底层传输存在互相影响的现象,为此提出了本发明的车载数据传输方案。
参照图2,示出了本发明的一种车载数据传输方法实施例的步骤流程图,所述方法应用于车载系统,所述车载系统上部署有直接存储器访问dma,所述dma用于接收车载数据。
需要说明的是,在本发明实施例中,初始化时,在hal进程中管理的缓冲区,申请两份缓冲区,即申请预设的第一缓冲区和预设的第二传输缓冲区,预设的第一缓冲区用于底层硬件dma填充数据循环,预设的第二缓冲区用于上层显示循环。而缓冲区的使用必然是,用完即释放,在占用,归还给内核,然后循环利用。
dma是指在专门的硬件(dma控制器)控制下,实现高速外设和主存储器之间自动成批交换数据以尽量减少cpu(centralprocessingunit,中央处理器)干预的输入/输出操作方式。由于cpu根本不参加传送操作,因此就省去了cpu取指令、取数、送数等操作。内存地址修改、传送字个数的计数等等,也不是由软件实现,而是用硬件线路直接实现的。所以dma方式能满足高速i/o设备的要求,也有利于cpu效率的发挥。因此,在车载系统上部署dma,只要通过软件设置设置好硬件设备的源地址和车载系统底层的目的地址,就可以将一批数据从硬件设备的源地址搬运到车载系统底层的目的地址去而不经过cpu的干预进行。。
所述方法具体可以包括如下步骤:
步骤201,硬件抽象层hal进程将所述dma接收的车载数据填充到预设的第一缓冲区;
申请到的预设的第一缓冲区在申请成功时是处于待填充状态,预设的第一缓冲区内并未存储有任何的车载数据;此时,map可以进入内核空间;车载系统则通过dma接收到了底层硬件设备产生的车载数据;其中,车载数据可以是车载影像数据、车载图像数据等。这些车载影像数据、车载图像数据可以是车辆上部署的车载摄像头所拍摄到的影像或图像数据,则此时,硬件设备对应的则是车辆上部署的车载摄像头。车载系统通过dma接收到的车载数据则是车载摄像头发送的车载影像数据、车载图像数据。hal进程将通过dma接收到的车载数据填充到处于待填充状态的预设的第一缓冲区。
可选地,所述将所述dma接收的车载数据填充到预设的第一缓冲区的步骤,包括:
步骤s1,确定所述预设的第一缓冲区;
当需要对预设的第一缓冲区进行车载数据填充时,确定处于待填充状态的预设的第一缓冲区;由于,预设的第一缓冲区在申请成功时是处于待填充状态,是可以填充数据的;但是若预设的第一缓冲区已经填充了车载数据,此时的预设的第一缓冲区处于满载状态,其内是存储有数据的,并不能再被填充车载数据,只要等其所存储的车载数据被复制函数复制后,令其重回待填充状态时才可被填充,因此,需要确定处于待填充状态的预设的第一缓冲区,用于后续的填充车载数据。
步骤s2,hal进程将所述dma接收的车载数据填充到预设的第一缓冲区。
确定处于待填充状态的预设的第一缓冲区后,hal进程则可以将通过dma接收到来自硬件设备的车载数据,填充到处于待填充状态的预设的第一缓冲区,填充完成后将所述预设的第一缓冲区标记为缓冲完毕(bufferdone),此时预设的第一缓冲区处于待使用状态,预设的第一缓冲区内的车载数据可以被读取。
步骤202,复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区;
当预设的第一缓冲区填充完成,并标记为缓冲完毕,hal管理进程可以将预设的第一缓冲进程存储的车载数据取出,复制函数则可以将hal管理进程取出的预设的第一缓冲区内存储的车载数据,复制到预设的第二传输缓冲区;预设的第二传输缓冲区接收复制函数复制的车载数据,即此时,车载数据从底层进入上层,预设的第二传输缓冲区存储着车载数据;而由于复制函数已经将车载数据复制到上层中预设的第二传输缓冲区,预设的第一缓冲区并不需要参与上层显示车载数据的显示传输循环过程。从而将底层数据填充传输与上层的显示传输过程分开。其中,复制函数可以是memcpy(内存拷贝函数)函数,即可以在memcpy函数内将填充后的第一缓冲区内存储的车载数据复制至预设的第二传输缓冲区。
可选地,在所述复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区的步骤之后,所述方法还包括:
步骤s3,当所述车载数据复制完成后,hal管理进程释放所述预设的第一缓冲区。
当hal管理进程取出缓存完毕的第一缓冲区,并被复制函数对填充后的第一缓冲区内存储的车载数据复制操作完成后,hal管理进程释放被填充的预设的第一缓冲区,将预设的第一缓冲区标记为待填充状态的预设的第一缓冲区,并归还给内核空间,继续进行填充循环。
步骤203,所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区。
当车载数据复制至上层进行显示循环时,hal进程调用预设的第二传输缓冲区将所述车载数据进行存储、并传输至显示缓冲区,以使应用程序进程可以通过显示缓冲区获得车载数据,应用程序可以将车载数据进行展示。
可选地,所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区的步骤,包括:
步骤s4,所述hal进程调用所述预设的第二传输缓冲区中的空闲队列;
由于需要调用第二缓冲区进行车载数据的显示传递循环,hal进程调用预设的第二传输缓存区内的空闲队列来进行。
步骤s5,将所述车载数据写入所述空闲队列,得到传递队列;
确定调用的预设的第二传输缓存区内的空闲队列后,将复制至上层的车载数据写入空闲队列中,使得空闲队列存储着车载数据,得到传递队列,并且为了保证传递队列在传递车载数据的过程中车载数据的完整性,可以锁定传递队列,不允许其他操作对传递队列中的操作数据进行修改。
步骤s6,将所述传递队列传输至显示缓冲区;
将存储有车载数据的传递队列传输至显示缓冲区内。
步骤s7,释放所述传递队列,得到空闲队列。
当将传递队列传输至显示缓冲区内时,解锁释放传递队列,使得车载数据存放至显示缓冲区,等待应用程序进程提取至应用程序进行显示;同时传递队列的释放,可以继续得到空闲队列,供上层的显示传输循环使用。
可选地,所述车载系统与应用程序连接,所述方法还包括:
步骤s8,应用程序进程将所述显示缓冲区内的车载数据传输至应用程序,所述应用程序用于展示所述车载数据。
应用程序进程提取显示缓冲区内的车载数据并传输至应用程序,应用程序接收所述车载数据,并展示车载数据。
可选地,所述预设的第一缓冲区以及所述预设的第二缓冲区为所述hal进程中,管理的缓冲区。
可选地,所述预设的第一缓冲区为图像缓冲区graphicbuffer,所述预设的第二缓冲区为本地窗口缓冲区nativewindowbuffer。
本发明实施例通过硬件抽象层hal进程将所述dma接收的车载数据填充到预设的第一缓冲区;复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区;所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区。本发明实施例通过采用双缓冲区进行传输,实现了上层缓冲区与底层缓冲区分别循环使用,使得传输过程与显示过程做到互不影响稳定性,有效的解决了车载影像数据传输不稳定及显示与传输互相影响的问题。
为了更好的理解本发明实施例,以一具体的实施例进行说明;参照图3,示出本发明的一种车载数据传输方法示例的示意图;
在本发明实施例中,在hal进程管理的buffer中,申请两份缓冲区,分别为本地窗口缓冲区nativewindowbuffer和图像缓存区graphicbuffer,其中,图像缓存区用于底层硬件dma填充数据循环,本地窗口缓冲区用于上层显示循环。而无论是nativewindowbuffer还是graphicbuffer的使用过程必用完释放占用,归还给填充着,然后循环利用。
首先说明,车载数据在底层传递的过程,申请到的graphicbuffer处于待填充状态,此时的图像缓存区内并未存储有任何的车载数据,map进入kernel(内核)空间。hal进程将通过硬件设备dma接收的车载数据填充到预设的第一缓冲区,并将填充完成后标记为bufferdone,此时第一缓冲区处于待使用状态。并将bufferdone通知hal管理进程,hal管理进程则去取出donebuffer(满载缓冲区)内的车载数据,将该预设的第一缓冲区标记为待填充buffer,归还给内核填充循环。
在车载数据在底层和上层之间进行复制的过程是,当hal管理进程则去取出donebuffer(满载缓冲区)内的车载数据,车载系统可以通过memcpy函数,将hal管理进程则去取出donebuffer内的全部车载数据复制到nativewindowbuffer;预设的第二传输缓冲区接收memcpy函数复制的车载数据,即此时,车载数据从底层进入上层,nativewindowbuffer存储着需要进行显示的车载数据;而由于memcpy函数已经将车载数据从底层进行数据传输的graphicbuffer中复制到上层的nativewindowbuffer中,graphicbuffer并不需要继续参与上层显示车载数据的显示传输循环过程,而是将graphicbuffer归还给内核,进行数据的底层传输。从而将底层数据填充传输与上层的显示传输过程分开,同时也使得数据的填充的传输线路缩短,减少因为实际运行过程中的意外状况导致的现丢帧、溢出等异常现象的发生。
在memcpy函数复制车载数据的过程中,hal管理取出donebuffer内的全部车载数据,memcpy函数复制车载数据,hal进程则确定nativewindowbuffer内的队列信息,以确定可以存储传输车载数据的队列,memcpy函数将复制的车载数据存储在ativewindowbuffer中的队列。
而在车载数据显示传输循环的过程中,nativewindowbuffer中的队列已经存储着有memcpy函数复制的graphicbuffer中的全部车载数据,此时,nativewindowbuffer处于缓冲区满载状态,hal进程将nativewindowbuffer标记为bufferdone,此时,nativewindowbuffer处于待使用状态。并且通知bufferdone标记为enquene(入列),通过该队列,将车载信息传输至surface,surface用于与应用程序连接,使得车载数据可以展示在应用层。surface显示消费后,把已经消费的nativewindowbuffer标记dequeue(出列)继续进行显示传输的循环。可见,上层的显示数据传输的过程也并不需要下层的graphicbuffer参与,上层的显示数据传输过程与底层的数据填充过程时分开的。
此外,本发明实施例还可以与应用程序进行连接,应用程序进程可以提取显示缓冲区内的车载数据并传输至应用程序,应用程序接收所述车载数据,并展示车载数据。
本发明实施例通过硬件抽象层hal进程将所述dma接收的车载数据填充到graphicbuffer;memcpy函数将填充后的graphicbuffer内的车载数据复制至nativewindowbuffer中;所述hal进程调用所述nativewindowbuffer将所述车载数据传输至surface。本发明实施例通过采用双缓冲区进行传输,实现了上层缓冲区与底层缓冲区分别循环使用,使得传输过程与显示过程做到互不影响稳定性,即使在上层显示系统卡顿,导致系统运行很慢,返回内核的buffer不及时。但是由于底层graphicbuffer只用于底层的数据填充循环,buffer充足,有效的避免因拿不到buffer填充而导致的丢帧、溢出等异常现象。同样地,即使当底层硬件出问题时,nativewindowbuffer只用于上层显示数据的传输循环,hal进程可以及时的填充buffer,使得可以获取已经准备好的buffer,避免了车载系统产生状态紊乱甚至发生crash(宕机)的现象,有效的解决了车载影像数据传输不稳定及显示与传输互相影响的问题。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明的一种车载数据传输装置实施例的结构框图,所述装置应用于车载系统,所述车载系统上部署有直接存储器访问dma,所述dma用于接收车载数据,具体可以包括如下模块:
填充模块401,硬件抽象层hal进程将所述dma接收的车载数据填充到预设的第一缓冲区;
复制模块402,复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区;
传输模块403,所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区。
可选地,所述填充模块401包括:
第一锁定子模块,用于确定所述预设的第一缓冲区;
填充子模块,用于将所述dma接收的车载数据填充到预设的第一缓冲区。
可选地,所述装置还包括:
第一释放模块,用于当所述车载数据复制完成后,hal管理进程释放所述预设的第一缓冲区。
可选地,所述传输模块403包括:
调用子模块,用于所述hal进程调用所述预设的第二传输缓冲区中的空闲队列;
写入子模块,用于将所述车载数据写入所述空闲队列,得到传递队列;
传输子模块,用于将所述传递队列传输至显示缓冲区;
第二释放子模块,用于释放所述传递队列,得到空闲队列。
可选地,所述车载系统与应用程序连接,所述装置还包括:
显示模块,用于应用程序进程将所述显示缓冲区内的车载数据传输至应用程序,所述应用程序用于展示所述车载数据。
可选地,所述预设的第一缓冲区以及所述预设的第二缓冲区为所述hal进程中,管理的缓冲区。
可选地,所述预设的第一缓冲区为图像缓冲区graphicbuffer,所述预设的第二缓冲区为本地窗口缓冲区nativewindowbuffer。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种车辆,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述车辆执行如上所述的一个或多个的方法。
本发明实施例还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种车载数据传输方法和一种车载数据传输装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
1.一种车载数据传输方法,其特征在于,应用于车载系统,所述车载系统上部署有直接存储器访问dma,所述dma用于接收车载数据,所述方法包括:
硬件抽象层hal进程将所述dma接收的车载数据填充到预设的第一缓冲区;
复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区;
所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区。
2.根据权利要求1所述的方法,其特征在于,所述将所述dma接收的车载数据填充到预设的第一缓冲区的步骤,包括:
确定所述预设的第一缓冲区;
所述hal进程将所述dma接收的车载数据填充到预设的第一缓冲区。
3.根据权利要求2所述的方法,其特征在于,在所述复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区的步骤之后,所述方法还包括:
当所述车载数据复制完成后,hal管理进程释放所述预设的第一缓冲区。
4.根据权利要求1所述的方法,其特征在于,所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区的步骤,包括:
所述hal进程调用所述预设的第二传输缓冲区中的空闲队列;
将所述车载数据写入所述空闲队列,得到传递队列;
将所述传递队列传输至显示缓冲区;
释放所述传递队列,得到空闲队列。
5.根据权利要求1-4任一所述的方法,其特征在于,所述车载系统与应用程序连接,所述方法还包括:
应用程序进程将所述显示缓冲区内的车载数据传输至应用程序,所述应用程序用于展示所述车载数据。
6.根据权利要求1所述的方法,其特征在于,所述预设的第一缓冲区以及所述预设的第二缓冲区为所述hal进程中,管理的缓冲区。
7.根据权利要求6所述的方法,其特征在于,所述预设的第一缓冲区为图像缓冲区graphicbuffer,所述预设的第二缓冲区为本地窗口缓冲区nativewindowbuffer。
8.一种车载数据传输装置,其特征在于,应用于车载系统,所述车载系统上部署有直接存储器访问dma,所述dma用于接收车载数据,所述装置包括:
填充模块,用于硬件抽象层hal进程将所述dma接收的车载数据填充到预设的第一缓冲区;
复制模块,用于复制函数将填充后的第一缓冲区内的车载数据复制至预设的第二传输缓冲区;
传输模块,用于所述hal进程调用所述预设的第二传输缓冲区将所述车载数据传输至显示缓冲区。
9.一种车辆,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述车辆执行如权利要求1-7所述的一个或多个的方法。
10.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7所述的一个或多个的方法。
技术总结