RISC-V生态开发套件解析(五):LicheeRV 86开发板BSP SDK开发和Xboot 镜像体验

简介: 随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。


编辑语:

随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。


自推出LicheeRV 86开发套件解析系列内容以来,我们已陆续为大家介绍了该套件的基础功能TF卡镜像烧录外设功能Debian镜像,为开发者快速上手开发奠定了基础。本文是该系列中的最后一篇教程,将介绍BSP SDK的开发,以及立即式UI框架——XUI的特性,并讲解如何实现Xboot镜像。


01 BSP SDK开发


1.1 准备

  • LicheeRV 86 Panel
  • 数据线
  • 具有32GB以上剩余空间的Linux系统PC一台


1.2 Docker镜像获取

为了方便用户自行开发,矽速整理发布了 LicheeRV 的bsp开发docker镜像,大家使用该镜像可以快速开始D1的系统级开发。docker镜像可以从百度网盘下载:


在网盘中下载对应的docker文件后,解压到tar文件, docker import licheerv_d1_compile.tar licheerv_d1_compile:lastest 然后即可run该容器,用户名为nihao,密码为sipeed123。


或者也可以直接从dockerhub拉取:


docker pull zepan/d1compile


1.3 基础SDK操作

进入容器后的基础编译操作为:


cd ~/sdk/tina-d1-open_new/
source build/envsetup.sh
lunch   //选1
make menuconfig //去掉里面的 alsa-plugin选项,否则编译不过
make -j96 #按实际核数编译
pack  # 打包


成功打包后,镜像会存放在:/home/nihao/sdk/tina-d1-open_new/out/d1-nezha/tina_d1-nezha_uart0.img 拷贝出来即可使用全志卡烧录工具进行烧录。


其他SDK的开发说明,可以参见全志开发平台上下载的相关文档 https://open.allwinnertech.com/


如果需要自己下载SDK开发,参考全志在线相关网页:https://d1.docs.aw-ol.com/en/


1.4 TIPS

  • docker的SDK内置了一些版型的dts,你可以自行选择编辑:device/config/chips/d1/configs/nezha/board_xxx.dts

  • 如果需要增加一些你的个人工程文件到文件系统内,可以放置到 /home/nihao/sdk/tina-d1-open_new/myfiles/下,打包脚本会自动拷贝这些文件到目标根文件系统中
  • 如果需要设置启动脚本,请修改/etc/init.d下的相关文件
  • SDK默认失能了uboot的显示,如果需要,请在uboot里使能 CONFIG_DISP2_SUNXI,CONFIG_BOOT_GUI


02 Xboot 镜像体验


2.1 概述

Sipeed最近推出了基于RISC-V核心的86盒面板,采用了全志与阿里平头哥联合开发的SOC级别的RISC-V芯片D1,其集成512MB内存,拥有各种常用片上外设,并支持多种显示接口,包括I8080,SERIAL,RGB,LVDS,MIPI,HDMI等,有效降低整机BOM成本。


Xboot收到RISC-V版86盒后,迫不及待的启动了xboot移植工作。移植过程比较顺利,适配4寸LCD驱动,编写触摸屏驱动,基本一气呵成,没咋折腾。


既然这是一个控制面板,那核心功能就是人机交互了,考虑到xboot里面自研了一个立即式UI,觉得比较锲合,本章节就重点介绍下XUI这个立即式UI框架了。


关于GUI的实现可分为三种设计模式:

  • 保留模式,传统GUI都采用使用此方案,优点是成熟,缺点是开发有点繁琐,一般都需要IDE来辅助设计。
  • 立即模式,诞生于游戏开发领域,主要解决游戏内的UI交互问题,xui就采用此模式。此模式优点,是代码量低,所想所得,灵活性强,编写事情响应得心应手,缺点是纯代码,驾驭不了代码的新手,会退避三分。
  • 声明式,这个在web领域,如火如荼,什么VUE啥的,很现代,优点是,效果赞,赏心悦目,而且现代,缺点是,需要脚本语言配合,而且需要描述能力稍强点的语言,再有就是性能需求也是较高。一般的芯片怕是把持不住。


