打印

PIC问题,

[复制链接]
2343|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vv123456|  楼主 | 2013-6-8 21:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前天刚去了一个新公司上班,公司用的是PIC16F726,公司是用汇编写的,公司说这样写会好,更好紧凑,占用空间更小,到底我要用什么写呢,
沙发
wangch_sh| | 2013-6-8 21:49 | 只看该作者
空间足够就用C,否则就用汇编。

使用特权

评论回复
板凳
pallee| | 2013-6-8 22:01 | 只看该作者
同意楼上的,不是对效率有特殊要求的,个人觉着还是C好,容易理解和维护

使用特权

评论回复
地板
弓长月月鸟| | 2013-6-9 07:53 | 只看该作者
如果可以的话,最好是两个都能写出来。这样对编程的升级认识

使用特权

评论回复
5
jlass| | 2013-6-9 09:16 | 只看该作者
本帖最后由 jlass 于 2013-6-14 09:06 编辑

要是你十年前问这个问题,答案一定是汇编。
但是随着C编译器的不断发展,C机翻汇编的效率已经相当高了。
我觉得对于新人来说,纯汇编已经没什么意义了,但是,这并不是说可以不懂汇编,汇编仍然是你必须掌握的技能。你应该用汇编的思想来写C语言。比如函数的结构化,数据存放4字节对齐等等,都可以提高C机翻汇编的效率。反之,不要使用什么循环嵌套之类的功能,机翻效率极差。
总之,你先用C写,在结构上融入汇编的思想(即可增加机翻的效率,也为以后的手动优化做准备),写完加载后没问题,你的工作就算完了。但是既然使用单片机,往往需要你发挥其90%以上的能力,这时候纯C可能会无法达到要求,需要你手动进行优化。这就是为什么让你在写C的时候融入汇编的思想了,你可以先使用C编译器把你的一些核心代码机翻成汇编的,然后对循环部分进行手动优化(非循环部分一般不用,因为效果不大,除非空间实在有限,那也只好一起优化掉),直至达到要求。

使用特权

评论回复
6
yewuyi| | 2013-6-9 09:53 | 只看该作者
1、PIC16F726的程序空间比较小,如果对代码大小极其在意的话,则优先选择汇编,如果对代码大小要求没有苛刻要求的话,则优先选择用C

2、不管优先选择用哪个,俺个人的建议是MCU软件开发工程师都应当较为熟练的掌握和理解汇编语言的编写方法和风格习惯,这还是有很多有利因素的。

3、所谓的程序结构用C,其它用汇编的编写方式,通常来说,多数都是制造烦恼,俺个人建议,用C就只用C,用汇编就只用汇编,尽量不要搅合,在C中嵌入一些极为简单和明了的少量汇编语句可以接受,除此以外,非迫不得已不应该采取这种混合编写的方式。

使用特权

评论回复
7
llqjmy| | 2013-6-9 17:13 | 只看该作者
PICC好了,它的优化效率非常高,尤其涉及到一些数**算,可能比你自己用汇编写,效率还高。

使用特权

评论回复
8
兰天白云| | 2013-6-10 13:37 | 只看该作者
新人会用汇编的已经很少了

使用特权

评论回复
9
Ryanhsiung| | 2013-6-10 19:14 | 只看该作者
726先前玩过,汇编是你最好的选择

使用特权

评论回复
10
vv123456|  楼主 | 2013-6-13 16:13 | 只看该作者
Ryanhsiung 发表于 2013-6-10 19:14
726先前玩过,汇编是你最好的选择

为什么呢,说说个理由啊,

使用特权

评论回复
11
Ryanhsiung| | 2013-6-13 16:15 | 只看该作者
vv123456 发表于 2013-6-13 16:13
为什么呢,说说个理由啊,

空间有限,C的代码 你知道每一句最后编译出来什么代码么?
  汇编最清楚,每一行,每一句  清清楚楚的

使用特权

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

本版积分规则

31

主题

722

帖子

1

粉丝