进行嵌入式开发必须弄懂ARM汇编指令集
来源:互联网 发布:清新少女香水推荐 知乎 编辑:程序博客网 时间:2024/06/06 07:26
进行嵌入式开发必须弄懂ARM汇编指令集
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是目前使用最广泛、支持硬件平台最多、技术资源最完备的嵌入式操作系统之一,已广泛应 用在国防、工控、消费电子等很多领域,是进行嵌入式开发的首选操作系统。
虽然进行嵌入式Linux应用开发的技术门槛较高,但盈安信的工程师已经为用户选择好了最优的开发平台组合,并且提供了全面翔实的开发资料,基于此,用户进行其嵌入式Linux应用开发已经变得和Windows下开发应用程序一样的简单快捷。
4、怎么选择开发语言?
在嵌入式开发领域,首选是C语言,因为C是中级语言,即可以用来写应用程序,也能用来写驱动程序。据统计资料显示,使用C语言的嵌入式程序员占70%。其次是C++,其它语言只占了1%。
5、嵌入式Linux应用程序的开发环境是什么?
目前嵌入式Linux在大多数情况下仍然采用命令行方式,对开发者的技术水平要求较高。因此,盈安信公司建议用户使用如下方式进行开发:
用户在开发主机安装Windows操作系统,使用CodeSourcery集成开发工具编写和编译源码,使用nfsAxe软件挂载完成应用程序的复制和运行测试。
这一操作流程实际上已经最大限度地降低了开发门槛,让用户在Windows环境下即能迅速开发出嵌入式Linux应用程序。
6、嵌入式开发怎么实现在线调试?
说到在线调试,做过单片机的工程师,第一想到的就是仿真机, 那么,嵌入式操作系统怎么实现在线调试呢?对于调试嵌入式Linux和WinCE的应用程序,可以直接通过网线或者USB接口实现在线调试,效果可以达到 使用单片机仿真机的效果,可以设置断点、可以看到寄存器值和变量值等实时调试信息。如果要调试嵌入式Linux或者WinCE的内核系统,就只有去购买价 格不菲的仿真系统了。但是对于大多数工程师来说,能在C语言源码级进行调试就足以满足要求,实际上,更多的时候,是简单地在应用程序中插入printf语 句,把需要查看的信息打印出来,就可完成应用程序的调试了,因为这样处理能保证系统都于实际真实的运行状态之中。
- 进行嵌入式开发必须弄懂ARM汇编指令集
- 嵌入式软件开发培训笔记——ARM体系结构、A8处理器内核及汇编指令集
- 【嵌入式开发】 ARM 汇编 (指令分类 | 伪指令 | 协处理器访问指令)
- ARM汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- ARM 汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- ARM汇编指令集
- 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序
- 数据类型转换方法
- 在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
- 在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口
- vc和MFC的详细历史
- 进行嵌入式开发必须弄懂ARM汇编指令集
- 修改VowelCube例子使其正确地显示
- 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
- 学习
- 在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务
- 提高编程技巧的十大方法
- nutch遇到的问题
- 游戏技能效果与buff设定
- java中的强引用(Strong Reference)