完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Sipeed最近推出了基于RISC-V核心的86盒面板,采用了全志与阿里平头哥联合开发的SOC级别的RISC-V芯片D1,其集成512MB内存,拥有各种常用片上外设,并支持多种显示接口,包括I8080,SERIAL,RGB,LVDS,MIPI,HDMI等,有效降低整机BOM成本。
Xboot收到RISCV版86盒后,迫不及待的启动了xboot移植工作。移植过程比较顺利,适配4寸LCD驱动,编写触摸屏驱动,基本一气呵成,没咋折腾。 既然这是一个控制面板,那核心功能就是人机交互了,考虑到xboot里面自研了一个立即式UI,觉得比较锲合,这篇文章就重点介绍下XUI这个立即式UI框架了。 关于GUI的实现可分为三种设计模式:
这里提供一个XUI的演示视频,绝大部分常用控件都展示了,可以看到,体验还是比较丝滑的,触摸响应也特别灵敏,这得益于XUI超高的逻辑帧率,无上限,具体帧率由CPU的性能来决定,在荔枝86盒面板上,基本能有个200帧。如果是X86平台,基本都是千帧级别。 现在XUI框架总代码大概3000行,其中还包括了20个常用控件,平均一个控件才100行代码,可以说是精简至极。而且所有的控件都是矢量的,可以任意放大缩小,并且拥有自动布局引擎,能够自适应各种屏幕分辨率。 这里补充点技术细节,XUI核心是一个大循环,里面不断调用各种控件,每一帧只要屏幕上看得见的都会调用一遍,在调用时会生成绘图指令队列,在全部调用完成后,重排绘图指令,做脏矩形优化,找到需要更新的区域,执行相关的绘图指令。事件处理过程就是在控件的调用里,事件会改变绘图指令,当绘图指令变化了,界面就跟这变化了。 因为是个大循环,感觉效率会很低,但这里做了很多优化,比如当屏幕不变化时,也要去重刷,明显是浪费CPU资源,在这里用hash算法优化了,每一帧的所有绘图指令,都进行了hash运算,当hash值变化了,就代表屏幕内容发生变化,这样才需要执行具体的绘图指令。但光有这一个部分优化,还是不够的,如果屏幕仅仅有一小块区域变化了,hash值变了就进行全屏刷新绘制,效率也是很低的,所以,这里又将屏幕分成无数个格子,每个格子都有一个hash值,如果这个格子的hash值变化了,就代表这个格子需要重新绘制,这样就实现按需刷新,也就是脏矩形技术。 经过优化后,这个大循环基本能做到千帧以上,逻辑上的响应速度是很快的,瓶颈主要是在渲染部分,这个看硬件渲染看硬件绘图能力,千帧UI的表现就是很灵敏,没有迟钝的现象,可以看上面的演示视频,当然你绘图拖后腿了,那就没辙了,谁叫你画得慢呢,立即UI,都是通过指令来生成各种图形的,贴图在这里是二等公民,因为都是指令,所以整个UI都是矢量的,每个控件都支持无限缩放,自动布局。 荔枝86盒编译烧写说明(Sipeed Lichee RV 86 Panel) 下载xboot源码 git clone https://github.com/xboot/xboot.git 编译源码,生成的目标文件在output目录下 make clean make CROSS_COMPILE=/path/to/riscv64-unknown-elf- PLATFORM=riscv64-lichee86p 烧写到RAM中并运行 sudo xfel ddr ddr3; sudo xfel write 0x40000000 xboot.bin; sudo xfel exec 0x40000000; 烧写普通镜像到SPI Nor Flash sudo xfel spinor write 0 xboot.bin 烧写压缩镜像到SPI Nor Flash sudo xfel spinor write 0 xboot.bin.z 烧写普通镜像到SPI Nand Flash sudo xfel spinand splwrite 2048 1048576 xboot.bin 烧写压缩镜像到SPI Nand Flash sudo xfel spinand splwrite 2048 1048576 xboot.bin.z 下载riscv工具链 https://occ.t-head.cn/ Xuantie-900-gcc-elf-newlib-x86_64-V2.0.3-20210806.tar.gz 下载xfel工具源码 git clone https://github.com/xboot/xfel.git 编译安装xfel工具 make sudo make install 文章转载自:平头哥芯片开放社区 作者:深圳矽速科技有限公司 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【平头哥Sipeed LicheeRV 86开发板试用体验】Waft初体验
15709 浏览 1 评论
13762 浏览 4 评论
【平头哥Sipeed LicheeRV 86开发板试用体验】四、烧写waft系统&搭建waft测试环境
19683 浏览 2 评论
59133 浏览 19 评论
【限时福利】加入芯片开发社区,领100G电子工程师资料大礼包
88238 浏览 121 评论
邀请函 | 3月2日 来上海参加平头哥“玄铁RISC-V生态大会”
788浏览 0评论
读书分享会 | 玄铁RISC-V处理器入门与实战电子书免费下载!
685浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 08:51 , Processed in 0.749503 second(s), Total 66, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号