第二章ADS1.2开发环境创建与简介.

Slides:



Advertisements
Similar presentations
湖南城市学院 Android 智能手机开发 信息科学与工程学院 主 讲:李 旎. 湖南城市学院 课程结构 Android 平台概述 – 平台介绍 开发环境: – 构建 Android 开发环境 Android 的基本操作 -- 五种基本操作 应该程序: – 应用程序结构 典型应用: – 用户界面 –
Advertisements

什么是SOPC: SOPC是英文System On a Programmable Chip的缩写,称为片上可编程系统。SOPC将传统的EDA技术、计算机系统、嵌入式系统、数字信号处理等融为一体,综合了各自的优势,且在结构上形成一块芯片。 为什么用SOPC:SOPC是现代电子技术和电子系统设计的发展趋势,建立了电子系统设计的新模式。用户利用SOPC开发平台,自行设计高速、高性能的DSP处理器、特定功能的CPU及其外围接口电路,创建结构最为简洁的电子系统。
語文教學 教學理念 竹大附小 陳枝田 將地方圖案插入此投影片 選取〔插入〕功能表 〔圖片〕指令 選取〔從檔案〕指令 選取你的標幟圖片檔案
嵌入式系统 主讲人: 赵宏伟 学时: 32 吉林大学计算机科学与技术学院.
第二部分 嵌入式硬件系统 第2章 嵌入式处理器 第3章 ARM内核与ARM处理器 第4章 嵌入式系统的外围设备.
嵌入式系统与结构 —基于ARM的体系结构和应用开发
NEUSOFT Institute of information Technology .ChengDu
毛峰教授 北京师范大学教授,博士生导师 国家社科基金项目专家 北京华文教育顾问
大连理工大学软件学院 嵌入式系统工程系 赖晓晨
第2章 SOPC硬件开发环境及流程.
单片机应用技术 项目一 循环彩灯装置 第7讲 Keil软件的使用 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
基于ARM和linux的开发 华中科技大学 武汉创维特 2017/3/20.
Photoshop平面设计 适用专业:图形图像制作及相关专业 四川水利职业技术学院信息工程系.
嵌入式系统应用 概述 随着现代物流业仓储、超市等行业的快速发展,物品流动的速度越来越快,仓储库存周期也越来越短。这样物流仓储盘点行业的压力也越来越大,传统的人工盘点方式已经不能适应现代物流的发展。为了解决这一问题,国际上一些物流先进国家已经采用专业的盘点设备——盘点机,用于物流盘点。 我们选取了一个十分典型的国产盘点机进行介绍。其微处理器选型是采用韩国三星公司生产的S3C2410微处理器,操作系统采用了Windows.
第六章 ADS集成开发环境的使用.
第六章 补间动画 主讲人:马 震 人民邮电出版社.
高等学校嵌入式系统设计教材 ARM9处理器C语言编程标准教程 侯殿有 才华 编著 人民邮电出版社.
所有培训资料均可从网站 何宾 Tel: 版权所有,禁止未经授权的商业使用行为 何宾 Tel: 所有培训资料均可从网站
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
电工电子实验中心.
APP課程:Android程式設計開發環境與工具介紹
CH3 Eclipse.
第一章 嵌入式系统开发基础 本章介绍了嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基本内容,使读者系统地建立起的嵌入式系统整体概念。
工具链 介绍部分 1b.
第6章 CCS集成开发环境 6.1 CCS系统安装与设置 6.2 CCS菜单和工具栏 6.3 CCS中的编译器、汇编器和链接器选项设置
第二十九章 DLL / LIB函式庫開發 當我們開發程式到一個階段之後,我們一定會希望各個Component的程式碼可以分開的越清楚越好。而這一章最主要就是要告訴各位讀者,我們常在Windows系統中看到的dll或是lib的檔案該怎麼實作?做出這樣的library我們又該如何運用?為什麼使用dll或是lib有利於我們開發程式?以上這些疑問都將會在這一章中得到解答。
ARM存储器结构 ARM架构的处理器的存储器寻址空间有4G字节 ,存储空间可以分为 :
主講:王穎聰 電腦與通訊工程學系講師 銘傳大學資訊網路處
安裝與設置 Android 發展環境 靜宜大學資工系 蔡奇偉副教授 ©.
微 電 腦 實 驗 Megawin MPC82G516 操作與環境設定.
Bootloader技术分析.
第六部分 ADSP-2189M EZ-KIT评估套件 a.
嵌入式系統架構 長高科技 顏旭偉.
第4章 PIC软件开发设计基础.
嵌入式系统设计与开发 第1章 概述 第2章 ARM及其编程模型 第3章 ARM指令集 第4章 嵌入式程序设计
第14章 Bootloader基本概念與燒錄.
存储设备介绍 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd.
怎样从0开始写bootloader? 李明 北京亚嵌教育研究中心
第1章 嵌入式系统概述 嵌入式系统的发展、定义、特点、组成、分类 嵌入式系统硬件核心、软件核心 嵌入式实时操作系统
EDA 原理及应用 何宾
NO.3.1 SOPC技术 第5章 Nios II 系统的外围设备.
模块五: 数控系统参数的备份与恢复 本章学习内容.
第4章 汇编语言程序设计 汇编语言源程序格式 汇编语言上机过程 汇编语言与C语言混合编程技术.
数字信号处理 FIR和IIR滤波器实验.
DMA-2440XP WinCE5.0安裝與使用 長高科技 顏旭偉.
嵌入式系统的Boot Loader技术 陈文智 浙江大学计算机学院 2009年5月.
第2章 ARM微处理器硬件结构 计算机体系结构分类 ARM版本及系列 ARM处理器结构 存储系统机制.
第9章 DSP集成开发环境CCS 内容提要 CCS是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。 本章对CCS开发软件的使用作了详细地介绍。首先,对CCS开发软件作了简要地说明,并介绍了该软件的安装及配置;其次,介绍了CCS的基本操作,包括:CCS的窗口和工具条、文件的编辑、反汇编窗口、存储器窗口、寄存器窗口、观察窗口
第五章 C/C++及汇编语言的混合编程 5.1 ARM C/C++编译器 5.2 在C/C++程序中内嵌汇编指令
3 S7-200可编程控制器 使用入门 2019/2/17.
利用ICE通信中间件构建分布式应用程序开发框架
Linux Debugging ls,ps,top,etc. printk() /proc i386提供的调试机制(断点,信号,单步执行)
Author:BobZhang Copy Right 2007
ARM Developer Suite 介 绍.
(第2版).
第3章 嵌入式系统的设计方法 3.1 嵌入式系统的总体结构 3.2 嵌入式系统开发过程 3.3 ADS集成开发环境的使用
第2章ARM/THUMB微处理器结构及指令系统
嵌入式Linux开发流程 成都研究所操作系统团队.
嵌入式系统实验 ● 交叉开发实验 ● 仿真开发实验.
ARM Developer Suite 介 绍.
AM437x-GPMC接口 讲解 广州创龙电子科技有限公司
嵌入式系统教案 武汉创维特信息技术有限公司 2019/4/18.
微處理機 Microprocessor (100上)
ARM處理器.
含糖飲料的危機 設計者 :蔡慧萍、林漢良.
MPLAB IDE 8 建立專案.
code::blocks 與GLUT 程式開發
第6章 嵌入式软件开发基础.
第三章 计算机体系结构.
Up-tech-2410-s实验系统教案 A/D实验
Presentation transcript:

