Melis4.0[D1s]:4.测试笔记 - 内嵌的显示命令

news/2024/5/1 12:01:48/文章来源:https://blog.csdn.net/hwd00001/article/details/129924950

文章目录

  • 1.配置将显示测试源码包含进工程(默认是包含了)
  • 2.不要启动melis桌面系统
  • 3.开始测试
    • 3.1 disp 命令
      • 3.1.1 disp不带参数时,打印显示信息:
      • 3.1.2 disp -c 0 8 测试4种颜色
    • 3.2 disp_layer_cfg 命令
    • 3.3 disp_mem 对显示内存写入内容
      • 3.3.1 disp_mem 测试源码有错误,更正

melis内嵌了很多测试示例,今天测试了一下显示部分的命令,开发板是mango-MQ-r-F133。

1.配置将显示测试源码包含进工程(默认是包含了)

在这里插入图片描述

2.不要启动melis桌面系统

修改《startup.sh》(位于目录 D1s-Melis/projects/d1s-mq/data/UDISK/startup.sh):
在这里插入图片描述
经过上面的修改,再编译,烧录,运行,就只能通过串口命令行和Melis的uart0进行交互。
在控制台输入 help,出现可用的全部命令:

msh />help
RT-Thread shell commands:
drvavs           - rtthread avs test code
test_dms_uart    - test dms uart
power_info       - power_info
sdmmctest        - SdmmcTestCommand
aplay            - Play music
arecord          - Record voice
aduplex          - Playback and Record
amixer           - amixer utils
soundcard        - soundcard info
disp             - disp cmd
hal_gpio         - gpio hal APIs tests
hal_twi          - twi hal APIs tests
hal_spi          - spi hal APIs tests
hal_gpadc        - gpadc hal APIs tests
hal_rtc          - rtc hal APIs tests
hal_udc          - udc hal APIs tests
hal_udc_dl_adjust - udc hal driverlevel adjust
hal_udc_ed_test  - udc hal ed tests
hal_hci_rm       - hci hal APIs tests
hal_hci          - hci hal APIs tests
hci_dl_adjust    - hci driver level adjust
hci_ed_test      - hci hal ed tests
disp_mem         - disp mem
disp_layer_cfg   - disp set layer
disp_layer_alpha_test - disp_layer_alpha_test
disp_layer_scal_test - disp_layer_scal_test
disp_layer_format_test - disp_layer_format_test
disp_lbc_test    - disp lbc test
ths_gt           - thermal get temp
cmd_hal_twi      - hal twi test code
cmd_drv_twi      - rtthread twi test code
willow_close     - willow_close
willow_test      - willow_test
cedar_close      - cedar_close
cedar_test       - cedar_test
audio_close_test - audio_close_test
audio_test       - audio_play_test
record_close     - record_close_test
wav_rec_test     - wav_rec_test
mp3_rec_test     - mp3_rec_test
wintest          - wintest
save_layer_fb    - mod_save_layer_fb
display_switch   - display_switch
mod_display_testcmd - mod_display_testcmd
lcdbl_num        - lcdbl_num
lcdbl_off        - lcdbl_off
lcdbl_on         - lcdbl_on
layer_open       - mod_layer_open
layer_close      - mod_layer_close
install_mod_display - install_mod_display
layer_request    - mod_layer_request
layer_release    - mod_layer_release
get_lcd_size     - get_lcd_size
lcdget_backcolor - lcdget_backcolor
lcdset_backcolor - lcdset_backcolor
mod_display_scaler_test - mod_display_scaler_test
mod_display_alpha_test - mod_display_alpha_test
lbc_show_test    - lbc_show_test
yuv_show_test    - yuv_show_test
argb_show_test2  - argb_show_test2
argb_show_test   - argb_show_test
list_device      - list device in system
list_timer       - list timer in system
list_memheap     - list memory heap in system
list_msgqueue    - list message queue in system
list_mailbox     - list mail box in system
list_mutex       - list mutex in system
list_event       - list event in system
list_sem         - list semaphore in system
query_thread     - query thread
list_thread      - list thread
version          - show RT-Thread version information
helloworld       - say hello to RT-Thread
free             - Show the memory usage in the system.
ps               - List threads in the system.
help             - RT-Thread shell help.
hello            - say hello shell
echo             - echo string to file
df               - disk free
mkfs             - format disk with file system
mkdir            - Create the DIRECTORY.
pwd              - Print the name of the current working directory.
cd               - Change the shell working directory.
cat              - Concatenate FILE(s)
mv               - Rename SOURCE to DEST.
cp               - Copy SOURCE to DEST.
adbd             - adbd service
fork             - create a thread to run a command
chip_name        - chip name information.
uname            - cat system.
slabinfo         - slab information.
listirq          - list irq handler.
m                - modify memory or register value
p                - print memory or register value
$                - enter panic mode
reboot           - reboot or jump to efex
top              - top task
mmlk             - memory leak check command
backtrace        - backtrace command
getprop          - getprop service
date             - See now date
exit             - Exit current console
send_key         - send a to keyboar of input system
uninsmod         - uninstall a mod
insmod           - install a mod
update           - update system
mtop             - test bus width
ths_set_s        - thermal set strategy
tail             - read file from tail
touch            - create empty file
grep             - search string from file
hd               - the same as 'hexdump -C'
hexdump          - dump binary data in decimal
ll               - the same as 'ls -kl'
ls               - list file or directory
rm               - Remove(unlink) the FILE(s).
rwcheck          - do read / write check
umount           - umount filesystem
mount            - mount filesystem
list_fd          - list file descriptor
mount_table      - show mount table

