Melis3.0系统Quick Start

Melis3.0系统是全志科技面向数字媒体和IoT领域的轻量级物联网嵌入式实时操作系统,主打视频多媒体编,解,录周边产品应用。在整合内部开发资源的基础上, 与开源社区深度合作,致力建立服务于多媒体视频编解码,语音处理的端侧基础设施平台. Melis3.0系统具备极致性能, 极简开发,富媒体,富组件,wireless连接,模块化开发等功能特点, 可广泛应用于多媒体播放器,行车记录仪,游戏模拟器,DVB/DTMB机顶盒,儿童早教机,卡拉OK机, 传感器/网络模组,智能家居,智能IPC等产品的开发.

Melis3.0在Sunxi OS家谱中的位置,关于Melis4.0的介绍请移步这里。

支持多平台,多方案的多媒体架构

Melis 3.0的特性

极简开发

  • 代码量500~600万行,属于中大规模RTOS系统方案.
  • 基于Kbuild构建扩展,支持C和C++编译. menuconfig字符菜单配置界面. 支持Windows/Linux开发环境.
  • 支持ARMCC/GNU GCC CrossToochain.
  • 支持ARMDS5/开源GDB+OCD+ICE(JLink/OpenJtag/CMSIS-DAP)调试方式.
  • 支持KGDB裸机串口调试 .
  • 支持ADBD服务,可以通过adb进行调试与连接.
  • 采用松散多bin架构,系统由具备独立子功能的binary动态组合实现,模块之间高内聚,低耦合。便于分布式开发.
  • 支持V4L2和AW多媒体框架,方便集成各种编,解码方案.
  • 支持32位虚拟内存管理,单进程多线程模式共享系统0~4G虚拟存储空间.
  • 支持Devicetree和fex系统配置文件方式进行运行时配置,修改配置不需要重新编译内核。
  • 支持静态共享库(区别于UNIX&Linux家族的动态共享库),库的加载运行地址是固定的。

网络服务

  • 支持BLE/BE协议栈
  • 支持IPV4/IPV6网络协议栈.
  • 支持基于mbedtls的安全套接字服务
  • 标准SDIO驱动兼容各种外挂模组,客户可自行决定支持新的WIFI模组.

模块化设计

类微内核架构(混合内核),支持应用,驱动和中间件代码独立编译链接,映像高度压缩,不用时可卸载节省运存。
模块化要求内存管理支持二级页表设计。

高性能内核

按照内核和方案解耦的方式设计,当前基于zephyr,rt-thread双内核, 具备硬实时能力,核心架构良好,支持极小footprint的设备.
RT-Thread和zephyr各有特点,两者比较,zephyr有广度,但高度欠缺,而RT-Thread恰恰相反,它支持较高的Linux语义,有高度,但广度不如zephyr.
Melis3.0主要面向全志自身的编码解码产品线进行开发,需要一个API层面有高度的系统,但不需要支持太多的开发板,所以广度方面不甚重要.

内存管理
支持slab内存管理算法,有效减少内存外部碎片。
支持虚拟空间动态创建,页面可支持4K大小

调度策略

在任何时候,系统执行有资格获得处理器的优先级最高的任务,在优先级相同的情况下,采用时间片轮转的调度策略. 这种调度策略有个简单的名字,叫做Round Robin(RR)调度策略

丰富的文件系统支持

支持常见文件系统格式,包括:

  • Fat12/16/32
  • exFat
  • udffs
  • ntfs
  • cdfs
  • devfs
  • ramfs
  • littlefs
  • spiffs
    支持文件系统块缓冲bcache,可以有效提高存储价质的读写效率。

丰富的多媒体和GUI支持
集成全志AW多媒体框架和OrangeGUI/MiniGUI图形框架,可支持中大规模多媒体录,编,解码产品的开发.
支持常见音频格式,支持的视频解码格式包括:

  • H263/H264/H265
  • VP9/VP8/VP6
  • MJPEG/MPEG2/MPEG4
  • AVS/AVS2/AVS+
  • Divx/Xvid
  • WMV1/WMV2/WMV3/WMV9/VC-1
  • Sorenson Spark
  • 支持LBC在线压缩/解压缩算法,有效提升高清多媒体码流的兼容度.
    等主流解码格式。
    支持的编码格式包括:
  • H264
  • H265
  • VP8
  • MJPEG

Posix兼容
支持Posix完整语义,面向MacOS,Unix,Linux可移植应用/中间件的跨系统移植.

设备管理
支持linux style的设备文件系统,所有设备以设备节点的方式向应用提供服务,应用通过标准化的接口open/read/write/ioctl/close对设备进行操作

在Linux上搭建Melis3.0 开发环境

1.下载交叉编译工具链:

  • GCC 6.3.0 On Linux

或者执行: git clone https://github.com/caozilong/melis-toolchain.git

2.ToolChain的安装与配置:

进入到控制台程序,在$(HOME)(其它具备权限的目录也可,例如/opt)目录下创建tools目录 并把工具链包copy到此目录.

执行下图命令将工具链解压到当前目录下:

设置环境变量,执行如下命令将工具链所在目录加入到当前用户的PATH环境变量下:

设置完毕后,退出当前终端重新登录, 在新控制台下执行命令行
arm-melis-eabi-gcc -v

输出信息如下图所示,表示编译器安装正确:

3.获取Melis SDK源码:

4.配置melis sdk.

Melis的构建系统基于Linux Kbuild实现,执行进入到 ./src 目录,执行 make menuconfig

选用默认的配置,直接保存.config文件,即是D100 数字电视老人机方案.

5.编译melis sdk.

退出menuconfig菜单, 执行make melis (或者make, make all) 编译完整的SDK, 编译结束后,目标文件放置在./src/workspace/$(project) 目录下.