第二章ADS1.2开发环境创建与简介

主要内容 2.1 ADS1.2开发环境创建 2.2 ADS集成开发环境的使用 2.3 用AXD进行代码仿真、调试 2.4 ARM C语言程序的基本规则和系统初始化程序

2.1.1 ADS1.2概述 上一章我们讲过,做为嵌入式控制器的单片机,由于受其本身资源限制,其应用程序都不能在其本身上开发。开发其应用程序,还需要一台通用计算机,我们也称这台通用计算机为“宿主机”,在“宿主机”上要安装有集成开发环境。 ADS是ARM集成开发环境,它主要包括编译器、链接器、调试器、C和C++库等,是ARM公司推出的新一代ARM集成开发工具。最新版本是ADS1.2,该版本支持包括Windows和Linux在内的多种操作环境。ADS1.2的组成如下:

1. 编译器 ADS提供多种编译器,以支持ARM和Thumb(在ARM体系中数据和指令采用16位字长)指令的编译,主要有: · armcc:是ARM C编译器。 · tcc:是Thumb C编译器。 · armcpp:是ARM C++编译器。 · tcpp:是Thumb C++编译器。 · arm asm:是ARM和Thumb的汇编语言编译器。

2. 链接器 armlink是ARM链接器。该命令既可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件链接成一个目标文件,以供进一步的链接。