其中和显示相关的有几个命令:
在这里插入图片描述

3.开始测试

3.1 disp 命令

disp命令的相关源码位于 《D1s-Melis/ekernel/drivers/hal/source/disp2/disp/disp_debug.c》 文件里面:
在这里插入图片描述

命令 参数含义
disp 不带参数打印显示信息
disp -ccolorbar 颜色测试
disp -r打印显示相关的寄存器数内容
disp -sswitch display ,切换显示接口
disp -ddump de data
disp -eenhance,设置 enhance相关参数
disp -bbacklight,背光设置

3.1.1 disp不带参数时,打印显示信息:

msh />disp
screen 0:
de_rate 300000000 hz, ref_fps:      59
mgr0: 800x480 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false]
dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]lcd output      backlight(192)  fps:58.4         800x 480err:0   skip:4  irq:54192       vsync:0 vsync_skip:0BUF    enable ch[0] lyr[0] z[0] prem[N] a[pixel 255] fmt[  0] fb[ 640, 480; 640, 480; 640, 480] crop[   0,   0, 640, 480] frame[  80,   0, 640, 480] addr[0x40f5f000,0x00000000,0x00000000] flags[0x       0] trd[0,0]

3.1.2 disp -c 0 8 测试4种颜色

# disp -c 表示颜色测试,下面的 0表示screen0,8 表示显示内嵌的4种颜色
disp -c 0 8 

测试效果:
在这里插入图片描述
源码中对最后面一个参数的注释:

	/*val:*//*0:DE-->tcon-->other interface*//*1-7:tcon or edp or other device's builtin patten*//*for tcon:*//*1:color bar*//*2:grayscale check*//*3:black and white check*//*4:all 0*//*5:all 1*//*6:reserve*//*7:Gridding*//*for edp:*//*1:colorbar*//*2:mosaic*/

测试下面的命令:

disp -c 0 1 

效果:
在这里插入图片描述
继续测试:

disp -c 0 2 

效果,有些灰阶:
在这里插入图片描述
继续测试:

disp -c 0 3 

效果和 disp -c 0 2 接近,纯灰,没有阶梯感。
disp -c 0 4 是全部黑色, disp -c 0 5 是全部白色。
disp -c 0 6 disp -c 0 8 一样。
继续测试:

disp -c 0 7 

网格效果:
在这里插入图片描述

3.2 disp_layer_cfg 命令

这个命令的源文件是 《D1s-Melis/ekernel/drivers/hal/test/disp2/disp_layer_cfg.c》
在这里插入图片描述
本命令用于对下面结构体赋值:

