打印

VSF介绍 - MCU的RAD开发理念

[复制链接]
4386|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AD, MCU, os, RTOS, pc
本帖最后由 Simon21ic 于 2017-1-22 00:28 编辑

VSF的诞生是因为懒,VSF的成型是因为消费类电子行业,因为VSF的一个重要理念就是MCU的快速应用开发(RAD)。这种MCU开发理念的革新,我也和一个大神-傻孩子讨论过,以后甚至可由可能会邀请傻孩子加入VSF的开发,会有很多好玩的东西。

RAD并不是什么新的理念,早在10年前,窗口程序的开发就已经使用了RAD的开发方式,比如微软的Visual系列,Borland的Delphi等等。傻孩子以前说,MCU开发是使用PC开发淘汰的技术;我说的是,当MCU的性能、资源等,发展到一定程度后,人们就可以而且应该偷懒了。而PC就已经经历过了这个过程,MCU势必也会走一样的道路。

当然,MCU的问题会比那个时候的PC多很多,因为MCU的种类,资源差别非常巨大。VSF并非试用所有的情况,VSF主要用于小资源的32位MCU,一般几K到几十K的RAM。对于一些资源更加丰富的MCU,可能跑RTOS会更加适合。当然,以后对于RTOS来说,也一样,也都会需要用RAD的方式开发,而不仅仅是一个RTOS的内核。当然,实际情况一般看应用需求,来选择用什么样的系统,如果VSF的功能满足的话,也有成本要求,那也不需要去选择RTOS实现。

在RAD的开发理念下,应用开发会变得类似搭积木一下简单和快速,用户的代码只是面向应用,之前发过一个例子,main函数模板就是在这个理念下的产物。应用里,很多功能直接调用各个中间库,配合各个中间库的文档,很容易就可以实现一些比较复杂的功能。这个也就是VSF成型与消费类电子的原因,消费类电子的产品,很多都需要有非常快的开发速度,以及比较低的成本。而且,由于VSF是多任务系统,很多客户的修改要求,都不需要修改构架,无非就是增加或者删除一些任务而已。

本帖只是讨论帖,元芳,你怎么看?

相关帖子

沙发
renxiaolin| | 2017-1-22 10:46 | 只看该作者
不能说MCU开发是使用PC开发淘汰的技术,pc的架构跟mcu就不一样,mcu基本是soc的,开发理念不一样,在有的方面对mcu的要求甚至更高,在一个计算机系统,cpu是核心,周边外设,以及总线无不与cpu相关,pc的cpu跟我们所说的mcu的设计着眼点也不一样,不能简单的说mcu开发使用pc淘汰的技术,比如在arm中有ahb,apb之类的概念,在pc中就没有,很多mcu是使用risc架构,而大多pc的cpu是cisc架构,不能简单的说哪个是用淘汰的技术,所谓的快速开发什么的,我觉的没什么可偷懒的,看看linux的内核源码架构,就会知道怎么做,其实国外在这方面比我们做的早,考虑的更全面,当你知道对任何通用型cpu从上电到执行操作系统的第一个进程开始经历的所有步骤,在回头看看国外的开源工程设计,你就会知道该怎么做,这也是我不看好在mcu自己开发什么通用的原因

使用特权

评论回复
板凳
科技猎人| | 2017-1-22 11:09 | 只看该作者
弱弱的问一下,VSF是什么意思。

使用特权

评论回复
地板
Simon21ic|  楼主 | 2017-1-22 12:55 | 只看该作者
本帖最后由 Simon21ic 于 2017-1-22 13:05 编辑
renxiaolin 发表于 2017-1-22 10:46
不能说MCU开发是使用PC开发淘汰的技术,pc的架构跟mcu就不一样,mcu基本是soc的,开发理念不一样,在有的 ...

MCU开发也是从汇编发展到C语言,甚至C++。对开发方式的限制,并不是芯片构架,而是资源限制,只是MCU的发展,相对PC要慢很多而已

其实对通用性开发具有最大帮助的就是C语言,不同的芯片构架里,C语言的各个语句都是一致的含义,只是针对嵌入式会有各种扩展而已。C语言不久为了通用性开发,为了偷懒而产生的吗?不然大家都用汇编就好

看一下linux代码,也知道PC从上电,到设备识别是怎么做的,为什么大家做PC应用,不从这个开始呢?原因就是大家都希望有更高的效率,不希望重复开发,MCU不一样吗?

现在的PC是CISC的指令集,RISC的内核,这个就是技术的发展,不能只停留在一点

使用特权

评论回复
5
Simon21ic|  楼主 | 2017-1-22 12:56 | 只看该作者
科技猎人 发表于 2017-1-22 11:09
弱弱的问一下,VSF是什么意思。

Versaloon Software Framework

使用特权

