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

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

3天内不再提示

英创信息技术关于嵌入式工程师建议

英创信息技术 来源:英创信息技术 作者:英创信息技术 2019-11-15 09:54 次阅读

最近有不少客户就嵌入式系统开发入门方面提出了一些问题,我们感觉很有代表性,所以英创工程师把这些问题进行了汇总解答,希望能对想做嵌入式开发的工程师有一点帮助。

1. 进行嵌入式开发必须弄懂ARM汇编指令集吗?

书店里有很多入门级的书,第一章不是介绍ARM指令集,就是介绍ARM的CPU资源,这给很多初学者一个很不好的直观感觉,就是学习ARM一定要把汇编语言和CPU资源搞明白。然而,这两个方面,没有实际的去做一下,只是纸上谈兵,怎么又搞得明白呢,于是,让很多初学者,知难而退。

其实,选ARM很大的目的就是为了跑嵌入式操作系统,最常见的当然是Linux和WinCE操作系统。嵌入式操作系统为开发人员提供了几乎完整的基于C语言的工作环境,所以基于这两个操作系统进行的开发,在大多数情况下都没有必要先去搞懂ARM的汇编指令集和全部的CPU资源。当然,有了一定的技术基础后,CPU资源也有必要去了解,但是,我们建议是在实践中去了解这些问题,而不是在开始的时候通过看所谓的入门书进行似是而非的学习。

2. 必须使用ADS吗?

还是刚才所说的,好多入门书,为了说明ARM指令集中指令的使用方法便使用了ADS或者IAR开发环境,这样,就使得初入门的用户错误地理解为开发ARM就是用ADS开发环境(笔者初学时,就是这么认为的,幸亏及时有人指路,才没有在这个环境上花太多的时间),然而,根据不同的CPU,ADS设置是十分麻烦的,因为CPU是很复杂的,经常有用户就卡在这里,无法超越,时间长了,也就放弃了嵌入式开发了。

其实,ADS只是调试启动代码的一种环境,而这样的代码,CPU厂家已经写好了,这些代码也可以在Linux或者WinCE的开发环境中编译,所以,完全可以不考虑ADS 的使用。当然,如果你想在ARM上“裸奔”,那是另外的说法了。

3. 如何选择操作系统?

除了上面提到的Linux和WinCE外,还有几十种嵌入式操作系统,只不过Linux和WinCE 是最常见和最通用的嵌入式操作系统,其它就比较侧重于专业领域。那么如何在这几十种操作系统中,选择适合自己的操作系统呢?

第一:如果自己所选的CPU不支持MMU,那么如果需要操作系统的话,一般选择uC/OS-II操作系统,注意uC/OS-II不是免费的操作系统,尽管它的源码是公开的。

第二:如果自己所选的CPU支持MMU,最好选Linux或WinCE。在Linux和WinCE之间的选择与很多因素有关,如最终产品的数量、产品开发周期、工程师的技术背景等等。一般来讲基于Linux的产品开发周期更长,对工程师的要求更高,表面上看上去没有License费用,因此比较适合批量较大、对成本敏感的产品。相反WinCE由于工具完善,易于上手,只要用过VC的工程师均能很快转入嵌入式系统应用程序的开发。

4. 怎么选择开发语言?

在嵌入式开发领域,首选是C语言,因为C是中级语言,即可以用来写应用程序,也能用来写驱动程序。根据数据显示,使用C语言的嵌入式程序员占70%。其次是C++,应用程序可以用C++编写,更方便些。其它语言只占了1%。

5. Linux应用程序的开发环境是什么?

Linux是以公共社区的形式发展起来的,基于此,很多商业级的Linux开发工具,由于价格、可用性等原因,并没有得到普遍应用。目前大多数的Linux应用开发还是停留在命令行的方式,对开发者的门槛要求较高。用户编写好的程序,首先在装有Linux 的PC机上测试好后,再用交叉编译环境把代码编译成能在ARM Linux下运行的程序。

6. WinCE应用程序的开发环境是什么?