3.符号调试器 armsd是ARM和Thumb的符号调试器,能进行源码级程序调试。用户可以在用C或汇编语言写的代码中进行单步调试、设置断点、查看变量值和内存单元的内容。

4. fromELF(elf 全称 Executable and Linking Format) 将ELF格式的文件转换为各种格式的输出文件,包括BIN(二进制)格式映像文件、Motorola32位S格式映像文件、Intel32位格式映像文件和Verilog十六进制文件。FromELF命令也能够为输入映像文件产生文本信息,例如代码和数据长度。

5. armar armar是ARM库函数生成器,它将一系列ELF格式的目标文件以库函数的形式集合在一起。用户可以把一个库传递给一个链接器以代替几个ELF文件。

6. CodeWarrior CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWarriorIDE为ARM和Thumb处理器开发用C、C++或者ARM汇编语言编写的程序代码。今后我们要经常使用CodeWarrior集成开发环境(IDE)来开发我们的C语言程序。

7. 调试器 ADS中含有3个调试器,即AXD、Armsd和ADW/ADU。 在ARM体系中,可以选择多种调试方式,如Multi-ICE(Multi-processor In-Circuit Emulator)、ARMulator或Angel。 Multi-ICE是一个独立的产品,是ARM公司自己的JTAG在线仿真器,不是由ADS提供的。 · ARMulator是一个ARM指令集仿真器,集成在ARM的调试器AXD中,提供对ARM处理器的指令集的仿真,为ARM和Thumb提供精确的模拟。用户可以在硬件尚未做好的情况下开发程序代码,利用模拟器方式调试。 · Angel是ARM公司常驻在目标机Flash中的监控程序,只需通过RS-232C串口与PC主机相连,就可以对基于ARM架构处理器的目标机进行监控器方式的调试。

8. C和C++库 ADS提供ANSI C库函数和C++库函数,支持被编译的C和C++代码。用户可以把C库中的与目标相关的函数作为自己应用程序中的一部分,重新进行代码的实现。这就为用户带来了极大的方便。

2.1.2 ADS1.2的安装

ADS全称为ARM Developer Suite,是ARM公司推出的新的一代ARM集成开发工具。现在ADS的最新版本是1 ADS全称为ARM Developer Suite,是ARM公司推出的新的一代ARM集成开发工具。现在ADS的最新版本是1.2,该版本支持包括Windows和Linux在内的多种操作系统。 在ADS1.2的安装盘中运行setup.exe,安装ARM Developer Suite v1.2。出现图2-1对话框和图2-2对话框,同意产权协义,选省缺安装路径(F:\ARM\vADS1.2)和典型安装模式(Typiflcation),按Next进入下一步,均按Next,开始安装,如图2-3示。

