发新帖本帖赏金 2.00元(功能说明)我要提问
返回列表
打印

MCU的组件式开发方式会不会到来?

[复制链接]
楼主: Simon21ic
手机看帖
扫描二维码
随时随地手机跟帖
21
大家一块来讨论一下

使用特权

评论回复
22
落叶行健ywm| | 2016-6-29 17:39 | 只看该作者
掌握好一款芯片后,很多外设自己封装成模块接口函数调用,然后搞个嵌入式操作系统调度,其实也就是组件式开发吧。只是图形化貌似比较难,涉及的很多,需要很多东西,我想个人真的很难搞的。coocox这个开发工具就是这样组件开发的。

使用特权

评论回复
23
Simon21ic|  楼主 | 2016-6-29 17:46 | 只看该作者
yyy71cj 发表于 2016-6-29 16:33
能不能到来,就看能一起玩的人能不能玩到一起去……

这个我倒觉得不是问题,问题是,现在一起玩的人都是我培养的兼职人员,按照培训经验,这种开发方式和大部分人适应的开发方式不同,所以目前对开发人员的要求很高

使用特权

评论回复
24
Simon21ic|  楼主 | 2016-6-29 17:50 | 只看该作者
本帖最后由 Simon21ic 于 2016-6-29 17:59 编辑
落叶行健ywm 发表于 2016-6-29 17:39
掌握好一款芯片后,很多外设自己封装成模块接口函数调用,然后搞个嵌入式操作系统调度,其实也就是组件式开 ...

几年前就和coocox的经理聊过,coocox之所以还存在,是因为他们又一定数量的国外用户群体,否则可能就像ZLG的那个开发环境一样了吧。
另外,技术上也不是这么简单,我举个例子,如何在不同芯片上,使用同样的USB device接口来实现USB功能?比如,如果使用一些现有代码,构架不一定符合设计的系统的构架。例子是如果使用fatfs,那底层接口就是阻塞的,那也就是说,系统构架就需要抢占式的多任务操作系统构架。但是,抢占式的系统,即使在32位MCU里,使用的也不是最多,很多系统只是一些专用的状态极构架

所以,技术上,组件式的开发是需要系统设计人员实现的,比如RTT可以加入组件技术,而且,这种强面向对象的系统,要实现组件话也是很简单的

使用特权

评论回复
25
LxiaoseI| | 2016-6-29 18:35 | 只看该作者
keer_zu 发表于 2016-6-27 20:40
mcu的门槛越来越低了。会不会总有一天mcu程序员不再是一个特殊物种,和普通程序员一个样了? ...

新芯片,代码还是要写的(原厂工程师),只是对于普通用户(应用厂商程序员)来说,更便捷了而已

也就是说以后单片机代码基本原厂都完成了(其实现在原厂做的已经很完善了),以后找工作更难的

应用厂商程序员就是PC通用平台程序员,没有什么分别了,更多的关注应用本身

使用特权

评论回复
26
杉树林罗| | 2016-6-29 19:39 | 只看该作者
组件出来的代码只具有一般通用性吧,如果对于某些层面有特殊或较高要求的话估计还是得自己动手垒代码

使用特权

评论回复
27
落叶行健ywm| | 2016-6-29 21:50 | 只看该作者
Simon21ic 发表于 2016-6-29 17:50
几年前就和coocox的经理聊过,coocox之所以还存在,是因为他们又一定数量的国外用户群体,否则可能就像ZLG ...

RTT使用是很好用。我个人感觉和Linux类似吧,通过宏定义来选择,其实也算是软件级别的组件式开发吧。当然这种组件门槛比较高,是在需要了解的基础上开发的。和你所想的GUI组件式开发还相差很远呢。记得大学那个时候的FPGA就是画图式的开发!

使用特权

评论回复
28
落叶行健ywm| | 2016-6-29 21:51 | 只看该作者
Simon21ic 发表于 2016-6-29 17:50
几年前就和coocox的经理聊过,coocox之所以还存在,是因为他们又一定数量的国外用户群体,否则可能就像ZLG ...

其实我一直在使用Coocox,很喜欢这种方式。和以前用linux开发有一定关系!

使用特权

评论回复
29
forthlab| | 2016-6-29 22:23 | 只看该作者
本帖最后由 forthlab 于 2016-6-29 22:42 编辑

我一直用freescale的芯片,就是当年喜欢他的processor expert,外设接口配置很方便,也有MQX操作系统的,我没有用过;
你们说的cubemx等我都没有听说过,去瞧瞧
期望模块化的编程模式早日出现;
不过我觉得这应该就是一个多任务操作系统,
不同的cpu编写底层代码,以及外设驱动;
用户配置基本参数;
所以最后可能就是走到linux那条路上去了

刚才上网去查了一下cubemx,感觉还是不如freescale的CW processor export;

使用特权

评论回复
30
Simon21ic|  楼主 | 2016-6-29 22:46 | 只看该作者
本帖最后由 Simon21ic 于 2016-6-29 22:48 编辑
落叶行健ywm 发表于 2016-6-29 21:50
RTT使用是很好用。我个人感觉和Linux类似吧,通过宏定义来选择,其实也算是软件级别的组件式开发吧。当然 ...