图片.png


这里提供一个XUI的演示视频,绝大部分常用控件都展示了,可以看到,体验还是比较丝滑的,触摸响应也特别灵敏,这得益于XUI超高的逻辑帧率,无上限,具体帧率由CPU的性能来决定,在荔枝86盒面板上,基本能有个200帧。如果是X86平台,基本都是千帧级别。


现在XUI框架总代码大概3000行,其中还包括了20个常用控件,平均一个控件才100行代码,可以说是精简至极。而且所有的控件都是矢量的,可以任意放大缩小,并且拥有自动布局引擎,能够自适应各种屏幕分辨率。


这里补充点技术细节,XUI核心是一个大循环,里面不断调用各种控件,每一帧只要屏幕上看得见的都会调用一遍,在调用时会生成绘图指令队列,在全部调用完成后,重排绘图指令,做脏矩形优化,找到需要更新的区域,执行相关的绘图指令。事件处理过程就是在控件的调用里,事件会改变绘图指令,当绘图指令变化了,界面就跟着变化了。


因为是个大循环,感觉效率会很低,但这里做了很多优化,比如当屏幕不变化时,也要去重刷,明显是浪费CPU资源,在这里用hash算法优化了,每一帧的所有绘图指令,都进行了hash运算,当hash值变化了,就代表屏幕内容发生变化,这样才需要执行具体的绘图指令。但光有这一个部分优化,还是不够的,如果屏幕仅仅有一小块区域变化了,hash值变了就进行全屏刷新绘制,效率也是很低的,所以,这里又将屏幕分成无数个格子,每个格子都有一个hash值,如果这个格子的hash值变化了,就代表这个格子需要重新绘制,这样就实现按需刷新,也就是脏矩形技术。


经过优化后,这个大循环基本能做到千帧以上,逻辑上的响应速度是很快的,瓶颈主要是在渲染部分,这个看硬件渲染看硬件绘图能力,千帧UI的表现就是很灵敏,没有迟钝的现象,可以看上面的演示视频,当然你绘图拖后腿了,那就没辙了,谁叫你画得慢呢,立即UI,都是通过指令来生成各种图形的,贴图在这里是二等公民,因为都是指令,所以整个UI都是矢量的,每个控件都支持无限缩放,自动布局。


2.2 荔枝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


下载risc-v工具链


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


03 下期预告


有关LicheeRV 86开发套件系列的介绍已完结,下期内容我们将开启该套件配套软件Waft UI的介绍。欢迎大家持续关注技术解码。

