打印
[开发工具]

用Eclipse替代Keil&IAR来开发ARM应用(升级版)

[复制链接]
楼主: kiya_21
手机看帖
扫描二维码
随时随地手机跟帖
21
这是单片机,一个只能跑72M速度,只有几百K的Flah和一般不超过64K的RAM的小CPU,所以我想问:
1、编译出来的代码体积如何?占用的RAM和ROM大小如何?我看楼主的截图里面txet段已经是34892了,不知道楼主的这个程序有多大?
2、编译出来的代码执行效率如何?
3、从楼主的截图来看,这个编译的调试界面还真的不怎样,另外,能否灵活看到外设的寄存器和状态?

我个人是认为一分钱一分货的,免费的东西可以用,但是绝对不是最佳的,一味地追求免费到头来可能是得不尝试

使用特权

评论回复
22
john_lee| | 2014-7-16 23:42 | 只看该作者
kiya_21 发表于 2014-7-16 17:18
emblocks看着不错呀,地址:http://www.emblocks.org/

另外啥是system view

System View 就是楼上所说的“外设寄存器”查看,这个功能对于写程序是直接操作外设寄存器的人很重要,对依赖BSP库的人要远一些,MDK 有这个功能,em::blocks 也有,emide 也有,eclipse 在几年前用过,貌似没有这个,不知道最近是不是完善了一些。

使用特权

评论回复
23
john_lee| | 2014-7-17 00:16 | 只看该作者
runningwzf 发表于 2014-7-16 22:47
这是单片机,一个只能跑72M速度,只有几百K的Flah和一般不超过64K的RAM的小CPU,所以我想问:
1、编译出来 ...

一分钱一分货,大多数情况下是正确的,在对于自由的伟大的 gcc 来说,这个规则不适用!
gcc 的强大已经无以复加,比如这几个用 g++(c++11)写的 USB device 程序:
https://bbs.21ic.com/icview-551016-1-1.html
https://bbs.21ic.com/icview-551444-1-1.html
https://bbs.21ic.com/icview-551716-1-1.html
试问天下有哪家的编译器能够编译生成这些目标代码不到2、3K的、基于通用的 USB 协议栈构建(不是硬编码)的应用程序?
虽然 gcc 目前在交叉编译领域是独霸天下,但它正面临着 clang 的有力挑战,或许 gcc 有一天会被 clang 超越,但我们是喜闻乐见的,因为:1、clang 也是自由软件。2、clang 是 gcc 兼容的。

使用特权

评论回复
24
runningwzf| | 2014-7-17 01:33 | 只看该作者
john_lee 发表于 2014-7-17 00:16
一分钱一分货,大多数情况下是正确的,在对于自由的伟大的 gcc 来说,这个规则不适用!
gcc 的强大已经无 ...

现在想做一个USB程序已经简单的很了,不信的话楼主请见:http://www.keil.com/support/man/docs/rlarm/rlarm_usb_create_adc.htm
USB现在早已经不算高大上
关键是:楼主的这个USB程序是否测试过传输速度、效率、稳定性可靠性呢?是否有利用这个做出来产品交给客户蹂躏过呢?

强大到无以复加?有点迷信了吧?就像当年的AVR万能论,也是强大到无以复加,结果现在除了没办法升级硬件的企业在用,还有几个企业会选用性价比这么郁闷的MCU?

我相信神舟内外绝大多数人选用原厂编译器、Keil、IAR编译器进行单片机编译是有根据的
不要迷信51、AVR,也不要迷信Cortex
不要迷信Keil、IAR,也不要迷信GCC
最合适你项目需要的,才是最好的

使用特权

评论回复
25
runningwzf| | 2014-7-17 01:35 | 只看该作者
不过作为一种尝试,那倒是挺好

使用特权

评论回复
26
dwwzl302| | 2014-7-17 07:54 | 只看该作者
好**,好引路人!能否对这几款软件优劣做个横向比较呢?

使用特权

评论回复
27
coslight| | 2014-7-17 08:02 | 只看该作者
确实不错啊

使用特权

评论回复
28
ticomi| | 2014-7-17 08:33 | 只看该作者
很喜欢Eclipse,以前用它写过PHP,C++等程序!

使用特权

评论回复
29
菜鸟同学| | 2014-7-17 09:50 | 只看该作者
一直看到MDK4.7A里面有一个 eclipse的插件!

使用特权

评论回复
30
徐大山| | 2014-7-17 10:39 | 只看该作者
在linux上,搞下...

使用特权

评论回复
31
john_lee| | 2014-7-17 10:41 | 只看该作者
runningwzf 发表于 2014-7-17 01:33
现在想做一个USB程序已经简单的很了,不信的话楼主请见:http://www.keil.com/support/man/docs/rlarm/rl ...

