525|2

18

帖子

0

资源

一粒金砂(中级)

【平头哥RVB2601创意应用开发】动态加载MBRE-作品提交 [复制链接]

本帖最后由 cqcqwind 于 2022-5-13 10:32 编辑

 

动态加载MBRE验证系统

 

作者:wy2601@outlook.com

  • 项目背景

近年来,随着我国芯片技术的发展,和无线网络的普及,IOT MCU成为微处理器市场中获得迅猛发展的一个重要领域。与传统的STM,51等单片机相比,国产IOT MCU提供了更好性价比下的能力置换,同时,因具有无线互联能力,在IOT(Internet of Things)万物互联这个新兴市场中取得了巨大的优势。

显然,由于其互联特性,IOT市场的重点从传统的MCU传感器数据本地处理,向广域、互联、智能的方向发展。其处理能力日渐增强,FLASH/RAM空间不断扩展,外部存储能力(如SD/TF大规模存储、psram扩展)不断提升,不再受到弱本地能力的限制。强大的MCU化和互联化的能力,为智能化和分布式终端应用提供了强大的基础。本质上提供了末端传感智能化的能力(end-point smart sensors)。

能力的提升带来的重要变化是:传统简单逻辑处理的传感器业务模型,更多的像只能应用(smart application)方向发展,特点如下:

  1. 灵活的网络互联能力:包括Lora、WIFI、2.5/3/4/5g在内的网络接入能力,加以相对完善的LWIP协议栈与上层应用协议,合并云端服务提供,为业务变化提供无限可能;
  2. 强大的本地处理能力:在高度性价比的条件限制下,仍可提供单/双CPU,100MHZ起步的CPU时钟,Mbit级的FLASH空间与大RAM,处理数据能力已经远超简单传感器数据范围
  3. 丰富的应用开发场景:IOT MCU已经不再是单片机,IOT MCU可以对比成弱化的传感器业务终端,与手机终端相比,可以预测,IOT MCU市场也必然是“应用为王”

本项目即是在RVB2601 RISCV开发板为基础,所开发的一套探索从SOC软件模式转换为SOC APP应用模式的验证系统。

  • 作品简介

传统的SOC软件开发中,系统(system)和应用(application)的逻辑一般是整合在一起的。IOT MCU的功能提升,使得这一整合模型的限制愈发明显:

    1. 应用与系统不分,开发环境与SDK往往比较复杂,入门曲线陡峭;开发编译烧写FLASH时间很长;调试修改费时费力;代码编写者必须相对熟悉系统底层;
    2. SOC软件一般缺乏类似PC体系或者移动应用体系中常见的动态加载能力,目前,多数系统功能的更新最多是OTA FLASH这个级别,无法动态、灵活的扩展、修改、增加新功能,系统存储资源利用率较低。

MBRE(Mini Binary Runtime Enviroment)作为本次作品,提供了RVB2601平台上动态加载能力的验证系统环境,能够在E906 RISCV上提供完整的应用(app)生成, app打包,app动态下载,app动态运行等原型验证功能。使得RVB2601能够突破现有SOC开发模式,转而像PC或者手机一样开发、装载、运行应用。迄今为止,尚未见到国内IOT MCU厂商提供类似MBRE功能的实际实现。(附注:乐鑫在其IDF中提及了提供esp系列ELF RAM加载功能,通过项目menuconfig可以看到选项,但只标注为实验性experimental功能,尚未提供正式发布的文档或者例程)。

 

 

 

 

 

  • 系统框图

 

 

image.png  

 

 

MBRE系统构成如上图所示,

        1 通过CDK环境开发,依赖提取的动态应用SDK开发(SDK可扩展,将系统底层应用通过接口的方式展现给上层)。APP开发时与SDK交互,不与系统层级代码直接交互。这使得APP变化时与os层代码相对独立,各自相对独立编译,大大加快了编译速度。编译连接完成后得到的ELF文件通过打包处理后,动态传递给RVB2601运行。实验中,使用了WEB服务器来验证远程APP下载能力。

        2 RVB2601中烧写好OS级别的核心代码,或其他相关资源/API实现。APP在CDK独立开发完成后,出发RVB2601的APP下载动作。实验中,通过串口命令app down实现下载出发;

        3 RVB2601执行下载动作,将得到的APP存储到本地,并根据配置实行自动运行或者手工触发运行。实验中,RVB2601通过WIFI下载APP到RAM中运行。由于内存限制,实验系统中仅支持下载运行一个APP。如果要运行其他APP,需重新下载运行。下载的APP无需烧写到FLASH中。

        4 原理上, RVB2601亦可将下载得到的APP存储到FLASH文件系统或者外部非易失存储中。存储中可以保存多个不同的APP,根据用户交互来执行不同功能。这样在有限的RAM和FLASH资源中,提供了无限扩展能力的APP资源。IOT MCU可以表现得像是一台智能手机或者MINI PC,提供丰富的、可更新的交互功能。

  • 各部分功能说明和解析