评论回复
6
renxiaolin| | 2017-1-22 13:38 | 只看该作者
Simon21ic 发表于 2017-1-22 12:55
MCU开发也是从汇编发展到C语言,甚至C++。对开发方式的限制,并不是芯片构架,而是资源限制,只是MCU的发 ...

我说的是不能说mcu开发使用的是pc淘汰的技术
mcu的发展相对pc慢?我只能呵呵

使用特权

评论回复
7
Simon21ic|  楼主 | 2017-1-22 13:42 | 只看该作者
本帖最后由 Simon21ic 于 2017-1-22 13:49 编辑
renxiaolin 发表于 2017-1-22 13:38
我说的是不能说mcu开发使用的是pc淘汰的技术,
mcu的发展相对pc慢?我只能呵呵
...

我这里说的淘汰的技术,是指以前PC上用过的技术,不是现在最新的PC开发技术
一些最新的技术,虽然也有在MCU中使用,但是占有的比例要小很多
C语言,就是PC开发淘汰的技术,现在在PC开发语言中的排位也不是很久前长期霸占的第一位了。虽然仍旧占有不晓得比例,但是这个确实不是最新的PC开发技术了

MCU发展的慢很正常,收到成本的制约
你可以评估一下,从80386到现在,PC的性能提升多少。而从51到现在,MCU的性能提升多少

呵呵就没意思了,摆事实讲道理,这个才是讨论和交流

使用特权

评论回复
8
renxiaolin| | 2017-1-22 14:01 | 只看该作者
Simon21ic 发表于 2017-1-22 13:42
我这里说的淘汰的技术,是指以前PC上用过的技术,不是现在最新的PC开发技术
一些最新的技术,虽然也有在MC ...

我已经说啦,我们所说的mcu跟pc的设计着眼点就不一样,不同的领域有不同的技术,不存在mcu用pc淘汰技术的说法,并且你说c语言是pc开发淘汰的技术很不合适,c语言是一种计算机语言,在mcu跟pc的编程均有广泛的应用,但对于编程语言的优劣不是要讨论的,c语言在TIOBE排行榜大家可以长期看看,mcu的发展并不慢,从传统的51到现在的cortexM3,M4,cortexA9到A15,这才是arm系列的,mips,ppc的发展也是很快的,另外你说的性能,其实还是那句,我们所说的mcu跟pc的设计着眼点就不一样,对mcu而言一个重要的观察点就是功耗,我能说因为arm的功耗低,技术就比intel的i系列先进?就不是相同的应用场景,用的技术跟考虑的设计方案没有什么哪个是淘汰的,因为你是版主,所以不想你误导人,才多说几句

使用特权

评论回复
9
Simon21ic|  楼主 | 2017-1-22 14:36 | 只看该作者
renxiaolin 发表于 2017-1-22 14:01
我已经说啦,我们所说的mcu跟pc的设计着眼点就不一样,不同的领域有不同的技术,不存在mcu用pc淘汰技术 ...

我也说了,我这里的淘汰是指非最前沿的技术,PC开发确实很大一部分还是用C语言的。但是,上个世纪的C语言,在应用开发中,已经显得力不从心了,所以,PC上,C语言一般只是用于系统或者一些核心。应用部分可以有的选择就太多了,比如,可以用Python脚本做一些GUI啥的,比用C语言有太多的优势了。PC能够发展到这个地步的原因,就是PC的资源和性能的发展。

如果,对于MCU来说,重要的是功耗的话,那为什么MCU不考用使用最新的工艺。当然,你说的CortexA等级的,已经不是MCU级别了,CortexM才是针对MCU市场推出的ARM核心。我目前知道的最新的CortexM4,最多也只是用到40nm工艺,这个发展明显慢于CPU。甚至很多MCU的工艺,只是.11,.13等级的。这些主要受限于成本。

PC从汇编进入C语言,后面进入RAD,再到现在的脚本开发方式,就是因为资源和性能的不断增长。使得一些更高效的开发方式成为可能。你认为MCU的开发不会这样吗?至少我目前看到的,MCU从以前直接控制寄存器,到现在SOC的方式,通过外设库,已经提升了不少开发效率了。随着性能和资源的进一步增长,成本的进一步降低,后面的路为啥不能走呢?

不管是MCU还是PC,我认为开发方式,都是在当前性能和资源以及成本下,选择最高效的开发方式。

使用特权

评论回复
10
renxiaolin| | 2017-1-22 14:41 | 只看该作者
Simon21ic 发表于 2017-1-22 14:36
我也说了,我这里的淘汰是指非最前沿的技术,PC开发确实很大一部分还是用C语言的。但是,上个世纪的C语言 ...

原来你的认识是,资源多的就是pc,在51单片机,或者M3,M4的片子就是mcu,然后得到mcu用的是pc淘汰的技术这个观点,看来是我想多啦,哈哈哈哈哈哈哈哈哈哈哈哈哈

使用特权

评论回复
11
a20084666| | 2017-1-22 14:49 | 只看该作者
这个想法不错,