struct test_layer_cfg
{int screen_id;int layer_id;int mem_id;struct disp_layer_config layer_cfg;int addr_map;int width,height;//screen sizert_device_t dispfh;//device node handleFILE *fh;//picture resource file handlevoid* mem;int clear;//is clear layerint fullscreen;//is full screenchar filename[32];
};
struct disp_layer_config {struct disp_layer_info info;bool enable;unsigned int channel;unsigned int layer_id;
};
struct disp_layer_info {enum disp_layer_mode mode;unsigned char zorder;/* 0: pixel alpha;  1: global alpha;  2: global pixel alpha */unsigned char alpha_mode;unsigned char alpha_value;	/* global alpha value */struct disp_rect screen_win;	/* display window on the screen */bool b_trd_out;		/* 3d display */enum disp_3d_out_mode out_trd_mode;	/* 3d display mode */union {unsigned int color;	/* valid when LAYER_MODE_COLOR */struct disp_fb_info fb;	/* valid when LAYER_MODE_BUFFER */};unsigned int id; /* frame id, the id of frame display currently */
};
命令 参数设置变量
disp_layer_cfg -chtest_layer_cfg.screen_id
disp_layer_cfg -mem_idtest_layer_cfg. mem_id
disp_layer_cfg -channel_idtest_layer_cfg. layer_cfg.channel
disp_layer_cfg -in_fbtest_layer_cfg. layer_cfg.info.fb.format
disp_layer_cfg -layer_modetest_layer_cfg.layer_cfg.info.mode
disp_layer_cfg -alphatest_layer_cfg.layer_cfg.info.alpha_value
disp_layer_cfg -screen_wintest_layer_cfg. layer_cfg.info.screen_win
disp_layer_cfg -layer_idlayer_cfg.layer_id

这个命令用到下面的实例:

disp_layer_cfg  -in_fb 0 800 480 0 0 800 480 4

对应源码:

		if ( ! strcmp(argv[i], "-in_fb")) {if (argc > i+8) {i++;p->layer_cfg.info.fb.format = atoi(argv[i]);i++;p->layer_cfg.info.fb.size[0].width = atoi(argv[i]);i++;p->layer_cfg.info.fb.size[0].height = atoi(argv[i]);i++;p->layer_cfg.info.fb.crop.x = atoi(argv[i]);i++;p->layer_cfg.info.fb.crop.y = atoi(argv[i]);i++;p->layer_cfg.info.fb.crop.width = atoi(argv[i]);i++;p->layer_cfg.info.fb.crop.height = atoi(argv[i]);i++;p->layer_cfg.info.fb.align[0] = atoi(argv[i]);}	else {printf("-in_fb para err!\n\n");err ++;}}

3.3 disp_mem 对显示内存写入内容

命令 参数设置变量
disp_mem -mem_id显示内存索引
disp_mem -size显示范围的宽和高
disp_mem -file将文件中的数据写入显示内存,如果文件名以rbg三个字母中的一个开头,就全部显示单一颜色,r=红,g=绿,b=蓝

本命令要配合上一节的disp_layer_cfg 命令,依次输入:

#	1.对显示内存全部填充红色
disp_mem -mem_id 0 -size 800 480  -file  r
#	2.配置显示图层
disp_layer_cfg  -in_fb 0 800 480 0 0 800 480 4

显示效果:
在这里插入图片描述

3.3.1 disp_mem 测试源码有错误,更正

