虽然裸机环境下,所有arm-2d的API都是以同步模式来工作的(即退出API就意味着任务完成或者出现了错误)——理论上的确完全无需arm_2d_op_wait_async(NULL)调用来实现所谓的同步,但以“异步工作模式”使用API写出来的代码拥有最高的兼容性——可以同时在RTOS环境和裸机环境下使用,因此,本系列文章统一以异步模式为蓝本...
虽然裸机环境下,所有arm-2d的API都是以同步模式来工作的(即退出API就意味着任务完成或者出现了错误),理论上的确完全无需arm_2d_op_wait_async(NULL)调用来实现所谓的同步,但以“异步工作模式”使用API写出来的代码拥有最高的兼容性——可以同时在RTOS环境和裸机环境下使用,因此,本系列文章统一以异步模式为蓝本来讲...
于是Arm在大家灼热的目光下弱弱的在Github上扔了一个叫Arm-2D的显卡驱动标准,提出了这样一个议案: “要不……我提供一个API抽象层?” 芯片厂家:你只要按照我的标准为你的2D加速引擎写好驱动就行了——分分钟获得所有以Arm-2D作为底层的GUI的支持; GUI提供商:但凡你GUI中需要用到硬件加速的地方,都可以直接调用...
“ 人在大学,刚刚下课 ”,根本没能力自己来移植Arm-2D到开发板上; 纯粹对Arm-2D的API感到好奇, 但在了解Arm-2D的API之前,并不觉得这值得自己亲自动手去做一下移植—— 如果有一个移植好的平台让自己玩就行了; 纯粹喜欢在各类模拟器上玩硬件 …… 说白了就是懒,是拖延症,得治…… 其实,从诞生到现在四个...
去年,Arm在其Github上发布了一个针对全体Cortex-M处理器的2D图形加速库——Arm-2D(暂定名)。在其Github仓库的文档中可以看出,Arm-2D致力于打造一层抽象层,为芯片供应厂商提供的硬件以及GUI厂商提供的图形图形库之间的接口设立一层驱动标准。并且Arm-2D也提供了一系列的2D图形加速API。
每个人都可以专注于扩大自己的东东。例如,通过为其专有的 2D 加速器添加 arm-2D 适配器驱动程序,硬件厂商可以获得来自 GUI 供应商的广泛支持,这些供应商在 ARM-2D API 上构建 / 移植他们的 GUI 代码。 上图列出了 Arm-2D 所处的位置。介于硬件厂商和图形组件之间,做到了承上启下的作用,棒棒哒!!
而Arm-2D的PFB技术是可以支持任意大小的,哪怕只有8*8大小的PFB也可以支持任意大小的屏幕,最关键的是用户界面API是不用关心PFB的大小的,Arm-2D都为我们弄好了,我们可以假装拥有完整的Frame Buffer。 3、部署Arm-2D与PFB性能测试 Arm-2D 的PFB技术这么好,还省RAM,那他有什么不足吗?显而易见的就是性能问题,...
去年,Arm在其Github上发布了一个针对全体Cortex-M处理器的2D图形加速库——Arm-2D(暂定名)。在其Github仓库的文档中可以看出,Arm-2D致力于打造一层抽象层,为芯片供应厂商提供的硬件以及GUI厂商提供的图形图形库之间的接口设立一层驱动标准。并且Arm-2D也提供了一系列的2D图形加速API。
Arm-2D几乎所有API的基本操作单位都是“贴图(Tile)”,它的数据结构定义如下: /*!* \brief a type for tile**/typedefstructarm_2d_tile_tarm_2d_tile_t;structarm_2d_tile_t{implement_ex(struct {uint8_tbIsRoot :1;//!< is this tile a root tileuint8_tbHasEnforcedColour :1;//!< does this...
还可以使用API函数arm_2d_tile_generate_child动态生成Child Tile,如下所示: arm_2d_region_ttChildTileRegion = {.tSize = {.iWidth =10,.iHeight =10,},.tLocation = {.iX =0,},};arm_2d_tile_tChildTile;//! generate a child tile for texture pavingarm_2d_tile_generate_child(ptTarget, |...