安装结束,安装许可文件(Install License),这一步可按安装向导进行,单击“下一步”按钮,会出现如图2-4和图2-5所示的对话框。 在图2-5对话框中的选浏览(Browser)查许可文件,在Program Files\ARM\ADSV1_2\license\中选license.dat文件并打开,单击“下一步”按钮,如图2-6,即可完成ADS1.2的安装。 最后,程序还要注册,注册文件在Program Files\ARM\ADSV1_2文件夹中,单击注册文件,即完成程序注册,如图2-7所示。

图2-6 选许可文件

图2-7程序注册

安装成功并注册后,CodeWarrior集成开发环境(IDE)就可以使用了。为了方便,我们在桌面上创建一个快捷键,在C:\Program File\ARM\ADSv1-2\Bin文件夹中有一个快捷键图标,如图2-8所示,将其发送到桌面。 图2-8 IDE快捷键图标 图2-8 IDE快捷键图标

打开计算机,双击IDE快捷键图标,就可进入CodeWarrior集成开发环境,然后打开了一个例子项目. \Examples\cpp\bmw 打开计算机,双击IDE快捷键图标,就可进入CodeWarrior集成开发环境,然后打开了一个例子项目.\Examples\cpp\bmw.mcp。如图2-9所示。 图2-9 CodeWarrior集成开发环境

2.2 ADS集成开发环境的使用 和MCS-51单片机的开发环境KeilC一样,ADS对用户的程序进行项目管理,一个ADS项目中可以包括汇编语言程序、C/C++语言程序、C语言头文件、库文件等等,这些文件还可以以文件夹的形式加入项目,本节介绍ADS集成开发环境的使用。

2.2.1建立一个新工程 图2-10 建立一个新工程

运行ADS1.2集成开发环境(CodeWarrior for ARM Developer Suite),点击File|New,在New对话框中,选择Project栏,其中共有7项,ARM Executable Image是ARM的通用模板。选中它即可生成ARM的执行文件,如图2-10所示。 在Project name栏中输入项目的名称,以及在Location中输入其存放的位置,按确定保存项目。系统会在项目名称后面自动加上ADS项目后缀.mcp后保存。

2.2.2 开发环境设置 1. 在新建的工程中,选择Debug版本,如图2-11,使用Edit|Debug Settings菜单对Debug版本进行参数设置。 图2-11选择Debug版本

2. 在图2-12中,点击Debug Setting 按钮,弹出2-13图,选中Target Setting

在Post-linker栏中选中ARM fromELF项。按OK确定。 图2-13选Target Setting 在Post-linker栏中选中ARM fromELF项。按OK确定。

图2-14选要编译的CPU类型 3. 在如图2-14中,点击ARM Assembler ,在Architecture or Processer 栏中选ARM920T。这是项目选择的CPU类型。

4.在如图2-15中,点击ARM C Compliler ,在Architecture or Processer栏中也选ARM920T。这是C语言要编译的CPU核。

5. 在如图2-16中,点击ARM linker ,在outpur栏中设定程序的代码段地址,以及数据使用的地址。图中的RO Base栏中填写程序代码存放的起始地址,RW Base栏中填写程序数据存放的起始地址。RW Base地址要是SDRAM的地址。

图2-16填写程序代码存放的起始地址

在options栏中,如图2-17,Image entry point要填写程序代码的入口地址 图2-17填写程序代码的入口地址

在Layout栏中,如图2-18,在Place at beginning of image框内,需要填写项目的入口程序的目标文件名 图2-18填写项目的入口

6. 在如图2-19中,这是设置要下载到flash中的二进制文件。 图2-19设置输出文件名

7. 到此,在ADS1.2中的基本设置已经完成,可以将该新建的空的项目文件作为模板保存起来。首先,要将该项目工程文件改一个合适的名字,如S3C2410 ARM.mcp等,然后,在ADS1.2软件安装的目录下新建一个合适的模板目录名,如,S3C2410 ARM Executable Image,再将刚刚设置完的S3c2410 ARM.mcp项目文件存放到该目录下即可。这样,就能在图2-19中看到该模板。

