打印
[51单片机]

keil**的问题

[复制链接]
9572|35
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我的keil c51**了。

2033年

可是编译还有代码限制。
这是怎么回事呀?谢谢!


使用特权

评论回复

相关帖子

沙发
叶春勇| | 2020-3-7 20:23 | 只看该作者
悲剧估计我们下载
的一个版本,以前写modbus库,编译也不行,跟你一样,后来换sdcc了

使用特权

评论回复
板凳
William1994| | 2020-3-8 10:01 | 只看该作者
叶春勇 发表于 2020-3-7 20:23
悲剧估计我们下载
的一个版本,以前写modbus库,编译也不行,跟你一样,后来换sdcc了 ...

SDCC效率太低了。可惜没有人做LLVM的C51,
巫妖已经慢慢的被这个世界遗忘了。C语言也慢慢的老了。

使用特权

评论回复
地板
叶春勇| | 2020-3-8 10:32 | 只看该作者
William1994 发表于 2020-3-8 10:01
SDCC效率太低了。可惜没有人做LLVM的C51,
巫妖已经慢慢的被这个世界遗忘了。C语言也慢慢的老了。 ...

**弄人,还没有呀,我现在做批量产品的8脚的单片机都是1元以下的。都是些1kb,2kb flash的单片机,省着点用就是了。
sdcc最新版本,整数性能已经反超,浮点还不行(用的功能齐全的浮点库,没耍花招,有些商用浮点用的24bit优化的)。

使用特权

评论回复
5
taobaofarmer| | 2020-3-8 13:42 | 只看该作者
我的KEIL C51没问题,注册码使用到2032年,现在正在大量的使用国产1T 8051,很好用,现在很多厂家在做1T 8051的产品,51是越老越妖了

使用特权

评论回复
6
叶春勇| | 2020-3-8 13:55 | 只看该作者
taobaofarmer 发表于 2020-3-8 13:42
我的KEIL C51没问题,注册码使用到2032年,现在正在大量的使用国产1T 8051,很好用,现在很多厂家在做1T 80 ...

51核,在很多usb soc中很多,没版权了,avr有知识产权,贵的很。

使用特权

评论回复
7
William1994| | 2020-3-8 19:05 | 只看该作者
叶春勇 发表于 2020-3-8 10:32
**弄人,还没有呀,我现在做批量产品的8脚的单片机都是1元以下的。都是些1kb,2kb flash的单片机,省着 ...

前年又看了一次SDCC的源代码。
比keil的源代码还是差很多。
他们都是自己做的完全雷同的内存管理(先malloc申请大页,然后手工把抽象语法树的内容申请放不同的大页里,释放的时候快速集体delete)。
但是在语法制导的复杂度上,SDCC的表已经过过千了,而keil才四百多。但是keil的优化水平还是比SDCC高,SDCC的三元表达式转汇编上差非常多,窥孔优化还差不少。
keil的函数库的加减乘除我都看过,SDCC的标准库里面的整形运算我没有看,能超过keil的话可能是它传参数用B寄存器和DPH寄存器能节省R0~R7有关,你有具体的小demo吗?
相比CCS info公司的PICC,keil C51的库函数优化的地方太多了。

对于浮点2+1甚至half,做pid控制已经足够了。你要见过目标达到千分之一的精度的需求吗?

使用特权

评论回复
8
William1994| | 2020-3-8 19:06 | 只看该作者
相比CCS info公司的PICC,keil C51的库函数还能继续优化的地方太多了。

使用特权

评论回复
9
华芯3284494788| | 2020-3-8 19:56 | 只看该作者
[

使用特权

评论回复
10
xyz549040622| | 2020-3-8 20:47 | 只看该作者
mdk for 51哪个版本的?试试最新的。

使用特权

评论回复
11
叶春勇| | 2020-3-8 21:17 | 只看该作者
William1994 发表于 2020-3-8 19:05
前年又看了一次SDCC的源代码。
比keil的源代码还是差很多。
他们都是自己做的完全雷同的内存管理(先mall ...


sdcc还有语法支持负担,相比商业编译器支持偏多。




使用特权

评论回复
12
airwill| | 2020-3-8 21:44 | 只看该作者
咋还有这个问题呢?     换个号试试

使用特权

评论回复
13
ifree64| | 2020-3-8 21:47 | 只看该作者
叶春勇 发表于 2020-3-8 21:17
sdcc还有语法支持负担,相比商业编译器支持偏多。

这个评测数据从什么地方得到的?

使用特权

评论回复
14
叶春勇| | 2020-3-8 22:03 | 只看该作者
ifree64 发表于 2020-3-8 21:47
这个评测数据从什么地方得到的?

http://www.colecovision.eu/stm8/compilers.shtml

使用特权

评论回复
15
William1994| | 2020-3-9 09:14 | 只看该作者
Raisonance确实比较差,Cosmic没有用过无法评价。
IAR效率变低的主要原因是参数传递的方法太规矩,兼容了几十种CPU架构的编译器,但是好处也明显,操作系统等容易支持,不需要AREG等keil扩展的内容。
SDCC的语法支持负担确实有一些,但是这和效率比不过keil不是必然的。我感觉商业的比免费的差距导致的。
对于sizeof的位域,keil for arm里面 结构体里 unsigned char a:1; 前后没有位域的话,占一个字节,但是改成int字节数就加上来了。跨编译器的时候老是提示c标志里面必须是 int a:1; 标准就一定最合理吗?
float和double,以及2+1的,和半精度的。我现在感觉很多时候半精度的都够用了。就嵌入式场合的运算,double基本用不上。
之前还看过一些论文,讨论参数个数和寄存器个数,函数限制到40行,参数限制到2个,编译效果能最佳之类的。还有CPU是16个寄存器好还是32个好的问题。还有大数据分析结论,其实有很多也是值得商榷的。寄存器的全局最佳分配上,在嵌入式的场景下,还有大量的优化规则能增加。keil的Global Register Coloring还有待改进。

使用特权

评论回复
16
光轮TreeOS| | 2020-3-9 10:15 | 只看该作者
我的没有问题啊。也重新注册了的

使用特权

评论回复
17
叶春勇| | 2020-3-9 10:30 | 只看该作者
光轮TreeOS 发表于 2020-3-9 10:15
我的没有问题啊。也重新注册了的

应该是下的版本问题。盗版软件别追新,追**完善的。
或乘着自己年轻,能折腾,切换成开源软件,就没这类事。开源软件使用使用周期也超乎想象。notepad+makefile,少装很多垃圾,电脑速度要快些。

使用特权

评论回复
18
ddllxxrr| | 2020-3-9 11:28 | 只看该作者
楼主怎么**到2033年地

使用特权

评论回复
19
Cjy_JDxy|  楼主 | 2020-3-9 13:08 | 只看该作者
xyz549040622 发表于 2020-3-8 20:47
mdk for 51哪个版本的?试试最新的。

3.换了个4的,好了。

使用特权

评论回复
20
Cjy_JDxy|  楼主 | 2020-3-9 13:09 | 只看该作者
airwill 发表于 2020-3-8 21:44
咋还有这个问题呢?     换个号试试

不管用,只好用keil4了。

使用特权

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

本版积分规则

个人签名:绿水本无忧因风皱面,青山原不老为雪白头。

553

主题

3530

帖子

19

粉丝