前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发者成长激励计划-基于TencentOS Tiny的应用开发测试平台

开发者成长激励计划-基于TencentOS Tiny的应用开发测试平台

原创
作者头像
用户1224860
修改2022-08-11 12:06:13
7910
修改2022-08-11 12:06:13
举报
文章被收录于专栏:活动文章活动文章

有幸能够参与这次比赛,学到了很多知识,在这个过程中不断学习TencentOS,并且成功完成了hello world的运行。

由于忘记

TencentOS tiny整体架构

RTOS的多任务设计

开发板简介

CH32V_EVB是腾讯物联网操作系统TencentOS tiny 团队联合沁恒微电子设计的一款物联网评估板,用于TencentOS tiny 基础内核、RISC-V IP核架构和IoT组件功能体验和评估。

单片机最小系统或者叫最小硬件单元电路,指用最少元器件组成的单片机可以正常工作的系统。最小系统基本由电源、单片机、晶振、按键复位电路、用户LED等接口组成,电源使用3.3V直接供电,其他部分原理图如下:

沁恒微电子简介

沁恒微电子股份有限公司成立于2004年,是一家通讯接口芯片和全栈MCU芯片公司。沁恒专注于连接技术和MCU内核研究,基于自研收发器PHY和处理器IP的全栈研发模式,取代传统的外购IP整合模式,提供以太网、蓝牙无线、USB和PCI类等接口芯片,及集成上述接口的连接型/互联型/无线型全栈MCU+单片机。

开发板特性

  • 内置TencentOS Tiny开源物联网操作系统
  • 开发板采用沁恒RISC-V MCU CH32V307VCT6芯片,CH32V305/7系列是基于沁恒自研RISC-V架构微处理器青稞V4系列设计的32位工业级互联型微控制器,配备了硬件堆栈区、快速中断入口,在标准RISC-V基础上大大提高了中断响应速度。加入单精度浮点指令集,扩充堆栈区,具有更高的运算性能。扩展串口UART数量到8组,定时器到10组,其中4组高级定时器。提供USB2.0高速接口(480Mbps)并内置了PHY收发器,以太网MAC升级到千兆并集成了10M-PHY模块。
  • 64KB SRAM,256KB Flash
  • 板载Type-C接口WCH-LINK仿真器
  • 板载esp8266 WiFi模组,支持腾讯云固件
  • 板载以太网接口
  • 板载物联网俱乐部WAN Interface接口,可支持NB-IoT、WiFi、4G cat1、LoRa等模组
  • 板载物联网俱乐部E53 Interface接口,可扩展全系E53传感器以及音频模块;
  • 板载标准24P DVP摄像头接口,可支持最高500万像素摄像头;
  • 板载1.54寸 IPS高清显示屏,支持240*240分辨率;
  • 预留SD卡、用户按键、SPI Flash,
  • 扩展IO口,方便开发者扩展硬件模块

活动介绍

作为全新一代开源精简指令集,RISC-V在AIoT时代备受关注,国内外芯片公司积极布局,RISC-V生态正逐渐起步。TencentOS Tiny(待更名)物联网操作系统也率先支持了RISC-V架构的芯片,提供基于RISC-V的全栈AIoT解决方案。本次开发者成长激励计划是由开放原子开源基金会主办,腾讯TencentOS团队联合国内本土领先MCU芯片公司-南京沁恒微电子等多家单位协办、发起的线上开发者活动,主要面向中小企业嵌入式工程师、RISC-V开发者、物联网爱好者、创客团队等,期待与广大开发者一起共建RISC-V应用生态,基于TencentOS Tiny(待更名)和沁恒RISC-V MCU打造更多新颖、实用、有价值和创造力的IoT应用作品。

开发平台以及代码部分

代码语言:javascript
复制
#include <stdio.h>
#include <reg51.h>

void initUart(void) //串行通信函数
{
    SCON = 0x50;
    TMOD = 0x21;
    PCON = 0x00;
    TH1 = 0xfd; 
    TL1 = 0xfd;
    TI = 1;
    TR1 = 1;

}

int SPrintf(const char *fmt, ...)
{
    const char *s;
        u8 *Buf;
    u16 d;
        float f;
    u8 tbuf[16];
        u8 i=0;
    va_list ap;
    va_start(ap, fmt);
        Buf=ShowBuf;
    while (*fmt)
        {
                for(i=0; i<sizeof(tbuf); i++)
                tbuf[i]=0;
        if (*fmt != '%')
                {
            *Buf++=*fmt++;
            continue;
        }
        switch (*++fmt) {
                        //字符串
            case 's':
                s = va_arg(ap, const char *);
                                if (s == NULL) {break;}
                for ( ; *s; s++) {
                    *Buf++=*s;
                }
                break;
                        //十进制
            case 'd':
                d = va_arg(ap, int);
                sprintf(tbuf, "%d",d);
                for (i=0; tbuf[i]!='\0';i++) {
                    *Buf++=tbuf[i];
                }
                break;

                   //十六进制
           case 'x':
                d = va_arg(ap, int);
                sprintf(tbuf, "%x",d);
                for (i=0; tbuf[i]!='\0';i++) {
                    *Buf++=tbuf[i];
                }
                break;
           case 'f':
                f = va_arg(ap, double);
                sprintf(tbuf, "%f",f);
                for (i=0; tbuf[i]!='\0';i++) {
                    *Buf++=tbuf[i];
                }
                break;
            // Add other specifiers here...              
            default:  
                *Buf++=*fmt++;
                break;
        }
        fmt++;
    }
        *Buf='\0';
    va_end(ap);
         LCD_Show_c_String(ShowBuf);
    return 1;   // Dummy return value
}

int main() {
    int a[10] = { 72, 101, 108, 108, 111, 87, 111, 114, 108, 100 };
    for (int i = 0; i < 10; i++) {
        if (!(i - 5))
            SPrintf(" ");
        SPrintf("%c", a[i]);
    }
    SPrintf("\n");
    while (1) {}
}
更多详细代码,可以查看github仓库

写在最后

感谢腾讯给我这次接触嵌入式开发的机会,感谢腾讯和沁恒的所有技术支持。我有幸尝试了大部分例程,也在群里学习到了很多有用的知识。在实际中还是很有用的。本次开发就到这里了。

本文可能部分内容有错漏,如无法执行麻请忽略。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TencentOS tiny整体架构
  • RTOS的多任务设计
  • 开发板简介
  • 沁恒微电子简介
  • 开发板特性
  • 活动介绍
  • 开发平台以及代码部分
  • 写在最后
相关产品与服务
TencentOS Server
TencentOS Server 是腾讯云推出的 Linux 操作系统,它旨在为云上运行的应用程序提供稳定、安全和高性能的执行环境。它可以运行在腾讯云 CVM 全规格实例上,包括黑石物理服务器2.0。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档