相关文章
|
5月前
|
人工智能 自然语言处理 开发工具
HarmonyOS NEXT~鸿蒙开发能力:HarmonyOS SDK AI 全解析
本文深入解析HarmonyOS SDK中的AI功能集,涵盖分布式AI引擎、核心组件(NLP、计算机视觉等)及智能决策能力。通过代码示例与开发实践指南,帮助开发者掌握环境配置、性能调优及多场景应用(智能家居、移动办公等)。同时探讨性能优化策略与未来演进方向,助力构建高效分布式智能应用。
320 9
|
7月前
|
人工智能 API 开发者
HarmonyOS Next~鸿蒙应用框架开发实战:Ability Kit与Accessibility Kit深度解析
本书深入解析HarmonyOS应用框架开发,聚焦Ability Kit与Accessibility Kit两大核心组件。Ability Kit通过FA/PA双引擎架构实现跨设备协同,支持分布式能力开发;Accessibility Kit提供无障碍服务构建方案,优化用户体验。内容涵盖设计理念、实践案例、调试优化及未来演进方向,助力开发者打造高效、包容的分布式应用,体现HarmonyOS生态价值。
330 27
|
7月前
|
人工智能 API 语音技术
HarmonyOS Next~鸿蒙AI功能开发:Core Speech Kit与Core Vision Kit的技术解析与实践
本文深入解析鸿蒙操作系统(HarmonyOS)中的Core Speech Kit与Core Vision Kit,探讨其在AI功能开发中的核心能力与实践方法。Core Speech Kit聚焦语音交互,提供语音识别、合成等功能,支持多场景应用;Core Vision Kit专注视觉处理,涵盖人脸检测、OCR等技术。文章还分析了两者的协同应用及生态发展趋势,展望未来AI技术与鸿蒙系统结合带来的智能交互新阶段。
398 31
|
7月前
|
人工智能 小程序 前端开发
【一步步开发AI运动小程序】十九、运动识别中如何解析RGBA帧图片?
本文介绍了如何将相机抽取的RGBA帧图像解析为`.jpg`或`.png`格式,适用于体测、赛事等场景。首先讲解了RGBA图像结构,其为一维数组,每四个元素表示一个像素的颜色与透明度值。接着通过`uni.createOffscreenCanvas()`创建离屏画布以减少绘制干扰,并提供代码实现,将RGBA数据逐像素绘制到画布上生成图片。最后说明了为何不直接使用拍照API及图像转换的调用频率建议,强调应先暂存帧数据,运动结束后再进行转换和上传,以优化性能。
|
7月前
|
索引
【Flutter 开发必备】AzListView 组件全解析,打造丝滑索引列表!
在 Flutter 开发中,AzListView 是实现字母索引分类列表的理想选择。它支持 A-Z 快速跳转、悬浮分组标题、自定义 UI 和高效性能,适用于通讯录、城市选择等场景。本文将详细解析 AzListView 的核心参数和实战示例,助你轻松实现流畅的索引列表。
260 7
|
7月前
|
数据可视化 测试技术 API
前后端分离开发:如何高效调试API?有工具 vs 无工具全解析
在前后端分离的开发模式中,API 调试的效率直接影响项目的质量和交付速度。通过本文的对比分析,我们可以看到无工具调试模式虽具备灵活性和代码复用能力,但在操作便利性和团队协作上稍显不足。而传统的外部调试工具带来了可视化、高效协作与扩展性,却可能存在工具切换带来的开发链路断层问题。Apipost-Hepler 融合了两者的优势,让开发者无需离开熟悉的 IDEA 环境,就能享受可视化调试工具的强大功能。
171 5
|
7月前
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
8月前
|
存储 人工智能 程序员
通义灵码AI程序员实战:从零构建Python记账本应用的开发全解析
本文通过开发Python记账本应用的真实案例,展示通义灵码AI程序员2.0的代码生成能力。从需求分析到功能实现、界面升级及测试覆盖,AI程序员展现了需求转化、技术选型、测试驱动和代码可维护性等核心价值。文中详细解析了如何使用Python标准库和tkinter库实现命令行及图形化界面,并生成单元测试用例,确保应用的稳定性和可维护性。尽管AI工具显著提升开发效率,但用户仍需具备编程基础以进行调试和优化。
560 9
|
9月前
|
人工智能 监控 数据可视化
提升开发效率:看板方法的全面解析
随着软件开发复杂度提升,并行开发模式下面临资源分配不均、信息传递延迟及缺乏全局视图等瓶颈问题。看板工具通过任务状态实时可视化、流量效率监控和任务依赖管理,帮助团队直观展示和解决这些瓶颈。未来,结合AI预测和自动化优化,看板工具将更高效地支持并行开发,成为驱动协作与创新的核心支柱。
|
9月前
|
JSON 供应链 搜索推荐
淘宝APP分类API接口:开发、运用与收益全解析
淘宝APP作为国内领先的购物平台,拥有丰富的商品资源和庞大的用户群体。分类API接口是实现商品分类管理、查询及个性化推荐的关键工具。通过开发和使用该接口,商家可以构建分类树、进行商品查询与搜索、提供个性化推荐,从而提高销售额、增加商品曝光、提升用户体验并降低运营成本。此外,它还能帮助拓展业务范围,满足用户的多样化需求,推动电商业务的发展和创新。
259 5

热门文章

最新文章

推荐镜像

更多
  • DNS