在 ARM + Linux 培训班学习,讲师一般首先讲解用 ADS 或 RealView MDK 去调试 ARM 开发板。原因在于:

1、掌握 ARM 体系结构。ARM 是一种计算机,掌握其体系结构也就是掌握ARM的工作原理。在大学里一般会开设《微机原理》这门课程,讲解x86计算机的工作原理,并学习x86汇编语言。因为ARM与x86体系结构上的不同,所以学习ARM+Linux之前,要首先掌握ARM这种计算机的工作原理,并学习ARM汇编语言。

2、掌握ARM汇编语言。众所周知,汇编语言是低级语言,与计算机硬件关系密切。因为体系结构的不同,ARM汇编语言与x86汇编语言有很大的不同。前几年有一本书《ARM体系结构与编程》专门讲解ARM体系结构与汇编语言,随着技术的发展,ARM汇编语言的参考书也越来越多。掌握ARM汇编语言是学习 ARM+Linux 的基础。Linux中汇编语言用得不多,却都是启动时必须有的。

3、掌握ARM开发板的原理图。电路板原理图是由做硬件的工程师画的,虽然属于硬件范畴,但做 ARM+Linux 的软件工程师是需要能看懂电路板原理图的,特别是在编写硬件的Linux驱动程序时,必须看懂开发板电路原理图。用ADS或MDK调试开发板时,最常做的一个软件实验就是“跑马灯”程序。“跑马灯”就是让开发板上的若干个LED逐个点亮,实现这个程序首先要看电路图上LED的电路是如何连接的。通常,LED联接在ARM芯片的IO接口上,看电路图确认IO接口的编号,然后在程序里设置这几个IO接口的电位为1或0,就能熄灭或点亮LED。“跑马灯”程序是最简单的软件与硬件协同工作范例,目的就是让软件工程师能掌握最基本的软件与硬件结合的原理。以此为基础,开发板上的其他外围电路都可以逐步掌握。

4、掌握像使用单片机那样使用ARM的方法。单片机的用途非常广泛,最常用的是C51系列单片机,不需要操作系统,只需要在单片机上运行单循环程序就能让设备完成功能简单的循环运算工作。C51系列属于x86家族,x86家族的单片机和桌面CPU功能差别非常大,但是其汇编语言却是完全相同的。ARM系列计算机性能介于C51单片机和x86桌面CPU之间,所以将ARM当单片机用也是一个应用选择,ADS和MDK这两种软件就是像单片机那样使用ARM。最新的ARM版本Cortex,已经开始分类,Cortex M系列就是用作单片机的ARM,Cortex A系列就是运行操作系统的ARM。

5、复习C语言程序设计。在ADS或MDK中调试ARM开发板,使用的计算机语言通常是汇编结合C语言,汇编是ARM汇编,C语言就是常用的C语言。C语言是一种中级语言,但是是平台无关的,在任何一种计算机上用C语言编程,语法规则都是一样的。C语言与ARM汇编的结合看几个实例就能很快掌握,C语言本身的掌握程度却决定了每个人能在 ARM+Linux 开发上能走多远。

ADS是ARM公司出品的集成开发环境,已经停止更新很久了,但是任然很有用,甚至可以调试ARM11。

RealView MDK是ARM公司购买了Keil公司后推出的ADS后续版本,RealView结合了Keil C51这种单片机经典开发环境与ADS开发环境的优点,能用于所有ARM版本的调试。当然功能强会带来一定的操作复杂性,但在ARM的调试上还是沿用了ADS的大多数方法与软件界面,以方便从ADS到MDK的过渡。

不管是用ADS还是MDK,对于学习 ARM+Linux 的朋友来说,目的都是一样的,就是上面五点,都是为进一步学习打下很好的基础。用ADS或MDK去开发ARM,通常都叫做“裸奔”,因为都没有操作系统这件“衣服”。就像绘画中学习人物画时,先要画裸体模特,然后学习人物画一样,先学会用ADS或MDK让ARM裸奔,然后才学得好 ARM+Linux 。