MBRE系统搭建方法如下:

  1. MBRE底包的烧写

附件中提供了MBRE基础功能的RVB2601底包,该底包应烧写到2601 FLASH中。底包基于2601的网络MP3播放例程修改,因2601烧写单一分区的命令行和处理流程尚不明确,故烧写时,若有必要,可借助上述工程辅助烧写。烧写底包的prim.hex为实际开发的MBRE加载器与SDK/支援支持,其他如boot等分区都是例程自动生成的。

         需要注意的是:烧写底包的prim.hex分区大小超过了ch2601缺省分区中prim大写的设置,因此,除了项目本身的分区配置需要修改外(参加附图4-1),可能要修改2601 SDK中,ch2601板支持包中的分区配置(参见附图4-2)。

image-20220512195111-1.png  


4-1 项目分区表修改

 

image-20220512195139-2.png  

4-2 SDK板级分区表修改

烧写成功后,请通过串口软件连接到RVB2601(实验使用的是CDK自带的串口窗口)。MBRE提供了CLI接口,通过串口输入app指令,即可看到mbre支持的命令,参见图4-3:

image-20220512195153-3.png  

4-2 MBRE串口app命令

  1. WEB服务器搭建

WEB服务器没有特殊要求,只需支持bin stream下载方式下的content-length标准下行内容。实验中使用了开源的nginx-1.21.6 windows版本,在win10系统下成功运行。其他开源web服务器如miniweb等也可运行。

安装好web服务器后,请做好服务器简单配置后启动,确认RVB2601通过连接的wifi网络应当能够访问到该服务器。

  1. APP安装与下载

附件中提供了测试动态下载的bin文件,请将bin文件拷贝到nginx的内容目录下,实验中,拷贝到了nginx-1.21.6\html目录下。此时,通过RVB2601 CLI串口命令, 输出

         app down  app_url     即可出发rvb2601下载应用

例如web 服务器IP地址为192.168.137.1,通过

app down http://192.168.137.1/01mbreu8g2.bin    即可下载web服务器上的01mbreu8g2.bin应用文件

       缺省配置下, app下载后会自动运行。可通过cli中app auto off关闭此项功能;

       因提供的app只用于测试目的,app退出的处理均不完善,若需要测试其他app,建议cli中输入reboot后,等RVB2601重启并连接成功wifi,再执行app down命令下载其他应用。

       提供测试的5个app介绍如下:

                 01mbreu8g2.bin:   本app只需RVB2601底板即可运行,使用的是开发板自带单色OLED,包括的内容是U8G2的显示测试用例;

image.png  

02mbredht11PA7.bin: 本app只需RVB2601底板即可运行,使用开发板自带OLED,同时,需接入DHT11温湿度单线传感器,传感器的信号线应当接至RVB2601 PA7引脚。例程通过DHT11实时获取温度和湿度信息;

 

image.png  

 

03tftdemo.bin: 本app需要外接TFT ILI9341 320X240 SPI 4线串口屏。其中,屏CLK接PA28, mosi接PA29,SS接PA7, dc接PA25. 该app为tft espi的显示测试例程,包括椭圆填充、星空、文字瀑布等子例程;

image.png  

04jpgtest.bin: 本app需要外接TFT(参考例子3),主要测试JPG解码器,对QVGA原始JPG进行解码并全屏显示,计算处理时间;

image.png  

        05smalldesktop.rel.bin: 网红小项目小电视的RVB2601移植版本,详细介绍参考此前发布的文章。

image.png  

 

 

五、作品源码

本次作品仅提供底包与测试用bin文件。

05smalldesktop.rel.bin (24.69 KB, 下载次数: 0)


回复

208

帖子

5

资源

一粒金砂(中级)

为什么叫平头哥呢

回复

93

帖子

0

资源

一粒金砂(中级)

感谢大佬的分享,有关内容同步审核的问题,实在抱歉给您带来了不好的体验,我们这边也了解了整体的情况。首先您和其他开发者总结和分享的开发经验肯定是有价值的,我们已经就您反馈的问题作了讨论并优化了审核的流程。如果后续还有相关的意见和建议,欢迎您直接联系我。


回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表