0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

51单片机工程师分享自己的arm开发经验

电子设计 来源:互联网 作者:佚名 2017-11-15 16:21 次阅读

看到很多在做电子工程设计的朋友在讨论:转到该怎样学习?《单片机嵌入式系统应用》小编为大家找到了这样一位工程师,谈谈他的实际经验。

我以前一直用的是51,不过一直是C51,对C语言已经有10多年的经验,汇编用的很少,后来因为项目需要转到了ARM。一开始对ARM什么都不懂,看了本《ARM体系结构与编程》也是云里雾里的,但是也许是因为无知者无畏吧,我直接就在MDK中建立一个工程,添加了自带的启动文件,然后做了个main函数,里面一个死循环没有操作任何硬件,居然跑起来了。然后以此为基础,慢慢的开始控制GPIO和串口通信,当时突然发现,我的项目不就是搞搞这些吗?其他的什么运行模式、什么链接寄存器、什么PC寄存器关我鸟事,我只要能控制外设就行了。至于它是怎么实现的,那是编译器和链接器的事情。

现在回头想想开发ARM还是很简单的,特别是使用MDK的话,会C也就能做一些简单的开发了。不要被那些稀奇古怪的东西给搞糊涂了。边开发边学习,项目做深了,那些东西自然就懂了。我们公司来了新人,我一般就叫他做个简单的东西,比如按键、串口等,做完也就差不多会了。

罗嗦这么久说几点建议吧:

1.ARM的汇编没必要去精通的,能够大概看懂就行了。我一般在调试的时候才需要看看。如果一个速度要求苛刻到需要你使用汇编的话,我认为可能你更需要的是转变思路,修改算法。比如使用查表代替计算等。我做了5年ARM开发,完成了n个项目,至今没写过一句汇编。

2.工业控制方面因为有实时性和成本要求,我一般不使用操作系统,但我会自己实现一些内存管理,事件管理,邮箱之类的东西。这些需要时间积累,平时写程序注意尽量通用化,然后建立自己的库,以后再用就爽了。以前使用过一些操作系统,发现并没有提高我的开发速度,而且还造成了调试困难的问题,出了bug找都没法找。

3.对于公司来说,如果项目很大需要用到操作系统、网络、gui、文件系统等,自己做还不如直接买个板子,人家都已经做好了,而且bug很少,自己只要做应用就行了。量大的话还可以定制,算上开发成本,可能更便宜。如果你是个人兴趣,那当我没说。

4.现在对于外设一般都有现成的库,我建议能不用还是不要用吧。因为想要用好这些库,你必须对外设寄存器比较熟悉才行,这时候你自己写一个就行了,而且简单的一个寄存器赋值,函数库往往需要调用一个函数来实现,太奢侈了。但是对于运算库还是要用的,比如DSP库等,毕竟人家写的肯定效率要高点。

5.用好中断,这对51和ARM是一样的。能用中断的地方绝对不用轮询,中断是单片机的灵魂,你的所有程序都应该围绕中断展开。

6.学好C语言,注意形成自己的编程风格,起好函数名和变量名,多写注释。不要怕麻烦,这些很重要,我一直认为最好的程序风格是使人不需要看注释就能立刻理解程序的意思也就是:程序即注释。我有时候会写出a=b-2-1之类的东西,不要认为这很傻,其实是因为2和1分别代表了两个东西,你直接写成3就给理解增加了难度,而且这也不会降低效率,编译器会把它翻译成a=b-3的。

7.对于C语言多罗嗦一句,用好指针,如果说中断是单片机的灵魂,那么指针就是C的灵魂。

总之一句话,做ARM和做51差不多,关键还是各种外设的寄存器操作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8643

    浏览量

    361659
  • 51单片机
    +关注

    关注

    269

    文章

    5648

    浏览量

    120645
  • 编译器
    +关注

    关注

    1

    文章

    1570

    浏览量

    48604
收藏 人收藏

    评论

    相关推荐

    单片机工程师招聘

        招聘单片机工程师(专职或项目发包皆可) : 3名要求:熟练C51,两年以上实际开发经验,并有实际完成过开发项目,
    发表于 12-19 16:26

    单片机工程师招聘

        招聘单片机工程师(专职或项目发包皆可) : 3名要求:熟练C51,两年以上实际开发经验,并有实际完成过开发项目,
    发表于 12-19 16:27

    单片机工程师招聘

        招聘单片机工程师(专职或项目发包皆可) : 3名要求:熟练C51,两年以上实际开发经验,并有实际完成过开发项目,
    发表于 12-19 16:29

    单片机工程师考试大纲

    单片机工程师考试大纲
    发表于 08-13 23:00

    我看单片机工程师

    我看单片机工程师
    发表于 08-19 22:40

    单片机工程师

    怎么考单片机工程师
    发表于 09-10 21:02

    诚聘单片机工程师

    猎头职位:单片机工程师【北京】职位描述:1、主要负责基于STM32系列单片机业务部分代码的编写以及改版维护;2、各项目单片机方面软件的管理和归档,建立文档目录;3、编制测试软件和测试说明,并参与部分
    发表于 12-07 11:21

    ARM嵌入式工程师

    本帖最后由 spotaku 于 2017-10-2 10:42 编辑 ARM嵌入式工程师入门门槛高,而且很多职位需要你有项目经验。所以,有一部分同学最终只能转行:转而做单片机或A
    发表于 08-24 00:51

    ARM嵌入式工程师

    本帖最后由 spotaku 于 2017-10-2 10:42 编辑 ARM嵌入式工程师入门门槛高,而且很多职位需要你有项目经验。所以,有一部分同学最终只能转行:转而做单片机或A
    发表于 08-24 01:53

    ARM嵌入式工程师

    本帖最后由 spotaku 于 2017-10-2 10:41 编辑 ARM嵌入式工程师入门门槛高,而且很多职位需要你有项目经验。所以,有一部分同学最终只能转行:转而做单片机或A
    发表于 08-30 19:36

    ARM嵌入式工程师

    本帖最后由 spotaku 于 2017-10-2 10:41 编辑 ARM嵌入式工程师入门门槛高,而且很多职位需要你有项目经验。所以,有一部分同学最终只能转行:转而做单片机或A
    发表于 08-31 19:02

    如何成为一个合格单片机工程师

    做为一个合格单片机工程师,你应该具有这7种能力!
    发表于 02-25 06:45

    单片机工程师需要掌握什么

    单片机工程师需要掌握什么,记得刚毕业的时候,同学们都很迷茫,不知道自己以后要做什么工作。有部分同学向社会低头,做了本专业,每天累死累活干的像条狗,10年过去了每天也才拿着上万块出头的工资。也有一部分
    发表于 07-21 07:58

    单片机工程师是程序员吗

    从业这么多年,我也一直在纠结一个概念,我做的单片机软件开发是否属于IT行业? 大家都知道IT这个概念,但很少人找到单片机。一、单片机工程师是程序员吗?那从我的认知来说,我觉得“算是”。
    发表于 11-09 09:14

    51单片机工程模板创建方法

    本教程将向大家介绍如何使用KEIL C51 软件以及如何创建51 单片机工程。通过本教程的学习,让大家创建属于自己51
    发表于 07-15 15:27 2954次阅读
    <b class='flag-5'>51</b><b class='flag-5'>单片机工程</b>模板创建方法