USB 确实不是高大上,单片机也不是高大上,会的人多了去了,拿官方的例子修改一下就可以跑了,但会搞和搞得精是两码事,就像你问楼主的几个问题,其中两个都是涉及效率和开销,说明你所关心的还是这方面。
我只是给了几个例子说明 GCC 的功能和编译效率,如果你认为有哪家的开发工具和 USB 协议栈能生成如此小的开销的代码,请你指出来,光喊些空洞的口号是没有意义的。

使用特权

评论回复
32
diweo| | 2014-7-17 11:08 | 只看该作者
kiya_21 发表于 2014-7-16 13:26
嗯,openocd如果不是st官方开发版,是要自己改改配置的。至于难易程度,应该还好吧。

openocd支持的很多 ...

其实我早就想换了,只是一直没时间仔细研究一下OpenOCD。
也不想用J-Link,以前自己用过,也看别人用过,感觉稳定性很差。不知道是不是便宜货的原因。。

使用特权

评论回复
33
john_lee| | 2014-7-17 11:22 | 只看该作者
runningwzf 发表于 2014-7-17 01:33
现在想做一个USB程序已经简单的很了,不信的话楼主请见:http://www.keil.com/support/man/docs/rlarm/rl ...

说 USB 不是高大上,那是对依赖“库”的应用程序员而言,他们能做的事情只限于库提供的功能,比如你帖子里提到的 keil 官方的 ADC。如果我想增加一个物理的音量旋钮,应该怎么办?官方的框架肯定没有提供,我相信21ic上没俩人能搞定。还有compsite设备,比如双串口,官方的资料也是模模糊糊,需要用户修改的代码一大堆,说白了,这个不应该称为“库”,应该叫DEMO好些。

基于现成的库做应用的,不是高大上,但做库的,还要做得效率高、开销小、适用性高,你认为这不算高大上吗?

使用特权

评论回复
34
myxiaonia| | 2014-7-17 12:26 | 只看该作者
john_lee 发表于 2014-7-17 11:22
说 USB 不是高大上,那是对依赖“库”的应用程序员而言,他们能做的事情只限于库提供的功能,比如你帖子 ...

你对usb的研究真的和牛啊,我去年修改stm32的usb代码花了好长时间,也才修改了一个msc类

使用特权

评论回复
35
kiya_21|  楼主 | 2014-7-17 12:46 | 只看该作者
john_lee 发表于 2014-7-16 23:42
System View 就是楼上所说的“外设寄存器”查看,这个功能对于写程序是直接操作外设寄存器的人很重要,对 ...

这个似乎真没有,我都是直接memory地址看的,如果有的话是方便

使用特权

评论回复
36
kiya_21|  楼主 | 2014-7-17 13:03 | 只看该作者
kiya_21 发表于 2014-7-17 12:46
这个似乎真没有,我都是直接memory地址看的,如果有的话是方便

好吧,我不得不要再次夸奖下eclipse,只有想不到,没有做不到~~

装这个插件:http://embsysregview.sourceforge.net/update

我简单验证了下,好用的,下面是截图,一并回复楼上的关于没有寄存器的疑问,这个是最基本的吧~~




使用特权

评论回复
37
kiya_21|  楼主 | 2014-7-17 13:08 | 只看该作者
runningwzf 发表于 2014-7-16 22:47
这是单片机,一个只能跑72M速度,只有几百K的Flah和一般不超过64K的RAM的小CPU,所以我想问:
1、编译出来 ...

hex大小是值得商榷的,我是打算在项目结束后和keil/iar做一下横向比较,实在差距太大,到时换个编译器问题也不大

使用特权

评论回复
38
kiya_21|  楼主 | 2014-7-17 13:10 | 只看该作者
john_lee 发表于 2014-7-17 11:22
说 USB 不是高大上,那是对依赖“库”的应用程序员而言,他们能做的事情只限于库提供的功能,比如你帖子 ...

我移植了一个开源的usb host库到stm32上,支持各种class,有兴趣可以来群里聊聊

https://github.com/kiyaya/USB_Host_Shield_2.0

使用特权

评论回复
39
john_lee| | 2014-7-17 14:18 | 只看该作者
kiya_21 发表于 2014-7-17 13:03
好吧,我不得不要再次夸奖下eclipse,只有想不到,没有做不到~~

装这个插件:http://embsysregview.sour ...

不错,但不知embsysregview如何选择MCU?新出的MCU如何支持?

使用特权

评论回复
40
kiya_21|  楼主 | 2014-7-17 17:24 | 只看该作者
john_lee 发表于 2014-7-17 14:18
不错,但不知embsysregview如何选择MCU?新出的MCU如何支持?

对应产品线的
我的mcu型号就没有,选了一个老一点的型号,能用

使用特权

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

本版积分规则