光感是什么意思| 月经血是黑色的是什么原因| 春五行属什么| 什么是余额宝| 陈五行属什么| 萎靡是什么意思| 白羊歌词是什么意思| 阴超可以检查出什么| 什么叫自私的人| 彩礼是什么意思| 尿血是什么症状| 电压不稳定是什么原因| 1993属什么生肖| 2013年五行属什么| 舌下腺囊肿挂什么科| 吃过饭后就想拉大便是什么原因| 在什么前面| 南京为什么那么多梧桐树| 道心是什么意思| 总蛋白是什么意思| 婴儿大便隐血阳性是什么意思| 不安腿是什么症状| 诸葛亮是什么星座| 尿酸高吃什么中药能降下来| 心直口快是什么意思| 反文旁和什么有关| 勇敢的生肖是什么生肖| 捞佬是什么意思| 可悲可叹是什么意思| 男生的隐私长什么样| 梦见修路什么意思| pm是什么的缩写| 吃什么尿酸降得快| 道理是什么意思| 经期可以喝什么茶| 尿里有结晶是什么原因| pt是什么单位| 酒精和碘伏有什么区别| 吴亦凡为什么叫牛| 5.29是什么星座| pd999是什么金| 10月生日是什么星座| 梦见翻车是什么预兆| caring什么意思| 苹果和什么榨汁减肥| 天经地义的意思是什么| 肠鸣是什么原因| 梅长苏结局是什么| 叉烧是什么| 查颈椎挂什么科| 六味地黄丸治什么| 去火吃什么| 什么呢| 膝盖小腿酸软无力是什么原因| 头七是什么意思| 身份证照片穿什么颜色衣服| 跑步大腿痒是什么原因| dollars是什么意思| 皓五行属什么| 什么人不能喝牛奶| 什么是碧玺| PSV是什么意思| 多发纳氏囊肿是什么意思| 33周岁属什么生肖| 睡不着觉去医院挂什么科| 为什么疤痕会增生| 吃飞醋是什么意思| 绿野仙踪是什么意思| 钛色是什么颜色| 心包积液挂什么科| 杰瑞是什么品种的老鼠| 钓鲈鱼用什么饵最好| 记忆力差吃什么药| 遇人不淑什么意思| 曷是什么意思| 213什么星座| 湿气重有什么症状| 心心相印是什么生肖| 血糖有点高吃什么食物好| 贴膏药发热是什么原因| 新疆是什么民族| 三八送什么花| 胎儿右肾盂分离是什么意思| 血红蛋白是指什么| 出炉是什么意思| 破军星是什么意思| 冷暖自知是什么意思| 二月七号是什么星座| 虾不能和什么东西一起吃| 初中什么时候开学| rv医学上是什么意思| 肝内高回声什么意思| 心累是什么原因| 经常打屁是什么原因| 早起嘴巴苦什么原因| 疱疹性咽峡炎吃什么食物| 食管裂孔疝是什么病| 猫的五行属什么| 蚊子咬了用什么药膏| 力不从心什么意思| 一是什么意思| 八面玲珑是什么数字| 85年属什么的生肖| 根基是什么意思| 呼吸困难是什么原因引起的| 男人皮肤黑穿什么颜色的衣服好看| 路人皆知的上一句歇后语是什么| 接龙是什么意思| 为什么要做微信营销| 双子男和什么星座最配| 01年的属什么| i是什么| tf是什么意思| 爱出者爱返福往者福来是什么意思| 当兵什么时候体检| 秦始皇的原名叫什么| 无间是什么意思| 脂肪肝什么东西不能吃| 什么是子宫憩室| 怕什么来什么| 浮瓜沉李什么意思| 14数字代表什么意思| 1953年属什么生肖| 左眼上眼皮跳是什么预兆| 两小无猜什么意思| 去医院看嘴唇挂什么科| 女人心肌缺血吃什么药| 尾盘跳水意味着什么| 淮山是什么| 养精蓄锐是什么意思| 吃了狗肉不能吃什么| 扁桃体结石有什么危害| 手不自主颤抖是什么病| 5月14日什么星座| 横行霸道的意思是什么| 端午是什么时候| 力不从心的意思是什么| 输氨基酸对身体有什么好处和坏处| 肌酸激酶什么意思| 夏天结婚新郎穿什么衣服图片| 女性睾酮低意味着什么| a216是什么材质| 荔枝可以做什么菜| 男人为什么会遗精| ldl是什么意思| 肝不好吃什么水果| 胎儿头偏小是什么原因引起的| 桃李满天下是什么生肖| 琋字五行属什么| 8月24是什么星座| 眼压高是什么症状| 功名利禄是什么意思| 护身符是什么意思| 癸亥五行属什么| 吃海带有什么好处和坏处| 减肥中午吃什么| 什么含钾最多| 舌头麻木是什么原因引起| 普瑞巴林是什么药| pn医学上是什么意思| 微信转账为什么要验证码| 偏安一隅是什么意思| 肋骨骨折吃什么食物好得快| 来月经量少吃什么可以增加月经量| 糖尿病不能吃什么| 西瓜和什么相克| 例假吃什么水果好| 经期有血块是什么原因| 血虚吃什么好| 不放屁是什么原因| 小便无力吃什么药| 吃三七有什么功效| 痛风吃什么药效果最好| 局部癌变是什么意思| 牛牛是什么| 脑梗是什么原因引起的| 身体水肿是什么原因引起的| gp什么意思| 骨质硬化是什么意思| 王八吃什么| vc是什么| 男人沉默了说明什么| 什么是老年斑图片| 反驳是什么意思| 手臂疼痛挂什么科| 心脏支架不能吃什么| 一声什么| 说一个人轴是什么意思| 法国公鸡是什么牌子| 不想吃油腻的东西是什么原因| otc属于什么药| 6月7日是什么星座| 爱做梦是什么原因应该怎样调理| 三月初九是什么星座| 耳石症挂什么科| pdt是什么意思| 舌头发白有齿痕是什么原因| 吃苦瓜对身体有什么好处| 发改局是做什么的| 机警是什么意思| 尿液结晶是什么意思| 定性和定量是什么意思| 舌头上有齿痕是什么原因| 爷爷和孙子是什么关系| 什么重什么轻| 双鱼座和什么星座最配| 月经提前10天正常吗是什么原因| 芒果吃了有什么好处和坏处| 老狐狸是什么意思| 老是犯困想睡觉是什么原因| 空调感冒吃什么药| 肾病什么东西不能吃| 关东煮为什么叫关东煮| 吃什么水果可以降火| 孕妇梦见棺材是什么征兆| 聚少离多是什么意思| 亡羊补牢的寓意是什么| 夏天什么时候最热| 世界上最高的塔是什么塔| 咳嗽呕吐是什么原因| 八珍胶囊适合什么人吃| 长绒棉和全棉什么区别| 备皮什么意思| 手指发痒是什么原因| 毛发旺盛女生什么原因引起的| 非转基因是什么意思| 燃烧卡路里是什么意思| 大姨妈不能吃什么水果| 左肾小结石是什么意思| lot什么意思| 甲亢吃什么好的更快| 忠于自己是什么意思| 很多条腿的虫子叫什么| 风热感冒吃什么药最快| 罗布麻是什么东西| zara中文叫什么| 血常规什么颜色的管子| 保税仓是什么意思| 身体欠佳什么意思| 肺部感染挂什么科| 房产证和土地证有什么区别| 包是什么结构| 六味地黄丸什么时候吃最好| 下连是什么意思| 胃疼和肚子疼有什么区别| 殊荣是什么意思| 木堂念什么| 月经来了头疼是什么原因导致的| 王八看绿豆是什么意思| 阴虚吃什么调理| 娅字五行属什么| 积聚病什么意思| 攻读学位填什么| 脚气用什么药膏| 什么什么望外| 33朵玫瑰花代表什么意思| 高大上是什么意思| 软件测试需要学什么| 心衰是什么意思| cc是什么牌子| 女人下身干燥无水是什么原因| 山代表什么动物| 幽门螺杆菌是什么意思| 推手是什么意思| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 活动中心 ? 板卡试用 ? 【换取逻辑分析仪】RGB屏幕移植ARM-2D库