关于内核选型,为什么基于RT-Thread内核?

最初进行开发的时候,候选内核其实有包括RT-Thread,FreeRTOS, Arm mBed, Zephyr以及 Nuttx在内的多个内核,并且Zephy已经开发适配到能够做视频播放的程度,但是最终还是选择了RT-Thread作为Melis3.0方案新架构的内核。主要考虑是,有些内核比如zephyr,mbed os, freeRTOS这类系统的用户群虽然很广泛,支持的开发板也比较多,但是基于这些系统开发的应用普遍局限在一些小资源的开发板上,总体上给人的感觉是广度有余,高度不足,难以支撑多媒体这种比较垂直类的应用, 而RT-Thread的一级接口API更接近Linux上的设计semantics, 具备更多的可能性,经过多方考量,最终选择了RTT并进行了深度适配,才有了现在的melis.

结束

Melis3.0系统Quick Start相关推荐

  1. vivo7.0系统机器(亲测有效)激活Xposed框架的教程

    对于喜欢搞机的机友来说,常常会使用到Xposed框架和种种功能牛逼的模块,对于5.0以下的系统版本,只要手机能获得Root权限,安装和激活Xposed框架是异常轻松的,但随着系统版本的升级,5.0以后 ...

  2. 阿里发布AliGenie2.0系统,“百箱大战”用上视觉武器

    天猫精灵X1的升级版X2没有预期出现,而人机交互系统AliGenie升级到最新的2.0版本,功能强大. 3月22日,阿里巴巴人工智能实验室总经理浅雪(陈丽娟)发布AliGenie2.0系统,它最大的改 ...

  3. vmware+android+4.3,Vmware虚拟机安装安卓4.0系统教程

    大家都知道安卓软件要在电脑windows系统下运行只能依靠安卓模拟器和虚拟机.之前绿茶小编和大家分享过安卓模拟器,下面和大家一起分享安卓虚拟机Vmware安装运行安卓4.0系统. 安卓虚拟机Vmwar ...

  4. ASP.NET.4.5.1+MVC5.0系统角色和权限讲解

    细说ASP.NET.4.5.1+MVC5.0系统角色和权限 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软 ...

  5. 三星6.0系统手机最简单激活XPOSED框架的教程

    对于喜欢玩手机的朋友来说,经常会接触到Xposed框架及其种种功能强悍的模块,对于5.0以下的系统版本,只要手机能获得root权限,安装和激活Xposed框架是比较简单的,但随着系统版本的不断更新,5 ...

  6. 华为9.0系统机器一键激活xposed框架的流程

    对于喜欢钻研手机的小伙伴而言,经常会使用到Xposed框架及其种类繁多功能彪悍的模块,对于5.0以下的系统版本,只要手机能获得Root权限,安装和激活Xposed框架是非常简易的,但随着系统版本的不断 ...

  7. 《深入解析Android 5.0系统》——第1章,第1.2节安装开发包

    本节书摘来自异步社区<深入解析Android 5.0系统>一书中的第1章,第1.2节安装开发包,作者 刘超,更多章节内容可以访问云栖社区"异步社区"公众号查看 1.2 ...

  8. nokia android 8,疑似诺基亚8再曝光:预装Android 8.0系统

    [TechWeb报道]8月4日消息,之前诺基亚公布了诺基亚8手机,并且确认蔡司镜头认证.现在最新消息,来自GeekBench数据发现一款诺基亚机型,搭载骁龙835处理器,预装Android 8.0系统 ...

  9. 怎么预约鸿蒙系统,华为鸿蒙2.0系统-鸿蒙2.0系统预约-艾艾软件园

    <鸿蒙2.0系统>是由华为预计推出的一款全新操作系统.未来将广泛应用华为自家的多款电子产品上,功能更强大,互通更高效,隐私更安全.实现多项产品之间的信息共享,使用起来十分方便,绝对不要错过 ...

最新文章

  1. 开发一个微信小程序贵不贵,需要花费多少钱?
  2. mysql很简单,Mysql入门很简单
  3. VS2013(Visual Studio 2013)官方中文旗舰版安装激活方法
  4. centos 关闭防火墙
  5. Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作
  6. Android 10分钟集成极光推送
  7. 今年圣诞,麋鹿第一次请假
  8. android 界面长按,Android 主界面长按创建快捷方式
  9. atitit.MyEclipse10 中增加svn插件故障排除
  10. GIS应用技巧之利用DEM制作三维立体图
  11. 2.PCIe协议分析
  12. 微信小程序UI库组件库合集
  13. Semi-prime H-numbers(POJ 3292)
  14. 下载加速小妙招,我不允许你不知道
  15. 18:(基于对抗的学习)Learning a Self-Expressive Network for Subspace Clustering
  16. 悠漓带你玩转C语言(函数)
  17. 如何在Power BI Desktop中创建词云生成器
  18. 我爷爷来了都能看懂的数据库主键,候选键,外键,非空和check的几种约束方式及使用方法
  19. NSDate-日期类nbsp;OC——第七天(1)
  20. 具有一定文化修养的中产阶层占据主力的消费

热门文章

  1. 单片机C语言生成二维码[放大]
  2. html5卷轴动画制作,几种逼真卷轴动画的制作方法
  3. 电脑怎么赚钱?学会这三点,你就能赚钱!
  4. RabbitMq Federation简介
  5. PS将视频头像转成古典手绘效果
  6. 活动排期php开源,活动 | 走过 2017,迎来 2018 Flag
  7. 弟弟的作业c语言代码,弟弟的作业
  8. 扑克牌少一张JAVA,纸牌游戏,随机输出三张扑克牌
  9. 1型糖尿病青年患者易诱发心脏疾病英语科普English
  10. 【嵌入式开发-STM32】初识STM32