ADS与RealView MDK相关推荐

  1. 从ADS到RealView MDK

    从ADS到RealView MDK 2010年11月25日 Keil是业界最受欢迎的51单片机开发工具之一,它拥有流畅的用户界面与强大的仿真功能.而ARM微控制器的开发工具RealView Micro ...

  2. S3C2440 由ADS移植到 RealView MDK kile4

    RealView MDK在中国推出已经有一段时间了,而且作为未来发展的趋势必将取代ADS1.2,成为工程师广泛应用的开发平台. 但是,以前的S3C2440的项目都是由ADS开发,而且我在网上搜索并没有 ...

  3. RealView MDK集成开发环境的使用

    熟悉RealView MDK集成开发环境的使用 一.实验目的 1. 掌握RealView MDK集成开发环境的安装过程: 2. 掌握RealView MDK集成开发环境的使用方法: 3. 掌握创建工程 ...

  4. ARM指令寻址方式及RealView MDK开发环境ARM汇编程序实践

    内容简介 本文根据作者在CSDN发表的树莓派ARM汇编语言编程十讲(第3讲) (CSDN链接https://blog.csdn.net/yuanzywhu/article/details/104975 ...

  5. RealView MDK 使用

    1.分散加载文件(链接脚本文件)的格式 问题描述: 在链接的时候,要在不同的地址处添加链接文件,暨分散加载文件,这个分散加载文件有什么样的格式呢? 问题解答:         程序正确编译生成目标文件 ...

  6. RealView MDK使用

    作者:蓝色星宇 转自:http://www.cnblogs.com/glguan/archive/2011/05/04/2036138.html 来源:http://hi.baidu.com/hqy5 ...

  7. RealView MDK

    RealView MDK开发工具源自德国Keil公司,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具.RealView MDK集成了业内最领 ...

  8. 基于ARM的RealView MDK开发环境

    RealView MDK可以对各种嵌入式处理器的软件开发工具.这么高端,着实很吸引我,ADS12还不知道怎么搞,居然还有这么高端的,但是还是得了解一下唉.洗这个自动配 置启动代码,集成Flash烧写模 ...

  9. RealView MDK开发工具

    RealView MDK开发工具源自德国Keil公司,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具.RealView MDK集成了业内最领 ...

最新文章

  1. 机器人(机械臂)动力学建模方法(Newton-Euler equation)
  2. “adb”不是内部或外部命令,也不是可运行的程序或批处理文件(Win)与(Mac)——终极解决方案
  3. python中fit内参数的类型_Python fit
  4. 微信公众号 获得多客服使用权限
  5. 采用开源方案的优势--从搭建WebGIS系统说起
  6. anaconda 安装在c盘_最省心的Python版本和第三方库管理——初探Anaconda
  7. san分布式共享文件系统_SAN网络存储共享软件全攻略剖析
  8. flex布局_flex布局的 flex(felx-grow、flex-shrink、flex-basis)详解
  9. Visual C++编程中的文件操作
  10. 液压支架销轴力学计算分析研究_技术 | 篦冷机液压管路问题分析及改造措施
  11. 【Spring笔记】c空间和p命名空间注入
  12. python docx 删除表格
  13. 【实用】SAP成本组件分割价格取数逻辑
  14. 幻灯片制作 新手制作幻灯片-来自于三人行慕课
  15. 符号链接symlink_什么是符号链接或符号链接? 如何为Windows和Linux创建Symlink?
  16. mysql 1033_MySQL ERROR 1033 (HY000): Incorrect information in file. 处理一例
  17. Turbo Autoencoder: Deep learning based channel code for point-to-point communication channels
  18. python游戏辅助lol_Python爬虫实战,60行代码爬取英雄联盟全英雄全皮肤,找寻曾今那些被删除的绝版皮肤...
  19. 键指如飞--Mac电脑快捷键学习
  20. 《Java8实战》第8章 Collection API 的增强功能

热门文章

  1. 2020年第十五届全国大学生智能汽车竞赛浙江赛区比赛成绩分析
  2. g intel linux 汇编_Linux 下的C和Intel 汇编语言混用
  3. postgres sql 多表联合查询_从零学会SQL-多表查询
  4. 华为服务器显示403,禁止访问403是什么意思 网页提示403怎么解决
  5. matlab java错误_Matlab启动时大量java错误的处理方法
  6. leetcode-cli 用命令行开心的刷算法
  7. html 水平垂直居中,css水平垂直居中有几种实现方式?
  8. 树莓派python实例_树莓派3 搭建 django 服务器的实例
  9. Office2019完美配置mathtype7.4
  10. 【FPGA】Buffer专题介绍(一)