8. 新建项目工程后,就可以执行菜单Project|Add Files把和工程有关的文件加入,ADS1 8. 新建项目工程后,就可以执行菜单Project|Add Files把和工程有关的文件加入,ADS1.2不能自动进行文件分类,用户必须通过Project|Create Group来创建文件夹,然后把加入的文件选中,移入文件夹。或者鼠标放在文件填加区,右键点击,如图2-20 图2-20工程所有相关的文件加入项目

先选Add Files,加入文件,再选Create Group,创建文件夹,然后把文件移入文件夹内。读者可根据自己习惯,更改Edit|Preference窗口内文本编辑的颜色、字体大小、形状、变量、函数的颜色等等设置。如图2-21。 对不同的编辑内容选不同的颜色,可以达到阅读和调试方便的效果。

图2-21更改文本编辑的颜色

2.2.3 其他开发环境介绍 IAR(瑞典爱亚软件技术咨询公司) Embedded Workbench for ARM 是IAR Systems 公司为ARM 微处理器开发的一个集成开发环境,下面简称IAR EWARM。比较其他的ARM 开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。

2.3 用AXD进行代码仿真、调试 项目建立并加入相应文件后,“目标机”和“宿主机”通过叫JTAG的仿真器进行连接,然后用AXD进行代码仿真、调试。本节介绍用AXD进行代码仿真、调试的方法和步骤。

2.3.1 AXD简介 项目建立并加入相应文件后,以项目为单位进行编译。在Code Warrior IDE开发环境中双击Make, 如图2-22所示 图2-22 Make界面

在同一界面双击Debug键,如图2-23所示进入AXD,AXD界面如图2-24所示。

图2-24 AXD界面

1. 在AXD中打开调试文件 选择File∣Load image命令,打开Load image对话框,找到要装入的.axf映像文件,单击“打开”按钮,就可以把映像文件装载到目标内存中,如图2-25所示。

选择AXD的Processor Views∣Memory命令或按Ctrl +M键后,查看或修改存储器中的值,如图2-26所示。 2.查看存储器、寄存器、变量内容 选择AXD的Processor Views∣Memory命令或按Ctrl +M键后,查看或修改存储器中的值,如图2-26所示。 图2-26 查看或修改存储器中的值

3. 查看或修改存储器地址在 Memory Start address文本框图上,用户可以根据要查看或修改的存储器地址输入起始地址,在下面的表格中会列出连续的64个地址。因为I/O模式控制寄存器和I/O数据控制寄存器都是32位的控制寄存器,所以从0x00000000开始的连续4个地址空间存放的是I/O模式控制寄存器的值,从图中可以读出该控制寄存器的值,数据控制寄存器的内容,注意因为用的是小端模式,所以读数据时注意高地址中存放的高字节,低地址存放的是低字节。

4. 断点设置、查看 在程序调试时经常设置断点,即在程序的某处设置断点,当程序执行到断点处即可停 下,这时开发人员可通过前面的方法查看寄存器、存储器或变量的值,以判定程序是否正常。设置断点的方法是将光标移到需设置断点处,使用快捷键F9在此处设置断点。

2.3.2 JTAG概述 在使用AXD对项目进行调试时,整个软件调试工作都是在“宿主机”上进行的,但程序的运行是在“目标”机上实现的。“宿主机”和“目标”之间通过计算机并口使用一种叫JTAG的仿真器相连接,实现信息的上传和下载。

2.3.3 Nor和Nand Flash的区别和使用 程序调试结束,要将其可执行文件烧写(或称固化)到目标机中某种Flash中运行。Flash也叫非易失快闪存储器。 Nor和Nand是现在市场上两种主要的非易失闪存技术。Intel公司于1988年首先开发出Nor Flash技术。

单元尺寸nand 是 nor的一半, 1~16MB nor 8~128MB nand 3. 接口差别 1. 性能比较 读 nor nand 写、擦除 nand nor 2. 容量和成本 单元尺寸nand 是 nor的一半, 1~16MB nor 8~128MB nand 3. 接口差别 Nor 带有SRAM接口,有足够的地址引角建起 Nand使用复杂i/O端口来串行存取数据