使用特权

评论回复
12
Simon21ic|  楼主 | 2017-1-22 15:06 | 只看该作者
本帖最后由 Simon21ic 于 2017-1-22 15:07 编辑
renxiaolin 发表于 2017-1-22 14:41
原来你的认识是,资源多的就是pc,在51单片机,或者M3,M4的片子就是mcu,然后得到mcu用的是pc淘汰的技术 ...

现在PC的概念也已经越来越模糊了,ARM也可以跑Win10,甚至可以跑原生x86程序了。但是,这个等级的芯片至少是APU的,不是MCU。我自己的开发平台,基本只针对MCU,CortexA以上等级的就算了,到这个资源等级,那肯定选择更高效的开发方式。

这个讨论不错,抛砖果然能够引出玉,我这里引出的结论就是:
不管是MCU还是PC,都是在当前性能和资源以及成本下,选择最高效的开发方式。
之前的标题确实没有明确表达这个意思。

对于很多CortexM等级的MCU来说,确实到了可以用RAD的开发方式了。Arduino不就是这方面走在前面的吗?Arduino以前还是针对AVR的,我的想法就是把这更加进一步。我们近几年的很多项目,就是按照这种方式做的,一些芯片原厂愿意和我们合作,就是看到我们有这个开发效率。这个就是RAD的开发方式带来的。

当然,MCU中,还有很多小资源的芯片,RAD并不适合。这个就是受到性能、资源、成本限制,无法使用更加高效的开发方式。

使用特权

评论回复
13
Simon21ic|  楼主 | 2017-1-22 15:19 | 只看该作者
本帖最后由 Simon21ic 于 2017-1-22 15:34 编辑

MCU的开发上,我们尝试过很多方式。

我们尝试过MCU上跑的虚拟机,占用flash大概6K左右,PC上用类似C语言开发(对C语言做了很多简化,比如变量只有int类型等等),编译后,可以在MCU里的虚拟机环境下运行。

我们尝试过使用动态加载通用模块的方式来组成系统,对于CortexM的芯片,各个模块都不需要重新编译,下载进去就可以使用。

我们还尝试过脚本话的开发方式,不过后来发展成为虚拟机的方式,因为占用的资源小很多。直接解析文字脚本的代码,放在PC端的编译器里了。

RAD的这种开发方式,是我们这里尝试比较成功,可以非常有效提高开发效率,并且,也可以公开的东西。

使用特权

评论回复
14
renxiaolin| | 2017-1-22 15:22 | 只看该作者
这是我从百度百科复制的:

捕获.PNG (24.25 KB )

捕获.PNG

使用特权

评论回复
15
Simon21ic|  楼主 | 2017-1-22 15:38 | 只看该作者
本帖最后由 Simon21ic 于 2017-1-22 15:40 编辑
renxiaolin 发表于 2017-1-22 15:22
这是我从百度百科复制的:

MCU是芯片级的计算机,CortexA等级的APU也可以是,芯片级的计算机,意思是SOC吧?X86应该就不算了。
而且,最早的51等级的芯片,外设都需要扩展的,那应该就不算是芯片级的计算机了

使用特权

评论回复
16
icecut| | 2017-1-22 15:55 | 只看该作者
芯片公司都在做这种事情,非官方做成本太高了,太高了

使用特权

评论回复
17
xm419| | 2017-1-22 16:22 | 只看该作者
今年产值过亿了没有?

使用特权

评论回复
18
renxiaolin| | 2017-1-22 16:32 | 只看该作者
icecut 发表于 2017-1-22 15:55
芯片公司都在做这种事情,非官方做成本太高了,太高了

你说的就是我想的

使用特权

评论回复
19
Simon21ic|  楼主 | 2017-1-22 16:32 | 只看该作者
本帖最后由 Simon21ic 于 2017-1-22 16:42 编辑
icecut 发表于 2017-1-22 15:55
芯片公司都在做这种事情,非官方做成本太高了,太高了

是的,这个是趋势
非官方的话,那就不只是一个人去做这个东西了,取决于参与的人数

另外就是,官方的外设库,不会考虑通用性,只要自己的芯片可以用就可以了。而且,有些库也并不是做了最完善的。举个例子:对于ST的USB外设驱动库,你是非常熟悉的了,可以和我们的USBD驱动比较一下:https://bbs.21ic.com/icview-1640872-1-1.html。开发效率上有不小的差别了,这个就是RAD的开发方式。

至少我们现在VSF里的通用驱动库,做的还算不错,不过这个驱动库只针对VSF的需求,其实并不是通用的,只是可以适应多种MCU芯片而已。

使用特权

评论回复
20
Simon21ic|  楼主 | 2017-1-22 16:33 | 只看该作者
xm419 发表于 2017-1-22 16:22
今年产值过亿了没有?

??
回错帖子了吧?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

266

主题

2597

帖子

104

粉丝