当前位置:首页 > 嵌入式 > 嵌入式微处理器
[导读]在如今芯片沉浮的大环境下,中国“芯”一直在暗暗发力,经过卡脖子、等封装、没晶圆的窘境,下一步将会是什么情况不得而知。项目需求下,如果只有PLANA,风险等级就会被判定为为高。有PLANB,风险等级也只是“海中一滴水”。如此,PLANC、PLAND成了公司立项的常态的趋势,甚至有些...


在如今芯片沉浮的大环境下,中国“芯”一直在暗暗发力,经过卡脖子、等封装、没晶圆的窘境,下一步将会是什么情况不得而知。
项目需求下,如果只有PLAN A,风险等级就会被判定为为高。有PLAN B,风险等级也只是“海中一滴水”。如此,PLAN C、PLAN D成了公司立项的常态的趋势,甚至有些朋友将PLAN做到了“N”。
此情此景,人人都在暗自“搞备胎”,可想而知,这是到底有多慌。所以有一句话,芯不在手,慌上心头,只有捧在手里才是真“芯”
扯了这么多,似乎都是闲话,与本次的内容背道而驰,不过不用着急,好东西不怕晚,下面请出本次的主角:GD32E230C8T6芯片,搭载在GD32E230C-EVAL 开发板上,我们将其称之为DEMO板,按照国际惯例,首先是图片展示:

1、GD32E230系列芯片简介
ARM架构毋庸置疑,但是核属于CotexM23,MCU世界里面ARM家族的比较通用的是CotexM0,CotexM3,CotexM4等。
这CotexM23属于什么东西,很是奇怪,查了一下,属于ARMV8新的体系,百度一下ARMV8与ARMV7的区别,核心的区别是ARMV8为了满足64位的机器,所以进行了更新发展。
不过2011年就放出来了,话说也是快10年了,这许多年的发展,可怜我孤陋寡闻,尽然全然不知道这个东西,看来知识体系还是需要不断更新。

DataSheet的资源配置,全局呈现如下图所示:

纵观资源还是挺丰富,再看看配套DEMO板的裸机SDK,也是该有的都有GPIO、UART、ADC、IIC、SPI、I2S、IR、Timer等等


2、RT-Thread
不过不过,这些都是裸机的,正如标题,本文重点想说的是RT-Thread在CotexM23上的起起伏伏,CotexM23已经具备,只是RT-Thread还没登场,下面说说RT-Thread,当然百度一搜那也是一堆,RT-Thread优秀自然不用说,但是我的出发点是比较简单,因为他是国产的RTOS(实时操作系统),国产系统配国产“芯”那也算的是真正意义上的中国“芯”,值得鼓励,值得拥有。
以下是RT-Thread自言自语,摘抄自RT-Thread官网:
RT-Thread 主要采用 C 语言编写,浅显易懂,方便移植。它把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。针对资源受限的微控制器(MCU)系统,可通过方便易用的工具,裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源的 NANO 版本(NANO 是 RT-Thread 官方于2017 年 7 月份发布的一个极简版内核);而对于资源丰富的物联网设备,RT-Thread 又能使用在线的软件包管理工具,配合系统配置工具实现直观快速的模块化裁剪,无缝地导入丰富的软件功能包,实现类似 Android 的图形界面及触摸滑动效果、智能语音交互效果等复杂功能。
相较于 Linux 操作系统,RT-Thread 体积小,成本低,功耗低、启动快速,除此以外 RT-Thread 还具有实时性高、占用资源小等特点,非常适用于各种资源受限(如成本、功耗限制等)的场合。虽然 32 位 MCU 是它的主要运行平台,实际上很多带有 MMU、基于 ARM9、ARM11 甚至 Cortex-A 系列级别 CPU 的应用处理器在特定应用场合也适合使用 RT-Thread。
3、RTThread起起伏伏
NANO版本裁剪出仅需要 3KB Flash、1.2KB RAM 内存资源,还是比较惊艳,相较与其他的RTOS还是很酷的,FreeRTOS就达不到如此小巧简洁,大道至简,适用的场景就会更加丰富,一路通吃。本次就用NANO版本试验喽。
3.1 RTThread试验移植
官方的移植教程,清晰明了。优秀的团队出来的也是优秀的作品。以下是官方权威链接。
https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-nano/nano-port-keil/an0039-nano-port-keil
3.2 RTThread起起伏伏3.2.1起起伏伏第一幕
起伏现象:

原因分析:
rt_show_version()正常显示,突然就直接报错,挣扎许久,仔细分析了一番,RTThread超前初始化完成之后,便开始了主函数(main)线程的运行,因此可能是main线程出问题,是不是main线程的栈太小了,查看main线程栈大小,一看是256Bytes,上面的一行Default:512。


解决方案:
将main线程栈改为512

编译、烧录、验证果然不错了,果然是内有乾坤呀。至此起起伏伏第一幕完成。


3.2.2 起起伏伏第二幕
起伏现象:
承上启下,层层递进,RTThead控制台能正常运行,Finsh没有,no fish,无鱼(语)。

为什么就没有Finsh组件,观工程,Finsh组件加载了,char rt_hw_console_getchar(void)函数也有了,神马情况,还有坑????
 


百度分析一番,还是没有结果,百度如是说:


难道真的是这个原因(搞不清到底是个啥),添加上,试验一下,结果还是唏嘘不已,看来也不全然是这个问题,那就只能再静静思考一下。
原因分析:
根据现象看本质,首先看看MSH的配置,栈的大小1024比较大了,应该是没问题的,那难道是线程优先级的问题,优先级21,这是个什么等级,估计都被遗忘了,抢都抢不到执行的权利吧,可怜呀。


解决方案:
试验一下,提升一下地位,修改一下等级,加入抢占的行列梯队,于是修改了优先级

保存、编译、烧录,哎呦MSH出来了,看来真是这个坑呀!至此起起伏伏第二幕完成。

2.3 起起伏伏番外
没有伏,只有起,help一下,蹦出不少东西,至此为RT-Thread在CotexM23上的起起伏伏暂告一段落。

此文如有不恰当出处,敬请谅解,路漫漫其修远兮,中国“芯”路历程,我们一起见证起起伏伏,最后附上工程代码。
 GD32E23x_Demo_RTT.rar (1.28 MB, 点击“阅读原文”内下载文件)

END
本文系21ic论坛资深网友yanzhengxin1原创撰写
嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