2.3.4 烧写Flash 上节讲到,程序调试结束,要将其可执行文件烧写(或称固化)到目标机中Flash运行,这个过程要通过一个转门的下载软件来进行,该软件有多款,它们的安装和使用请参考具体设备。

2.3.5 程序的运行 程序固化到FLASH中后,运行前往往将其复制到SDRAM中去,这样可以提高运行速度,作者在工作中,编写了一段将程序从FLASH中复制到SDRAM中去的C语言模块,实践证据可用,可供参考,其中ARM9init(void)程序略。

主程序 //------------------------------------------------------------------------------------- #include "def.h" #include "2410addr.h" #include "2410lib.h" #define ARM_ADDR 0X30000000; // 定义SDRAM地址 void (*run)(void ); //定义函数指针 void ARM9init(void); //系统初始化程序 void CopyFromFlashToRAM(U32 * FlashAddr,U32 *ArmAddr,U32 ul); void copy(void); void main(void) { run=(void(*)(void)) ARM_ADDR; ARM9init(); copy(); run(); }

//-------------------------------------------------------------------------------------------------------------------- // 复制程序 //------------------------------------------------------------------------------------- CopyFromFlashToRAM(U32 * pulFlashAddr,U32 *pulArmAddr,U32 ul) { U32 *pulSource=pulFlashAddr; U32 *pulDest=pulArmAddr; U32 i; ul/=4;

for(i=0;i<ul;i++) { *pulDest++=*pulSource++; } //-------------------------------------------------------------------------------------------------------------------- // 调复制程序 //------------------------------------------------------------------------------------- copy(void) U32*p1; U32*p2; P1=(U32 * )0x00200000; P2=(U32 * )0x30000000; CopyFromFlashToRAM(p1,p2,0x20000);

2.4 ARM C语言程序的基本规则和系统初始化程序 我们使用C语言来开发嵌入式项目,ARM C语言程序的基本规则和普通C语言程序有一定区别,本节介绍ARM C语言程序的基本规则同时,还讲解了系统初始化程序的编写。 系统初始化程序的编写和项目调试的仿真器设置是初学者遇到的比较困难问题,本节介绍初学者如何绕过这些困难,顺利完成开发工作。

2.4.1 ARM使用C语言编程基本规则 在应用系统的程序设计中,若所有的编程任务均由汇编语言来完成,其工作量巨大,并且不易移植。由于ARM的程序执行速度较高,存储器的存储速度和存储量也很高,因此,C语言的特点得以充分发挥,使得应用程序的开发时间大为缩短,代码的移植十分方便,程序的重复使用率提高,程序架构清晰易懂,管理较为容易等等。因此,C语言的在ARM编程中具有重要地位。

.在子程序编写时,必须遵守相应的ATPCS规 . 堆栈的使用要遵守相应的ATPCS规则; . 在汇编编译器中使用atpcs选项。 汇编语言的子程序应满足下面3个条件: .在子程序编写时,必须遵守相应的ATPCS规 . 堆栈的使用要遵守相应的ATPCS规则; . 在汇编编译器中使用atpcs选项。 ATPCS即ARM-THUMB procedure call standard(ARM-Thumb过程调用标准)的简称。 PCS规定了应用程序的函数可以如何分开地写,分开地编译,最后将它们连接在一起,所以它实际上定义了一套有关过程(函数)调用者与被调用者之间的协议。

基本的ATPCS规定,详情请见相关PDF文档,简单说明就是:

2.4.2 初始化程序和开发环境设置 系统的基本初始化内容一般包括: . 分配中断向量表 . 初始化存储器系统 . 初始化各工作模式的堆栈 . 分配中断向量表 . 初始化存储器系统 . 初始化各工作模式的堆栈 . 初始化有特殊要求的硬件模块 . 初始化用户程序的执行环境 . 切换处理器的工作模式