OneOS代码贡献比赛
2022-01-25 14:39:05

各位小伙伴们,相信大家对开源系统OneOS的代码都已有了一定程度的了解(没了解的朋友快去这里看看啊,有代码、文档以及详细的学院课程),那么现在,就请各路大神下场比划比划露两手,为OneOS写一段代码吧!同时,团队小伙伴们还准备了丰厚的奖品,就等你来搬回家!

 

详细的竞赛说明,看这里啊!👇🏻

 

为了让参赛选手更好地使用启物开发板参赛,本文对赛事支持的硬件做相关介绍

 

关于灵动MM32F3270微控制器

灵动微电子有限公司成立于2011年,是中国本土领先的通用32位MCU产品及解决方案供应商。中移物联网有限公司与灵动微电子股份有限公司在竞赛方面曾展开多次合作。今年8月,中国移动OneOS操作系统团队携手灵动微电子,助力2021年全国大学生嵌入式芯片与系统设计竞赛灵动赛道,在广大学生群体中推广OneOS物联网操作系统及云平台应用开发。

 

MM32F3270微控制器使用了高性能的 ARM® Cortex®-M3 32 位微控制器内核,工作频率高达120 MHz,内置高速存储器、丰富的I/O 端口和外设:包含多达3 个12 位的数字/模拟转换器、 2 个模拟比较器、 11个面向不同用途的定时器,及丰富的标准通信接口:2 个I2C 接口、 3 个I2S 接口、 3 个SPI 接口、 1 个USB OTG 全速接口、 1 个CAN 接口、 1 个SDIO 接口、 1 个Ethernet 接口和 8 个 UART 接口。本系列产品工作电压为 2.0V ∼ 5.5V,工作温度范围(环境温度)包含 40◦C ∼ +85◦C的 工业型和 40◦C ∼ +105◦C 的扩展工业型(尾缀 V) 。内置多种省电工作模式保证低功耗应用的要求。本器件提供 LQFP144、 LQFP100、 LQFP64 等多种封装形式。

 

启物开发板

中移OneOS团队基于OneOS 2.0操作系统及灵动MM32芯片,设计制作了启物开发板,并于本次比赛对开发者发放使用。

接口类

板载USB-TTL接口:启物开发板Debug UART输出接口,硬件接口为USB Type-C母座,,直连电脑设备识别为CH340串口,可作为5V供电接口。

MCU USB0接口:MM32F3277 USB接口,支持USB2.0 Full-Speed(全速)。硬件接口为USB Type-C母座,可作为5V供电接口。

屏幕接口:此接口可使用逐飞科技的TFT1.8寸屏幕,也可使用1.14寸或2.0寸IPS屏幕,或者使用OLED屏幕,连接方式详见后续接口讲解。

摄像头接口:此接口可接入摄像头类光电传感器,兼容逐飞科技的小钻风硬件二值化摄像头、总钻风全局快门灰度摄像头。

SWD调试接口:此接口连接MM32F3277芯片的SWD调试引脚,可直接使用逐飞科技的DAP调试下载器与ARM调试下载器进行调试下载。

JTAG调试接口:标准的JTAG接口,可使用Jlink调试下载器直连进行调试下载。

RTC电池:纽扣电池卡扣,可使用纽扣电池为芯片RTC供电。

电源拓展接口:为了方便用户接线测试使用,预留的3V3、5V与GND接口。

IO拓展接口:2.54mm间距的双排针接口,引出了芯片上部分IO引脚,包含一些常用的功能例如ADC、PWM、UART与SPI等。

NRF2401接口:2.54mm间距的双排座接口,可直接使用常见的SPI接口的NRF24L01模块。

SD(TF)卡座:SD卡插槽,可使用SD(TF)卡。

 

模块类

蜂鸣器:有源蜂鸣器,使用芯片的B5引脚进行控制,可以使用PWM方式调音。

AHT20温湿度传感器:开发板搭载的温湿度传感器,使用IIC方式驱动对应芯片B10/B11引脚。

ESP8266 WiFi 模块:开发板搭载的无线WiFi模块,使用UART方式驱动对应芯片B0/B1引脚。

 

按键类

用户按键:连接至MCU的D12/D14D/15引脚,按下时对应引脚处于低电平。

功能按键/RST按键:连接至MCU的RST引脚,按下时芯片复位引脚电平拉低进入复位。

功能按键/BOOT0按键:连接至MCU的H3引脚,当MCU从复位状态进入运行状态时,若此按键处于按下状态,则MCU进入ISP启动模式。

 

跳线类

串口选择开关:此跳线开关可选择Debug UART的log信息从SWD调试接口输出还是从板载USB-TTL接口输出。

 

指示灯类

RGB指示灯:RGB灯珠,RED对应芯片A1引脚,GREEN对应芯片A2引脚,BLUE对应芯片A3引脚,可使用对应引脚的PWM或者IO方式驱动。

电源指示灯:主板上各3V3供电指示灯,正常黄色亮起为供电正常。

 

以上就是OneOS代码贡献比赛硬件支持相关介绍。除此之外,OneOS团队组织了资深硬件工程师为各位参赛者做技术支持,帮助大家更好的设计组件代码包,完成比赛。可加比赛主办方QQ 2096135491了解情况。欢迎大家踊跃参赛!

 


 