eVC是微软提供的WinCE应用程序开发工具之一,其界面和VC非常相似,很容易入门,其还有一个优点,就是是免费的,不存在版权问题。从性能上看,eVC比任何Linux的开发工具的性能都强很多了。另外,WinCE还可以使用微软的Visual Stdio.Net集成开发工具进行应用开发(可以选择使用的语言包括C++/C#/VB等),这给应用开发工程师带来了极大的便利。

7. 嵌入式开发怎么实现在线调试呢?

说到在线调试,做过单片机的工程师,第一想到的就是仿真机,那么,嵌入式操作系统怎么实现在线调试呢?对于调试Linux和WinCE的应用程序,可以直接通过网线或者USB接口实现在线调试,效果可以达到使用单片机仿真机的效果,可以设置断点、可以看到寄存器值和变量值等实时调试信息。如果要调试Linux或者WinCE的内核系统,就只有去购买价格不菲的仿真系统了。但是对于大多数工程师来说,能在C语言源码级进行调试就足以满足要求,实际上,更多的时候,是简单地在应用程序中插入printf语句,把需要查看的信息打印出来,就可完成应用程序的调试了,因为这样处理能保证系统都于实际真实的运行状态之中。

8. WinCE 的版权问题怎么理解?

版权问题是困扰工程师的很大的问题。中国的特点就是喜欢免费,所以,一说收费,工程师就立马拒绝了。其实工程师应该去了解一下如何收费,收多少费,收的这个费用对于企业来说合不合理?

说到开发基于WinCE的嵌入式系统,往往会提到PlatformBuilder,这是微软为平台开发者提供的一次性收费开发工具。但幸运的是,如果仅仅从事嵌入式系统的应用开发,则根本用不到PlatformBuilder。微软对每个基于WinCE的最终产品有一个License费用,其中对嵌入式系统最常用的Core License 费用在30人民币左右,工程师可以拿这个数字和开发其它操作系统的费用比一比,这个占多大比例。

英创公司的嵌入式主板,已经提供了WinCE 的正版授权,所以,选择英创公司的嵌入式主板,不存在版权问题。开发WinCE 应用程序除了免费的EVC外,还有VS(visual studio 2005),这个对于大多数Windows应用程序工程师并不陌生,尽管这个软件是要付费的,但获得起来并不困难。在嵌入式环境,只要应用程序运行的操作系统环境是经授权的,那么对微软来讲就不存在版权问题。这样看来,你的产品只是多出来不到30元人民币的WinCE License费用(如果是购买英创的产品,英创实际已经帮用户缴纳了这部分费用)。如果产品的成本对这个费用都非常敏感的话,我们测算,那也许意味着系统不能使用任何操作系统。

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

    关注

    3

    文章

    3540

    浏览量

    88594
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35292
收藏 人收藏

    评论

    相关推荐

    嵌入式软件工程师和硬件工程师的区别?

    通常需要具备强大的问题解决能力,以及对新技术的学习和应用能力。他们的工作通常涉及到多个领域,如计算机科学、电子工程、机械工程等。 嵌入式硬件工程师
    发表于 05-16 11:00

    嵌入式软件工程师如何提升自己?

    ,不断提升自己的专业技能,保持与行业最新技术的同步。 3.积累项目经验 项目经验对于嵌入式软件工程师的职业发展至关重要。通过参与实际项目,可以锻炼自己的技能提高问题解决能力和团队合作能力。建议
    发表于 06-12 11:20

    嵌入式工程师关于linux的学习总结

    嵌入式工程师关于linux的学习总结
    发表于 08-19 23:01

    嵌入式工程师比普通软件工程师好在哪里?

    ,其中包括硬件系统的建立和相关软件开发、移植、调试等工作。被认可的嵌入式工程师必须具备C/C++语言、汇编语言、操作系统等基础知识,并且要熟悉模拟电子技术和数字电子技术等硬件知识。除此
    发表于 11-20 15:37

    一名合格的嵌入式工程师需要的技能-中智讯

    比较优秀的嵌入式工程师应该具备的一些技能吧,搜集了网上的一些资料供各位立志于成为一名优秀嵌入式工程师的作为参考。一、嵌入式软件
    发表于 03-30 09:28

    嵌入式主板的无线通讯解决方案

    WiFi模块。ETA6210模块继续保持了PPP拨号模式,使得无论是Linux平台的主板还是CE平台的主板,都能方便的使用。  下表列出了当前嵌入式主板支持的无线模块。模块型号模块图片无线信道
    发表于 03-24 14:00

    嵌入式工程师的具体工作是什么?

    ,其中包括硬件系统的建立和相关软件开发、移植、调试等工作。被认可的嵌入式工程师必须具备C/C++语言、汇编语言、操作系统等基础知识,并且要熟悉模拟电子技术和数字电子技术等硬件知识。除此
    发表于 04-21 15:23

    【下载】《嵌入式工程师必知必会》——国外工程师的经验之谈

    Robotics and Process Control Cookbook.还发表过多篇文章,撰写了大量技术资料.目录:第1章 引言11.1 关于本书11.2 什么是嵌入式工程师2第
    发表于 07-06 16:16

    嵌入式软件工程师嵌入式硬件工程师有什么不同,区别在哪里?

    软件好呢?”,下面我们详细地来了解下嵌入式硬件工程师和软件工程师的不同。 1、什么是嵌入式硬件工程师  随着
    发表于 07-15 16:01

    嵌入式工程师是做什么的?

    嵌入式工程师要具有C/C++语言、汇编语言、操作系统等基础;熟悉模拟电子技术和数字电子技术等硬件知识;了解处理器体系结构等等。踏入这一行,就得不断提升自己,才能谋得更好的发展。
    发表于 08-08 14:59

    关于嵌入式系统开发工程师相关问题解答

    内容 1.设计、开发嵌入式系统; 2.构造嵌入式系统的框架结构、内核原理; 3.负责编写整体系统设计方案; 4.分配嵌入式硬件工程师嵌入式
    发表于 09-09 10:43

    什么是嵌入式硬件工程师?什么是嵌入式软件工程师

    什么是嵌入式硬件工程师?什么是嵌入式软件工程师嵌入式软件工程师
    发表于 12-24 06:41

    嵌入式工程师有发展前途吗?

    自如,那么就必须得依靠嵌入式技术。这就是我所说的嵌入式+智能学科应用,从长久来看,嵌入式只会越来越火,智能学科的崛起必定带动新型的嵌入式
    发表于 12-29 09:45

    嵌入式软件工程师嵌入式硬件工程师有什么区别

    随着嵌入式技术的普及,硬件工程师的性质也有所改变。嵌入式硬件工程师与我们平常所说的硬件工程师不同
    的头像 发表于 04-08 08:58 7.1w次阅读

    嵌入式工程师入门技巧

    嵌入式应用工程师是一个软硬件兼顾的职业。当然,到了具体的工作岗位可能会有嵌入式硬件工程师嵌入式软件工程
    的头像 发表于 09-12 10:29 3276次阅读