打印
[MCU]

一个c51程序移植到ARM,编译的code差别很大

[复制链接]
1591|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
吾要单片机|  楼主 | 2021-11-15 19:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
吾要单片机|  楼主 | 2021-11-15 20:19 | 只看该作者
14KB的代码长度还没有包含RO的长度呢,RO是1.2KB

使用特权

评论回复
板凳
ayb_ice| | 2021-11-16 08:35 | 只看该作者
这不稀奇,M0本身就不怎么样,特别是GPIO操作又慢又费空间

使用特权

评论回复
地板
xinyue_z| | 2021-11-16 08:54 | 只看该作者
51是8位单片机,指令长度是8位的,而arm是32位单片机,指令长度32位,当然也支持16位的Thumb,所以相同的代码,在arm上比51上大一倍是正常的

使用特权

评论回复
5
前功尽弃| | 2021-11-16 10:12 | 只看该作者
是不是还有人家arm芯片的库文件代码吧?

使用特权

评论回复
6
keer_zu| | 2021-11-16 11:20 | 只看该作者
够用就行

使用特权

评论回复
7
aple0807| | 2021-11-16 11:20 | 只看该作者
优化等级呢? -O3,  op for size试试。 51一般默认开到8级优化。

使用特权

评论回复
8
aple0807| | 2021-11-16 11:26 | 只看该作者
xinyue_z 发表于 2021-11-16 08:54
51是8位单片机,指令长度是8位的,而arm是32位单片机,指令长度32位,当然也支持16位的Thumb,所以相同的代 ...

你这个算法是不对的,51花指令,指令长度1~n字节不等。 M0 thumb2,绝大多数指令2字节,部分4字节。 区别最大的是指令效率。 M0算个uint32加法,一条指令,51要十几条。其他的多字节运算都差不多这样。

使用特权

评论回复
9
imdx| | 2021-11-16 12:15 | 只看该作者
51是CISC。感觉51的寿命会比Cortex-M要长。

使用特权

评论回复
10
海洋无限| | 2021-11-16 12:19 | 只看该作者
不知道有没有用library

使用特权

评论回复
11
e21| | 2021-11-16 12:22 | 只看该作者
aple0807 发表于 2021-11-16 11:26
你这个算法是不对的,51花指令,指令长度1~n字节不等。 M0 thumb2,绝大多数指令2字节,部分4字节。 区别 ...

一般都都是8和16的变量用得多,特别是楼主原来是51的,可能还有很多1bit的变量,这个转到32就更多指令了.

使用特权

评论回复
12
吾要单片机|  楼主 | 2021-11-16 12:44 | 只看该作者
只要不是16位或32位的数据运算,ARM代码密度远不如C51

使用特权

评论回复
13
lu50211| | 2021-11-16 13:07 | 只看该作者
用了库的吧,

使用特权

评论回复
14
m564522634| | 2021-11-16 13:41 | 只看该作者
指令长度不一样  

使用特权

评论回复
15
xinyue_z| | 2021-11-16 15:25 | 只看该作者
aple0807 发表于 2021-11-16 11:26
你这个算法是不对的,51花指令,指令长度1~n字节不等。 M0 thumb2,绝大多数指令2字节,部分4字节。 区别 ...

c51上单字节和双字节指令占了绝大多数,参考https://blog.csdn.net/oNicolasCage/article/details/46228269,另外请确认两者设定的编译优化选项是否相同。如果实在想搞清楚到底区别在哪里,可以分析一下.map文件,里面每一个函数占用的字节数都有详细的数据

使用特权

评论回复
16
trucyw| | 2021-11-16 16:24 | 只看该作者
两个速度都不一样

使用特权

评论回复
17
xiaofei558008| | 2021-11-16 19:05 | 只看该作者
代码库占了很大空间

使用特权

评论回复
18
90houyidai| | 2021-11-16 23:20 | 只看该作者
我觉得现在MCU性能过剩的情况下(相对以前)这些都可以不考虑

使用特权

评论回复
19
qin552011373| | 2021-11-18 15:47 | 只看该作者
这些对于arm来说不叫事了

使用特权

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

本版积分规则

52

主题

441

帖子

7

粉丝