<div id="zo5w1"></div>
  • <li id="zo5w1"></li>
    <dl id="zo5w1"><ins id="zo5w1"></ins></dl>
    <li id="zo5w1"></li><dl id="zo5w1"><menu id="zo5w1"><small id="zo5w1"></small></menu></dl>
      
    测·控领域专业互动媒体平台
    推动测试测量,检测诊断,传感物联,遥测自控智能化发展
    当前位置:CK365测控网 > 论文 > 应用技术 >

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

    电子设计 2017-11-16 13:41:23

    [导读] 看到很多在做电子工程设计的朋友在讨论:转到该怎样学习?《单片机与嵌入式系统应用》小编为大家找到了这样一位工程师,谈谈他的实际经验。 我以前一直用的是51,不过一直是C51,对C语言已经有10多年的经验,汇编用的很少,后来因为项目需要转到了ARM。一开始对ARM什么都不懂,看了本《ARM体?#21040;?#26500;与编程》也是云里雾里的,但是也许是因为无知者无畏吧,我直接就在MDK中建立一个工程,添加了自带的启动文件,然后做了个main函数,里面一个死循

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

    2.png

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

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

    罗嗦这么久?#23548;?#28857;建议吧:

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

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

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

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

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

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

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

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

     

    [整理编辑:CK365测控网]
    标签:  单片机[3]    工程师[1]    分享[0]    自己的[2]    arm[8]    开发[6]    经验[2]
     
    [ 论文搜索 ]  [ ]  [ 好友分享 ]  [ 打印本文 ]  [ 关闭窗口 ]  [ 返回顶部 ]

    版权与免责声明:

    ①凡本网注明"来源:CK365测控网"的所有作品,版权均属于CK365测控网,转载请必须注明CK365测控网 www.1717395.com。违反者本网将追?#32943;?#20851;法律责任。
    ②本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担?#27515;?#20316;品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。
    ③如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

    注册成为CK365测控网会员

    可以无需任?#30031;?#29992;浏览专业技术文章

     
     
    注册CK365测控网会员以便浏览全文
     
     
    陕西11选5一定
    <div id="zo5w1"></div>
  • <li id="zo5w1"></li>
    <dl id="zo5w1"><ins id="zo5w1"></ins></dl>
    <li id="zo5w1"></li><dl id="zo5w1"><menu id="zo5w1"><small id="zo5w1"></small></menu></dl>
    <div id="zo5w1"></div>
  • <li id="zo5w1"></li>
    <dl id="zo5w1"><ins id="zo5w1"></ins></dl>
    <li id="zo5w1"></li><dl id="zo5w1"><menu id="zo5w1"><small id="zo5w1"></small></menu></dl>