并不是用了GUI,才是组件式开发的,也并不是用了抢占事操作系统才能实现组件式开发的
和面向对象一样,用C也一样可以实现,关键在开发人员上
https://bbs.21ic.com/icview-1607592-1-1.html

使用特权

评论回复
31
Simon21ic|  楼主 | 2016-6-29 22:56 | 只看该作者
本帖最后由 Simon21ic 于 2016-6-29 23:12 编辑
落叶行健ywm 发表于 2016-6-29 21:51
其实我一直在使用Coocox,很喜欢这种方式。和以前用linux开发有一定关系!

coocox的各种驱动的库的方式,就是一种组件化的方式,即使没有GUI,也是组件化
你需要用到dataflash的话,放入对应的.c文件,就可以使用了
不过,还有一些更加具体的我没去看过,比如,应用需要2个dataflash,coocox的这些驱动是否都是面向对象的?

我觉得组件化的开发方式,首先就是要求各个组件都是用面向对象的方式开发的(注意,这里不是说用面向对象的语言)。而一般RTOS本身,都是面向对象的。不过,还需要RTOS的外围(各种外设驱动库等),也是面向对象的。这样的好处是,不同的驱动,可以遵循同样的接口标准,现在的硬件可以使用dataflash,以后升级后,可以直接换成TF卡,而不用修改其他部分的东西,因为dataflash和TF卡都是块设备,同样的接口。
再比如命令行组件,命令行组件的输入和输入,都应该是标准的流,不管外面是如何实现的(比如,可以是一个串口流、可以是一个CDC的流、可以是telnetd的TCP流、甚至可以是一个输入命令的脚本文件流和一个输出日志的log文件流)。
可见,组件要通用,在设计上,还是有一定的要求的

使用特权

评论回复
32
Simon21ic|  楼主 | 2016-6-29 23:16 | 只看该作者
杉树林罗 发表于 2016-6-29 19:39
组件出来的代码只具有一般通用性吧,如果对于某些层面有特殊或较高要求的话估计还是得自己动手垒代码 ...

是的,组件一般都是在某种情况下,具备通用性的功能

使用特权

评论回复
33
落叶行健ywm| | 2016-6-30 08:21 | 只看该作者
Simon21ic 发表于 2016-6-29 22:56
coocox的各种驱动的库的方式,就是一种组件化的方式,即使没有GUI,也是组件化
你需要用到dataflash的话, ...

你说的这种方式其实很多嵌入式实时操作系统已经实现了哦!基本都开始遵循统一的接口了。都是一种组件式开发了。  拖拽式的GUI是我希望的一种更简单的开发方式。就好比QT开发,你可以使用写代码的方式进行界面编辑,也可以使用窗口拖拽方式进行开发。很明显后者更简单。 现在各种组件都遵循一定接口,封装的层次更多了。以前是直接操作寄存器,现在有芯片厂商提供的库,然后上层又有系统层,系统层上又有各个组件层,最后就是自己应用层。开源代码基本都是这么套路的。

使用特权

评论回复
34
keer_zu| | 2016-6-30 08:26 | 只看该作者
LxiaoseI 发表于 2016-6-29 18:35
新芯片,代码还是要写的(原厂工程师),只是对于普通用户(应用厂商程序员)来说,更便捷了而已

也就是 ...

所以真正对it感兴趣的,趁早拥抱互联网吧。小片子上面没出路。

使用特权

评论回复
35
dirtwillfly| | 2016-6-30 08:26 | 只看该作者
楼主可以关注一下mbed,也在向这个目标发展

使用特权

评论回复
36
lcdi| | 2016-6-30 08:48 | 只看该作者
cypress的psoc开发环境就是图形化可拖曳的RAD环境~

使用特权

评论回复
37
richard02| | 2016-6-30 09:09 | 只看该作者
好像是软件方面的事情,这样的技术出来后,估计很快就被盗版,然后开发方得亏死

使用特权

评论回复
38
liuyu305| | 2016-6-30 10:19 | 只看该作者
组件式开发,大家都在做,只是没有进入到图形化。
代码写多了,谁手里不是一堆的函数?都在copy使用

使用特权

评论回复
39
Simon21ic|  楼主 | 2016-6-30 11:54 | 只看该作者
落叶行健ywm 发表于 2016-6-30 08:21
你说的这种方式其实很多嵌入式实时操作系统已经实现了哦!基本都开始遵循统一的接口了。都是一种组件式开 ...

是的,操作系统天生具备OO特性,但是要做好组件话,需要的是操作系统的外延,而不仅仅是内核。如果去看一下RTT的外围模块的话,确实就是组件话的开发

使用特权

评论回复
40
Simon21ic|  楼主 | 2016-6-30 11:55 | 只看该作者
yyy71cj 发表于 2016-6-30 08:10
到现在为止,我发现你回答的问题一直是以“我”为中心的,这就是问题之关键…… ...

木有明白,这些却是都是我自己的观点,我的观点是问题的关键?

使用特权

评论回复
发新帖 本帖赏金 2.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则