共4条 1/1 1 跳转至

【换取逻辑分析仪】RGB屏幕移植ARM-2D库

工程师
2025-08-04 22:57:56   被打赏 35 分(兑奖)     打赏
百度 有数据称,2017年时华侨城已在全国范围内陆续输出管理20余家5A级景区。

1、简介

    ARM-2D 是 Arm 公司推出的一款专为嵌入式系统优化的 2D 图形加速库,旨在提高微控制器(MCU)和嵌入式处理器的 2D 图形处理性能。它提供了一套轻量级、高效的 API,可用于 UI 渲染、图像操作和动画加速,特别适用于资源受限的嵌入式设备,如智能手表、工业显示屏和车载仪表盘等。

ARM-2D 主要特点

            可见,ARM-2D基本支持在所有的Cortex-M处理器上运行,即便是最入门级的M0处理器。ARM-2D是图形加速渲染库,不是一个专门用于GUI设计的,但它仍然提供有基本的GUI设计选项(对用户是真爱啊,点赞o( ̄▽ ̄))。它的巨大作用在于将能够统一LCD屏幕的驱动接口,为不同类型的处理器之间移植GUI应用提供便捷。同时提供软硬件渲染加速,在没有图形硬件加速外设的情况下,依旧能够提供优异的软件加速效果。

    2、ARM-2D移植

    以开发板STM32H7S78-DK为例,IDE工具为MDK Keil,介绍ARM-2D的移植过程。

    STM32H7S78-DK板载的屏幕接口为RGB并口,内部不含GRAM,因此需要使用到外部RAM。这篇文章介绍了这款屏幕的驱动过程,完成LTDC驱动后,就能够直接向屏幕写入图像数据了

    【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕-电子产品世界论坛

    e45ce793dd8ca0d8bf347dd9cc48f164.jpg

    将LTDC驱动色彩模式为RGB565

    41R[)MO1E3A0}H63[~N34QO.png

    定义显存地址,屏幕尺寸为800*480

    image.png

    #define GLCD_WIDTH     800
    #define GLCD_HEIGHT    480
    
    #define LCD_DB_ADDR   0x90000000
    #define LCD_DB_PTR    ((volatile uint16_t *)LCD_DB_ADDR)

    打开Keil的RTE配置窗口,勾选以下的ARM-2D库相关选项

    8N([%K6UZ9Q2VIXXMKEA](N.png

    如果提示缺少其他组件,则勾选左下角的Resolve,自动完成缺少组件的勾选

    image.png

    展开Acceleration,滑动至底部找到以下两个配置文件

    $W}4BVZ7W[}~[7X5X]1R)0Q.png

    arm_2d_cfg.h文件参数设置,支持由代码编辑转为面板编辑模式

    (9G%IUX~88K`X13(BAMNAUW.png

    arm_2d屏幕适配器文件设置,如果仅做简单移植只需关注方框内的参数设置即可,屏幕宽度、高度设置,PFB是屏幕缓存块大小设置,缓存块越大意味着屏幕刷新率会有所提升,但RAM占有量会提高,如果编译提示内存不足可以尝试减小PFB大小。

    RJS@2)GZMWNR@TV~B8YPZVA.png

    main.c文件添加头文件

    /* Private includes ----------------------------------------------------------*/
    /* USER CODE BEGIN Includes */
    #include "string.h"
    #include "arm_2d_helper.h"
    /* USER CODE END Includes */

    此时编译工程,会报错缺少Disp0_DrawBitmap函数的定义,这个函数声明来自arm-2d库,需要用户手动实现它的定义

    %76E0)1B]V4(8%$587KRQ58.png

    int32_t Disp0_DrawBitmap (uint32_t x, 
                             uint32_t y, 
                             uint32_t width, 
                             uint32_t height, 
                             const uint8_t *bitmap) 
    {
        volatile uint16_t *phwDes = LCD_DB_PTR + y * GLCD_WIDTH + x;//RGB屏幕显存基地址+坐标偏移
        const uint16_t *phwSrc = (const uint16_t *)bitmap;
        for (int_fast16_t i = 0; i < height; i++) {
            memcpy ((uint16_t *)phwDes, phwSrc, width * 2);         //逐行显示
            phwSrc += width;
            phwDes += GLCD_WIDTH;
        }
    		return 0;
    }

    LTDC初始化、运行arm-2d自带Demo

      /* USER CODE BEGIN 2 */
    	HAL_LTDC_SetAddress(&hltdc,(uint32_t)LCD_DB_ADDR,0);//将LCD显存地址更改为LCD_DB_ADDR
    	HAL_LTDC_Reload(&hltdc,LTDC_RELOAD_IMMEDIATE);      //重新加载LCD数据
    	arm_irq_safe {
    	     arm_2d_init();         //初始化arm-2d(安全模式)
    	}
    	disp_adapter0_init();       //初始化屏幕适配器
      /* USER CODE END 2 */
    
      /* Infinite loop */
      /* USER CODE BEGIN WHILE */
      while (1)
      {
        /* USER CODE END WHILE */
    
        /* USER CODE BEGIN 3 */
        disp_adapter0_task();       //运行arm_2d显示应用
      }
      /* USER CODE END 3 */

    3、实验结果

    默认的Demo如下图所示,同时显示当前帧率、Cpu占用、lcd刷新

    image.png

    这款开发板主控支持I/D Cache加速,在程序中开启

      /* USER CODE BEGIN 1 */
      SCB_EnableICache();    //Enable ICache  
     
      SCB_EnableDCache();    //Enable DCache  
      /* USER CODE END 1 */

    刷新速率改善显著,尝试增大PFB大小

    image.png

    更改PFB大小,高度PFB由48改为240

    `K8WL9`DEUTZ7H2(X8US6MW.png

    帧率大幅提高,并且cpu占有率由50%降至37%

    image.png

    4、arm-2d性能评测应用

    arm-2d内置了两个性能评测应用,用于评估当前主控芯片的GUI渲染性能,勾选第一个评测应用

    Z2$IB[_8T55OL$%_L]9]]T3.png

    main.c文件修改,导入评测应用头文件

    /* Private includes ----------------------------------------------------------*/
    /* USER CODE BEGIN Includes */
    #include "string.h"
    #include "arm_2d_helper.h"
    #include "arm_2d_disp_adapters.h"
    #include "arm_2d_scenes.h"
    #include "arm_2d_benchmark.h"
    /* USER CODE END Includes */

    运行性能评测应用

      /* USER CODE BEGIN 2 */
    	HAL_LTDC_SetAddress(&hltdc,(uint32_t)LCD_DB_ADDR,0);//将LCD显存地址更改为LCD_DB_ADDR
    	HAL_LTDC_Reload(&hltdc,LTDC_RELOAD_IMMEDIATE);      //重新加载LCD数据
    	arm_irq_safe {
    	     arm_2d_init();         //初始化arm-2d(安全模式)
    	}
    	disp_adapter0_init();       //初始化屏幕适配器
    	arm_2d_run_benchmark();     //开启性能评测
      /* USER CODE END 2 */
    
      /* Infinite loop */
      /* USER CODE BEGIN WHILE */
      while (1)
      {
        /* USER CODE END WHILE */
    
        /* USER CODE BEGIN 3 */
        disp_adapter0_task();          //运行arm_2d显示应用
      }
      /* USER CODE END 3 */

    实验效果,当前动画demo的刷新率为42fps

    screenshots.gif






    关键词: ARM-2D移植    

    助工
    2025-08-04 10:39:50     打赏
    2楼

    感谢分享


    工程师
    2025-08-04 19:16:36     打赏
    3楼

    大佬对这个研究比较有意义。


    专家
    2025-08-04 20:45:52     打赏
    4楼

    这个2D应用的开发对资源要求挺高吧?


    共4条 1/1 1 跳转至

    回复

    匿名不能发帖!请先 [ 登陆 注册 ]
    赵丽颖的真名叫什么 什么叫五行 8.8是什么星座 低脂是什么意思 眼睛为什么会近视
    房颤吃什么药 大拇指指甲凹凸不平是什么原因 家庭教育是什么 带状疱疹是什么样的 乌鸡白凤丸适合什么人吃
    83属什么生肖 左下腹疼痛挂什么科 白细胞低有什么危险 生理盐水和食用盐水有什么区别 朝鲜的货币叫什么
    右手手指头麻木是什么病的前兆 尿毒症前兆是什么症状表现 子叶是什么 什么样的山峰 白露是什么意思
    共产主义社会是什么样的社会hcv8jop9ns9r.cn pha是什么意思hcv9jop5ns8r.cn 肌无力挂什么科hcv8jop5ns8r.cn 歪理是什么意思hcv8jop3ns1r.cn 洋芋是什么东西hcv8jop2ns1r.cn
    不放屁是什么原因hcv9jop3ns7r.cn 本能反应是什么意思hcv9jop0ns7r.cn 回声欠均匀是什么意思hcv8jop7ns7r.cn 肝硬化有什么症状hcv8jop6ns0r.cn 为什么脸上长痣越来越多hcv9jop4ns3r.cn
    黄芪什么人不能吃hcv8jop9ns6r.cn 腺样体增生是什么意思tiangongnft.com 生长激素分泌的高峰期是什么时候hcv9jop3ns7r.cn 移交是什么意思hcv7jop4ns6r.cn 自汗恶风是什么意思hcv8jop0ns2r.cn
    ol什么意思hcv8jop7ns0r.cn 苦瓜和什么不能一起吃hcv8jop2ns8r.cn 有品味什么意思hcv7jop6ns3r.cn 徘徊是什么意思hcv9jop3ns0r.cn 退化是什么意思hcv9jop7ns2r.cn
    百度