<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Melis3.0系统Quick Start]]></title><description><![CDATA[<p dir="auto"><strong>本帖转自CSDN：<a href="https://blog.csdn.net/tugouxp/article/details/78320833" target="_blank" rel="noopener noreferrer nofollow ugc">https://blog.csdn.net/tugouxp/article/details/78320833</a><br />
作者：papaofdoudou</strong></p>
<h1>Melis3.0系统Quick Start</h1>
<p dir="auto">Melis3.0系统是全志科技面向数字媒体和IoT领域的轻量级物联网嵌入式实时操作系统，主打视频多媒体编,解,录周边产品应用。在整合内部开发资源的基础上， 与开源社区深度合作，致力建立服务于多媒体视频编解码，语音处理的端侧基础设施平台. Melis3.0系统具备极致性能， 极简开发，富媒体，富组件，wireless连接，模块化开发等功能特点， 可广泛应用于多媒体播放器，行车记录仪，游戏模拟器，DVB/DTMB机顶盒，儿童早教机，卡拉OK机, 传感器/网络模组，智能家居，智能IPC等产品的开发.</p>
<p dir="auto">Melis3.0在Sunxi OS家谱中的位置,关于Melis4.0的介绍请移步<a href="https://blog.csdn.net/tugouxp/article/details/116980346" target="_blank" rel="noopener noreferrer nofollow ugc">这里</a>。<br />
<img src="/assets/uploads/files/1649731990553-7347c4eb6d124046993637a34f0f91a3.png" alt="7347c4eb6d124046993637a34f0f91a3.png" class=" img-responsive img-markdown" width="1149" height="700" /><br />
支持多平台，多方案的多媒体架构<br />
<img src="/assets/uploads/files/1649731997187-20210130154804991.png" alt="20210130154804991.png" class=" img-responsive img-markdown" width="1210" height="700" /></p>
<h1>Melis 3.0的特性</h1>
<p dir="auto"><strong>极简开发</strong></p>
<ul>
<li>代码量500~600万行，属于中大规模RTOS系统方案.</li>
<li>基于Kbuild构建扩展，支持C和C++编译. menuconfig字符菜单配置界面. 支持Windows/Linux开发环境.</li>
<li>支持ARMCC/GNU GCC CrossToochain.</li>
<li>支持ARMDS5/开源GDB+OCD+ICE(JLink/OpenJtag/CMSIS-DAP)调试方式.</li>
<li>支持KGDB裸机串口调试 .</li>
<li>支持ADBD服务，可以通过adb进行调试与连接.</li>
<li>采用松散多bin架构，系统由具备独立子功能的binary动态组合实现，模块之间高内聚，低耦合。便于分布式开发.</li>
<li>支持V4L2和AW多媒体框架，方便集成各种编，解码方案.</li>
<li>支持32位虚拟内存管理，单进程多线程模式共享系统0~4G虚拟存储空间.</li>
<li>支持Devicetree和fex系统配置文件方式进行运行时配置，修改配置不需要重新编译内核。</li>
<li>支持静态共享库(区别于UNIX&amp;Linux家族的动态共享库),库的加载运行地址是固定的。</li>
</ul>
<p dir="auto"><strong>网络服务</strong></p>
<ul>
<li>支持BLE/BE协议栈</li>
<li>支持IPV4/IPV6网络协议栈.</li>
<li>支持基于mbedtls的安全套接字服务</li>
<li>标准SDIO驱动兼容各种外挂模组，客户可自行决定支持新的WIFI模组.</li>
</ul>
<p dir="auto"><strong>模块化设计</strong></p>
<p dir="auto">类微内核架构(混合内核)，支持应用，驱动和中间件代码独立编译链接，映像高度压缩，不用时可卸载节省运存。</p>
<p dir="auto">模块化要求内存管理支持二级页表设计。</p>
<p dir="auto"><strong>高性能内核</strong></p>
<p dir="auto">按照内核和方案解耦的方式设计，当前基于zephyr，rt-thread双内核， 具备硬实时能力,核心架构良好，支持极小footprint的设备.</p>
<p dir="auto">RT-Thread和zephyr各有特点，两者比较，zephyr有广度，但高度欠缺，而RT-Thread恰恰相反，它支持较高的Linux语义，有高度，但广度不如zephyr.</p>
<p dir="auto">Melis3.0主要面向全志自身的编码解码产品线进行开发，需要一个API层面有高度的系统，但不需要支持太多的开发板，所以广度方面不甚重要．</p>
<p dir="auto"><strong>内存管理</strong><br />
支持slab内存管理算法，有效减少内存外部碎片。<br />
支持虚拟空间动态创建，页面可支持4K大小</p>
<p dir="auto"><strong>调度策略</strong></p>
<p dir="auto">在任何时候,系统执行有资格获得处理器的优先级最高的任务,在优先级相同的情况下,采用时间片轮转的调度策略. 这种调度策略有个简单的名字，叫做Round Robin(RR)调度策略</p>
<p dir="auto"><strong>丰富的文件系统支持</strong></p>
<p dir="auto">支持常见文件系统格式,包括:</p>
<ul>
<li>Fat12/16/32</li>
<li>exFat</li>
<li>udffs</li>
<li>ntfs</li>
<li>cdfs</li>
<li>devfs</li>
<li>ramfs</li>
<li>littlefs</li>
<li>spiffs</li>
<li>支持文件系统块缓冲bcache,可以有效提高存储价质的读写效率。</li>
</ul>
<p dir="auto"><strong>丰富的多媒体和GUI支持</strong></p>
<p dir="auto">集成全志AW多媒体框架和OrangeGUI/MiniGUI图形框架，可支持中大规模多媒体录,编,解码产品的开发.</p>
<p dir="auto">支持全部的常见音频格式，支持的视频解码格式包括:</p>
<ul>
<li>H263/H264/H265</li>
<li>VP9/VP8/VP6</li>
<li>MJPEG/MPEG2/MPEG4</li>
<li>AVS/AVS2/AVS+</li>
<li>Divx/Xvid</li>
<li>WMV1/WMV2/WMV3/WMV9/VC-1</li>
<li>Sorenson Spark</li>
<li>支持LBC在线压缩/解压缩算法，有效提升高清多媒体码流的兼容度．<br />
等主流解码格式。<br />
支持的编码格式包括:</li>
<li>H264</li>
<li>H265</li>
<li>VP8</li>
<li>MJPEG</li>
</ul>
<p dir="auto"><strong>Posix兼容</strong><br />
支持Posix完整语义，面向MacOS,Unix,Linux可移植应用/中间件的跨系统移植.</p>
<p dir="auto"><strong>设备管理</strong><br />
支持linux style的设备文件系统，所有设备以设备节点的方式向应用提供服务，应用通过标准化的接口open/read/write/ioctl/close对设备进行操作</p>
<h1>在Linux上搭建Melis3.0 开发环境</h1>
<p dir="auto"><strong>1.下载交叉编译工具链:</strong><br />
<a href="https://github.com/caozilong/melis-toolchain/blob/master/arm-melis-eabi-final-with-gdb-static-with-newlib-2.5.0-20170323-fix-memcpy-size-notoptimilize-size-ffdata-ffsection-optimilize.tar.xz" target="_blank" rel="noopener noreferrer nofollow ugc">GCC 6.3.0 On Linux</a><br />
或者执行: git clone <a href="https://github.com/caozilong/melis-toolchain.git" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/caozilong/melis-toolchain.git</a></p>
<p dir="auto"><strong>2.ToolChain的安装与配置:</strong></p>
<p dir="auto">进入到控制台程序，在$(HOME)(其它具备权限的目录也可，例如/opt)目录下创建tools目录 并把工具链包copy到此目录.</p>
<p dir="auto"><img src="/assets/uploads/files/1649732223484-ahr0cdovl2ltzy5ibg9nlmnzzg4ubmv0lziwmtcxmdizmtcxmtqwntey.png" alt="aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcxMDIzMTcxMTQwNTEy.png" class=" img-responsive img-markdown" width="1276" height="62" /></p>
<p dir="auto">执行下图命令将工具链解压到当前目录下:</p>
<p dir="auto"><img src="/assets/uploads/files/1649732228541-ahr0cdovl2ltzy5ibg9nlmnzzg4ubmv0lziwmtcxmdizmtcxndeyodk1.png" alt="aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcxMDIzMTcxNDEyODk1.png" class=" img-responsive img-markdown" width="1362" height="94" /></p>
<p dir="auto">设置环境变量，执行如下命令将工具链所在目录加入到当前用户的PATH环境变量下:</p>
<p dir="auto"><img src="/assets/uploads/files/1649732233936-ahr0cdovl2ltzy5ibg9nlmnzzg4ubmv0lziwmtcxmdizmtcymzqznzmx.png" alt="aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcxMDIzMTcyMzQzNzMx.png" class=" img-responsive img-markdown" width="713" height="140" /></p>
<p dir="auto">设置完毕后，退出当前终端重新登录， 在新控制台下执行命令行</p>
<pre><code>arm-melis-eabi-gcc -v
</code></pre>
<p dir="auto">输出信息如下图所示，表示编译器安装正确:<br />
<img src="/assets/uploads/files/1649732245156-ahr0cdovl2ltzy5ibg9nlmnzzg4ubmv0lziwmtcxmdizmtcynziyotk5.png" alt="aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcxMDIzMTcyNzIyOTk5.png" class=" img-responsive img-markdown" width="1890" height="249" /></p>
<p dir="auto"><strong>3.获取Melis SDK源码:</strong></p>
<p dir="auto">略</p>
<p dir="auto"><strong>4.配置melis sdk.</strong></p>
<p dir="auto">Melis的构建系统基于Linux Kbuild实现，执行进入到 ./src 目录，执行 make menuconfig</p>
<p dir="auto"><img src="/assets/uploads/files/1649732261659-ahr0cdovl2ltzy5ibg9nlmnzzg4ubmv0lziwmtcxmdizmtczmji0mja2.png" alt="aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcxMDIzMTczMjI0MjA2.png" class=" img-responsive img-markdown" width="1899" height="876" /></p>
<p dir="auto">选用默认的配置，直接保存.config文件，即是D100 数字电视老人机方案.</p>
<p dir="auto"><strong>5.编译melis sdk.</strong></p>
<p dir="auto">退出menuconfig菜单， 执行make melis (或者make, make all) 编译完整的SDK， 编译结束后，目标文件放置在./src/workspace/$(project) 目录下.</p>
<h1>关于内核选型，为什么基于RT-Thread内核？</h1>
<p dir="auto">最初进行开发的时候，候选内核其实有包括RT-Thread,FreeRTOS, Arm mBed, Zephyr以及 Nuttx在内的多个内核，并且Zephy已经开发适配到能够做视频播放的程度，但是最终选择了RT-Thread作为Melis3.0方案新架构的内核。有些内核，比如zephyr,mbed os, freeRTOS，这类系统用户很多，支持的开发板也很多，但是局限在一些小资源的开发板上，总体上给人的感觉是广度有余，高度不足，难以承担多媒体这种比较垂直类的应用, 而RT-Thread则具备更多的可能性，经过多方考量，最终选择了它并进行了深度适配。</p>
]]></description><link>https://bbs.aw-ol.com/topic/1287/melis3-0系统quick-start</link><generator>RSS for Node</generator><lastBuildDate>Sat, 17 Oct 2026 06:43:26 GMT</lastBuildDate><atom:link href="https://bbs.aw-ol.com/topic/1287.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Apr 2022 02:59:16 GMT</pubDate><ttl>60</ttl></channel></rss>