自11月OneOS代码贡献比赛开赛以来,小伙伴们热情高涨,报名踊跃。截止12月20日交题,我们一共收集到12份作品。经过验证评比,共有8份代码包脱颖而出。本次代码贡献比赛作品精彩纷呈:有蜂鸣器、OLED等硬件适配,也有高级语言LUA的适配,更有参赛者做出了2048小游戏!我们来一起瞧瞧吧。

 

1、OLED显示屏适配

首先登场的作品是“OLED显示屏适配”。OLED有着色彩鲜艳、功耗低的优点,它的显示技术具有自发光的特性,透过非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,不仅显示屏幕可视角度大,而且耗电能够降低。

OLED显示屏可以更为直观的展示物联网设备的相关信息,并且可以为大家做显示相关的demo提供有利的支持。这次比赛,参赛者就做了基于OneOS系统的OLED的适配,显示效果清晰流畅,挺棒的吧!

 

2、内存泄漏监测工具

内存泄漏监测是很实用的一个工具,可以及时的发现风险。接下来咱们看看参赛者制作的这个内存动态监测工具吧。

此内存监测工具主要是通过对malloc、free等内存分配、释放函数进行接管,在实际执行malloc等内存分配操作时,记录内存信息,如内存分配大小、分配地址、调用内存分配函数的指令地址等,同时,执行内存释放操作时,将对应的内存信息删除或者更新。此外,该组件会启动一个定时任务,每隔一定时间(可配置)将记录的内存快照信息打印输出至二进制文件。当待检测程序运行结束或者运行时间足够长后,将这些快照文件拷贝到个人电脑或者服务器上,利用配套的解析工具对快照文件进行解析、分析,如果检测到了内存泄漏,会生成一个报告文件,将调用内存分配函数的指令地址等信息记录在检测报告中。整体看下来,这个设计可谓考虑非常全面了。

 

3、高级语言LUA适配

支持高级语言是操作系统的一个重要的能力。我们的OneOS操作系统已经适配了MicoPython语言。来看看参赛者提供的代码包执行效果吧。

这次参赛者贡献的代码包是适配高级语言LUA,实现了基本功能。实现了一个PIN的类方法,定义了pin.read和pin.write的方法,直接映射到操作系统底层的pin的读写。开发难度很大,看的出来作者下了不少功夫。

 

4、2048小游戏

看过了上面这么多实用的工具,是不是有些疲劳了呢?来,咱们一起玩个游戏。

你没看错,这个作品正是大名鼎鼎的2048小游戏。这个作品立意新颖,作者想我们在专注编写代码之余,玩一把2048小游戏,转换个思路,回头码代码效率都更高了呢。OneOS 2.0操作系统配合万耦L475开发板,使小游戏运行流畅,显示清晰。看得出参赛者代码功底非常扎实。

 

5、两款移位寄存器的外设驱动程序适配

首先登场的作品是“两款移位寄存器的外设驱动程序适配”,这两款移位寄存器分别基于74HC165和74HC195芯片。移位寄存器是十分有用的器件,例如使用LED设计中,可以使用标准8位移位寄存器,以便允许低引脚数微控制器驱动多个LED。咱们看看这个移位寄存器驱动适配的效果吧。

此代码包适配的模块主要逻辑芯片为74HC595和74HC165,其是一款高速CMOS八位并入串出移位寄存器。每个模块支持串行转8路并行继电器输出,支持多模块级联使用。用于单片机引脚不足的情况下进行输出IO引脚扩展,单片机侧仅需要4个IO接口,可扩展出N×8个输出接口(N为级联的模块数量)。代码包已经移植到“万耦创世”和“万耦启物”两款开发板,并测试通过。

 

6、sensor ms5611传感器的适配

众所周知,物联网需要大量的感知层元器件,即各种类型的传感器,本次参赛者提交的ms5611传感器适配,使OneOS能直接使用ms5611传感器组件,对大气压强和温度进行感知,适合气象监测、多功能探险手表上使用。

可以看到,代码包程序成功获取到温度、气压,以及海拔高度数值,实现了相关功能。适配ms5611传感器的代码包可以在手表等智能穿戴应用上使用,节省开发时间。

 

7、万耦开发板蜂鸣器及按键驱动适配

OneOS万耦创世开发板上蜂鸣器及按键的适配,让我们提供给开发者的板子可以更简单、更容易地被使用。咱们看看效果吧。

跳转链接查看完整演示链接

参赛者做的软件定时器,成功实现每隔4秒使蜂鸣器鸣叫2次。此组件包可以配合其他应用使用,比如程序报错时进入鸣叫示警等,减少开发工作量。

 

8、sht30传感器适配 

sht30是比较实用的温湿度传感器,常用于做物联网智慧农业方面的应用,由于价格较低,深受大家喜爱。

开发者提供的组件包运行结果,从图 “sht30 temp init success”,“sht30 humi init success”可以看出sht30传感器实现注册成功,可以实现温湿度采集功能。此组件包可以在智慧农业应用的制作中应用,为制作相关行业应用减少开发时间。

 

以上便是本次OneOS代码贡献比赛下篇要介绍的全部作品啦。本次评选的8个获奖作品代码包后续将在OneOS组件中心上架,供各位开发者下载使用。提供代码包的作者将获得OneOS团队及灵动微电子提供的精美奖品。感谢灵动微电子对本次比赛的大力支持。没能参加本次比赛的小伙伴不要灰心,2022年度我们仍将举办OneOS代码贡献比赛及demo制作比赛,欢迎大家踊跃参与哦~

上一篇:OneOSV2-2-0发布
下一篇:OneOS通过CCRCEAL4+认证