源码文件路径 《D1s-Melis/ekernel/drivers/hal/test/disp2/disp_mem.c》
在这里插入图片描述
修改为:

		while(count--) {*(tmp + 3) = 0xff;//A*(tmp + 2) = filename[0]=='r'?0xff:0;//R*(tmp + 1) = filename[0]=='g'?0xff:0;//G*(tmp + 0) = filename[0]=='b'?0xff:0;//Btmp+=4;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_280037.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…

如何远程连接SQLServer数据库

如何远程连接SQLServer数据库 准备工作 1.打开 选中如下的连接方式 连接成功后就会出出现 2.连接成功后:右键设置属性 安全性设置:如下图所示 设置连接属性: 设置完成之后点击完成!!! 3.打开 启动sqlSe…

分布式系统事务一致性解决方案

开篇 在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技…

一、MySQL 数据库设计

一、MySQL 数据库设计 1.1 为什么需要设计数据库 良好的数据库设计 降低应用程序的开发难度具备高效的查询效率具备良好的扩展性 糟糕的数据库设计 出现数据操作异常、修改复杂、数据冗余等问题影响程序的性能,甚至会导致程序崩溃 数据库设计是对数据库中实体以…

利用 Visual Studio 2022 加速虚幻引擎应用开发

自上次官宣对虚幻引擎的支持后,我们的开发团队一直在努力构建新一代的虚幻引擎集成功能。今天,我们很高兴地向你展示我们所开发的一系列用于提升游戏开发效率的各种新特性。在下面的文章中,你将了解如何查看流式日志,查看 Visual …

【redis】数据同步:主从库如何实现数据一致

如果redis实例宕机了,在恢复期间,无法服务新来的数据存取请求。 redis高可靠性: 数据尽量少丢失(AOF、RDB)服务尽量少中断(增加副本冗余量)-将一份数据同时保存在多个实例上 redis提供了主从模…

系统分析师高频错题集

软件架构设计---软件架构评估 信息系统评价要素包括:功能、成本、可靠性、可用性、存储容量、效率、响应时间等。不同的应用,首选评价指标是不同的,如银行系统,应该重点考虑系统的可用性和可靠性。 软甲架构设计---软件架构评估 …

android BatteryHistorian使用

android BatteryHistorian使用 Batterystats 工具和 Battery Historian 脚本的基本用法和工作流程Batterystats 是包含在 Android 框架中的一种工具,用于收集设备上的电池数据。您可以使用 adb 将收集的电池数据转储到开发计算机,并创建一份可使用 Batt…

了解Mysql

存储引擎 从上图我们可以查看出 MySQL 当前默认的存储引擎是InnoDB,并且在5.7版本所有的存储引擎中只有 InnoDB 是事务性存储引擎,也就是说只有 InnoDB 支持事务。 InnoDB和MyISAM的区别 MyISAM是MySQL的默认数据库引擎(5.5版之前)。虽然性…

2017百度世界大会 爱奇艺创始人CEO龚宇演讲速记

2017百度世界大会如期而来。(好像不对,Robin 说往年都是夏季办)那就改成千呼万唤始出来。 以下是爱奇艺创始人CEO龚宇演讲实录,小编全文呈上,请各位查收: 各位来宾,大家好! 很高兴今…

深力科本周知识小课堂【分立半导体】晶体管(上)基础知识,微电子人的狂欢

深力科本周知识小课堂【分立半导体】晶体管(上)基础知识,微电子人的狂欢 今天,东芝深力科电子将为大家说明一下双极晶体管和绝缘栅双极晶体管。 晶体管大致分为三种类型:双极型、场效应型和绝缘栅双极型。 双极晶体管…

Linux下的JavaEE开发(xftp传输安装、wget安装)

目录 一:jdk的安装(xftp传输安装) 二:Tomcat的安装(不需要配置环境变量) 三:Idea的安装(不需要配置环境变量) 四:Mysql的安装(wget网络安装&am…

千寻驰观亮相公路行业权威年会,开启2023全国路测第一站

千寻驰观亮相中国公路学会养护与管理养护与管理分会第十二届学术年会2023年3月28日至29日,在中国公路学会养护与管理养护与管理分会第十二届学术年会上,千寻位置面向行业全面展示了千寻驰观-道路智能巡检系统“车道级”目标位置估计、像素级的面积计算、…

linux系统编程(5)--进程间通信

1.进程间通讯概念 进程是一个独立的资源分配单元,不同进程之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源。 但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,…

ASP.NET动态Web开发技术第3章

第3章C#编程基础一.预习笔记 1.C#语言概述 using指令表示引用命名空间 //:表示单行注释 /* */:表示多行注释 2.变量和常量 Camel和Pascal 3.数据类型 值类型:简单类型、结构类型、枚举类型,其中简单类型又包含了整数类型&a…

箱线图详细介绍及绘制箱线图和复现箱线图的步骤详解

目录 一、箱线图介绍二、python函数三、利用数据绘制箱线图四、拓展——未知数据复现箱线图一、箱线图介绍 箱线图(Box Plot),也称为盒须图、箱形图、盒式图,是一种用于显示数据分布情况的图表。箱线图通常由五条线组成,包括最小值、第一四分位数、中位数、第三四分位数和…

网络安全从业人员应该如何提升自身的web渗透能力?

前言 web 渗透这个东西学起来如果没有头绪和路线的话,是非常烧脑的。 理清 web 渗透学习思路,把自己的学习方案和需要学习的点全部整理,你会发现突然渗透思路就有点眉目了。 程序员之间流行一个词,叫 35 岁危机,&am…

Ae:文本图层 - 文本属性组

文本图层默认包含“文本”和“变换”两大属性组。“变换”属性组用于对文本图层的整体变换,是大多数图层通用的属性组。“文本”属性组则包含了与文本相关的特有属性,还可通过右侧的“动画” Animate按钮添加文本动画制作工具属性。请参阅:《…

前端已死?金三银四?你收到offer了吗?

目录 一、前言 二、“唱衰” 三、不局限于框架、前端 四、打动面试官 五、正向加成 六、小结 一、前言 最近在脉脉、知乎等平台都有人在渲染前端从业人员的危机,甚至使用“前端已死”的字眼,颇有“语不惊人死不休”的意味,对老鸟来说&a…

设计模式小记

1、设计模式介绍 1.1、设计模式目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好的 代码重用性…