第六章 ADS集成开发环境的使用.

Slides:



Advertisements
Similar presentations
H T U 報告者:周振聰 僑生處 主任. h T U 免會考成績入學 h T U 未來望 您想學 一技之長嗎 ? 歡迎參加莊敬建教班 不但三年免學費,且 保證讓您學到一技之 長,脫離貧窮,邁向 光明的人生 免試入學.
Advertisements

C/C++ 程序设计 吉林财经大学 管理科学与信息工程学院 李艳东 : Tel :
桃園地景藝術節 最近桃園在舉辦桃園地景藝術節,種共有五大主題區, 分別是:黃色小鴨展區、巨型蓮花展區、草間點點展區、范姜 古厝展區、新屋水巷展區。那這些景點到底個展覽什麼呢?讓 我們繼續看下去 …… 。
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
主讲:王幸民 理学院计算机基础教学部.
4-2 、聚落的演變 人口的分布 自然環境特性、交通便利性及就業 機會等因素,常影響人們對於居住地點 的選擇。 臺灣西部地區的平原和盆地,地勢 較為低平、開發較早,在肥沃的土壤、 便捷的交通網路等有利的條件下,工商 業往來頻繁,人口較為密集。
什么是SOPC: SOPC是英文System On a Programmable Chip的缩写,称为片上可编程系统。SOPC将传统的EDA技术、计算机系统、嵌入式系统、数字信号处理等融为一体,综合了各自的优势,且在结构上形成一块芯片。 为什么用SOPC:SOPC是现代电子技术和电子系统设计的发展趋势,建立了电子系统设计的新模式。用户利用SOPC开发平台,自行设计高速、高性能的DSP处理器、特定功能的CPU及其外围接口电路,创建结构最为简洁的电子系统。
嵌入式系统简介 Introduction to Embedded System
第二部分 嵌入式硬件系统 第2章 嵌入式处理器 第3章 ARM内核与ARM处理器 第4章 嵌入式系统的外围设备.
加快培育和发展战略性新兴产业 科技部调研室 胥和平
嵌入式系统与结构 —基于ARM的体系结构和应用开发
基础模块 模块一 程序设计基础 (一)开发环境部分.
2014年语言文字工作总结 党委学生工作部 2014年12月5日.
授课教师:江星玲 1.
培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。
第3章: 產業與競爭環境 張緯良 世新大學資訊管理系.
電腦組合語言 光啟高中96學年度第2學期 第一篇 組合語言開發流程與指令格式.
第2章 SOPC硬件开发环境及流程.
文明建设,气象先行 ——农安县气象局 2.
单片机应用技术 项目一 循环彩灯装置 第7讲 Keil软件的使用 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
滑雪美食街 組員:林韋伶、張雅弦、王佑盛、朱坤賢.
汪清县气象局创建省级文明单位工作展示 2016年8月
第2章:企業組織 張緯良 世新大學資訊管理系.
防貪專精工作報告 宜蘭縣政府政風處 薛容青.
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
榕桥中学 校园文化建设情况汇报.
2016年上半年工作汇报 后勤与保卫管理处 二○一六年七月.
新办纳税人培训 (地税部分) 2015年8月.
第一章 嵌入式系统开发基础 本章介绍了嵌入式系统开发的基础知识,从嵌入式计算机的历史由来、嵌入式系统的定义、嵌入式系统的基本特点、嵌入式系统的分类及应用、嵌入式系统软硬件各部分组成、嵌入式系统的开发流程、嵌入式技术的发展趋势等方面进行了介绍,涉及到嵌入式系统开发的基本内容,使读者系统地建立起的嵌入式系统整体概念。
工具链 介绍部分 1b.
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
第二十九章 DLL / LIB函式庫開發 當我們開發程式到一個階段之後,我們一定會希望各個Component的程式碼可以分開的越清楚越好。而這一章最主要就是要告訴各位讀者,我們常在Windows系統中看到的dll或是lib的檔案該怎麼實作?做出這樣的library我們又該如何運用?為什麼使用dll或是lib有利於我們開發程式?以上這些疑問都將會在這一章中得到解答。
ARM裸机第一部分-ARM那些你得知道的事
C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程
PIC16F1827介紹 以微控器為基礎之電路設計實務-微處理器實驗室.
主講:王穎聰 電腦與通訊工程學系講師 銘傳大學資訊網路處
微 電 腦 實 驗 Megawin MPC82G516 操作與環境設定.
Bootloader技术分析.
嵌入式系統架構 長高科技 顏旭偉.
精進教師研習 QR Code製作教學 資料來源:
怎样从0开始写bootloader? 李明 北京亚嵌教育研究中心
THGMS-1型单片机·嵌入式C8051F·ARM·
Native Development Kit
第4章 汇编语言程序设计 汇编语言源程序格式 汇编语言上机过程 汇编语言与C语言混合编程技术.
数字信号处理 FIR和IIR滤波器实验.
嵌入式系統概論-以S3C2440核心為架構 第1章 嵌入式系統概念.
计算机组装、维修及 实训教程 第15章 微机硬件的组装 2018年12月25日星期二.
9.1 家用电器.
校 園 雲端輸出管理系統 新印科技股份有限公司 聯絡人:伍宏一 電 話: /
第五章 C/C++及汇编语言的混合编程 5.1 ARM C/C++编译器 5.2 在C/C++程序中内嵌汇编指令
Instructor:Po-Yu Kuo 教師:郭柏佑
利用ICE通信中间件构建分布式应用程序开发框架
世外桃源~ 劍 潭 里 零碳排放里.
第1章 Java语言概述 学习目标 本章要点 上机练习 习 题.
第3章 嵌入式系统的设计方法 3.1 嵌入式系统的总体结构 3.2 嵌入式系统开发过程 3.3 ADS集成开发环境的使用
8051單晶片 蘇恆生 老師.
嵌入式系统实验 ● 交叉开发实验 ● 仿真开发实验.
ARM Developer Suite 介 绍.
焊錫知識.
C程序设计.
ARM處理器.
第一章 C语言概述 目录 什么是语言、程序 C语言的历史与发展 C语言的书写形式与程序结构 运行C语言的步骤与方法
第二章ADS1.2开发环境创建与简介.
相片典藏 臺北市立弘道國中總務處 防災校園建置計畫補助-個人防護具 品 名 數 量 30 4 工作手套 72 6 簡易雨衣 300
C++程序设计 概述 潘荣江 山东大学软件学院.
code::blocks 與GLUT 程式開發
第6章 嵌入式软件开发基础.
《操作系统设计与实现》 第5章 文件系统.
硬件基础知识及常见硬件故障处理.
Presentation transcript:

第六章 ADS集成开发环境的使用

6.1 裸机开发环境

裸机开发环境 何谓“裸机”? 裸机开发的作用 裸机是指无操作系统下的ARM系统开发 其特点是所有硬件资源均开放 可以把它理解为一个高级单片机的开发 裸机开发的作用 更能深入地从底层去理解ARM CPU的操作过程及系统设计 为日后自行设计系统打下基础 为bootloader的编写打好基础

开发环境的作用

ADS下嵌入式系统开发模式 模拟方式 仿真方式 调试方式

开发环境 开发软件有: 调试软件有: SDT(Software Development Toolkit)2.51 ADS(ARM Developer Suite)1.2 RealView® 调试软件有: AXD(ARM eXtended Debugger):ARM扩展调试器; ARMSD(ARM Symbolic Debugger):ARM符号调试器; ADW/ADU(Application Debugger Windows/Unix):与老版本兼容的Windows或Unix下的ARM调试工具。

6.2 ADS1.2开发环境介绍

ADS集成开发环境 ARM公司推出的新一代ARM集成开发工具 (相对于SDT) 全称:Metrowerks CodeWarrior for ARM Developer Suite v1.2 ADS的CodeWarrior IDE基于Metrowerks CodeWarrior IDE 4.2版本 它经过适当的裁剪以支持ADS工具链

ADS集成开发环境组成 ADS的主要组成部件有: 有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序 命令行开发工具 ARM运行时库 GUI开发环境(Code Warrior和AXD) 有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序

6.2.1 命令行开发工具

命令行开发工具 完成将源代码编译,链接成可执行代码的功能 命令行开发工具需要记忆较多的命令参数,但效率高;通常用集成开发环境(IDE)代替 类似于8086汇编环境下的masm和link工具 命令行开发工具需要记忆较多的命令参数,但效率高;通常用集成开发环境(IDE)代替

ADS提供下面的命令行开发工具: Armcc:ARM C编译器 Armcpp: ARM C++编译器 Armasm:ARM汇编编译器 : Armlink:ARM连接器

Armcc armcc用于将用ANSI C编写的程序编译成32位ARM指令代码 armcc最基本的用法为: armcc [options] file1 file2 ... filen 这里的option是编译器所需要的选项,fiel1,file2…filen是相关的文件名 举例:armcc -c init.s led.s

-c:表示只进行编译不链接文件; -C:(注意:这是大写的C)禁止预编译器将注释行移走; -D<symbol>:定义预处理宏,相当于在源程序开头使用了宏定义语句#define symbol , -E:仅仅是对C源代码进行预处理就停止; -g<options>:指定是否在生成的目标文件中包含调试信息表; -I<directory>:将directory所指的路径添加到#include的搜索路径列表中去; -o<file>:指定编译器最终生成的输出文件名。 -O0:不优化; -O1:这是控制代码优化的编译选项,大写字母O后面跟的数字不同,表示的优化级别就不同,-O1关闭了影响调试结果的优化功能; -O2:该优化级别提供了最大的优化功能; -S:对源程序进行预处理和编译,自动生成汇编文件而不是目标文件; -U<symbol>:取消预处理宏名,相当于在源文件开头,使用语句#undef symbol; -W<options>:关闭所有的或被选择的警告信息; 有关更详细的选项说明,读者可查看ADS软件的在线帮助文件。

armasm armasm是ARM和Thumb的汇编器 它对用ARM 汇编语言和Thumb 汇编语言写的源代码进行汇编

6.2.2 ARM运行时库

ARM运行时库 运行时库就是 C run-time library 你的 C 程序运行时需要这些库中的函数 C run-time library里面含有初始化代码,还有错误处理代码(例如divide by zero处理) 如果没有了C run-time库,main()就不会被调用,exit()也不能被响应。因为C run-time library包含了C程序运行的最基本和最常用的函数

库的作用 当用户对汇编程序,C程序或C++程序进行链接的时候,链接器会根据在建立时所指定的选项,选择适当的C或C++运行时库的类型 选项各种不同组合都有一个相应的ANSI C库类型

ADS提供以下的运行时库来支持被编译的C和C++代码: ANSI C库函数: C++库函数:

ANSI C库函数 由以下几部分组成: 在ISO C标准中定义的函数; 在semihosted环境下用来实现C库函数的与目标相关的函数; 被C和C++编译器所调用的支持函数

C++库函数 由以下几部分组成的: 版本为2.01.01的Rogue Wave Standard C++库; C++编译器使用的支持函数; Rogue Wave库所不支持的其他的C++函数

库路径结构 库路径是在ADS软件安装路径的lib目录下的两个子目录 假设,ADS软件安装在e:\arm\adsv1_2目录,则在e:\arm\adsv1_2\lib目录下的两个子目录armlib和cpplib是ARM的库所在的路径

armlib 这个子目录包含了ARM C 库,浮点代数运算库,数学库等各类库函数 ARM C库函数是以二进制格式提供的 与这些库相应的头文件在e:\arm\adsv1_2\include目录中

cpplib 这个子目录包含了Rogue Wave C++库和C++支持函数库 Rogue Wave C++库和C++支持函数库合在一起被称为ARM C++库 与这些库相应的头文件安装在e:\arm\adsv1_2\include目录下

6.3 GUI开发环境 (Code Warrior和AXD)

6.3.1 Code Warrior

CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面 用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C,C++,或ARM汇编语言的程序代码 全面的项目管理功能

CodeWarrior for ARM是一套完整的集成开发工具,充分发挥了ARM RISC 的优势

可以在CodeWarrior IDE为ARM配置以上所介绍的各种命令工具,实现对工程代码的编译,汇编和链接

功能特色 源代码编辑器 源代码浏览器 查找和替换功能 文件比较功能 集成在CodeWarrior IDE的浏览器中,能够根据语法格式,使用不同的颜色显示代码; 源代码浏览器 保存了在源码中定义的所有符号,能够使用户在源码中快速方便的跳转; 查找和替换功能 用户可以在多个文件中,利用字符串通配符,进行字符串的搜索和替换; 文件比较功能 可以使用户比较路径中的不同文本文件的内容

实用程序 fromELF armar 这是ARM映像文件转换工具 该命令将ELF格式的文件作为输入文件,将该格式转换为各种输出格式的文件,包括plain binary(BIN格式映像文件), Motorola 32-bit S-record format(Motorola 32位S格式映像文件), Intel Hex 32 format(Intel 32位格式映像文件),和 Verilog-like hex format(Verilog 16进制文件) armar ARM库函数生成器将一系列ELF格式的目标文件以库函数的形式集合在一起,用户可以把一个库传递给一个链接器以代替几个ELF文件。

与调试相关工具链在该集成环境中没有实现 但与ARM调试器(AXD)能进行无缝地连接调用

基本概念-target 在CodeWarrior IDE中所涉及到的target有两种不同的语义 目标系统(Target system) 特指代码要运行的环境,是基于ARM的硬件。比如,要为ARM开发板上编写要运行在它上面的程序,这个开发板就是目标系统。 生成目标(Build target) 指用于生成特定的目标文件的选项设置(包括汇编选项,编译选项,链接选项以及链接后的处理选项)和所用的文件的集合。

6.3.2 操作过程及实例

实例说明 功能: 循环点亮LED灯(跑马灯) 实现方法: 汇编语言加C语言混合编程 目的 学习ADS的使用 学习ARM开发语言的编写与调试

建立工程 在磁盘里新建一个目录“D:\arm” 打开ADS软件 点击工具栏“File”,下拉点击“New…”

选择工程类型

输入工程名称及其目录

Ledcircle工程建立

新建工程后的目录

新建文件

Init.s文件

Main.c

添加文件到工程

添加到target DebugRel:使用该目标,在生成目标的时候,会为每一个源文件生成调试信息; Release:使用该目标不会生成任何调试信息。

文件添加完毕

编译连接

进入编译连接设置

设置窗口

目标设置

ARMASM编译器设置

ARMCC编译器设置

文件输出设置

编译连接

文件输出

6.4 AXD调试工具

AXD调试工具 在软件开发的最初阶段,可能还没有具体的硬件设备。如果要测试所开发的软件是否达到了预期的效果,这可以由软件仿真来完成。 当然,也可以搭建一个PCB板,这个板上可以包含一个或多个处理器,在这个板上可以运行和调试应用软件。 只有当通过硬件或者是软件仿真所得到的结果达到了预期的效果,才算是完成了应用程序的编写工作。

调试器能够发送以下指令: 装载映像文件到目标内存; 启动或停止程序的执行; 显示内存,寄存器或变量的值; 允许用户改变存储的变量值。

进入AXD调试工具

处理器状态观察 包括: 寄存器 变量 存储器

存储器窗口 包括: 显示格式 修改操作

单步执行、断点

添加变量进行观察

小 结 本章主要介绍了ADS软件的使用 介绍了如何使用ADS的调试软件AXD调试应用程序 小 结 本章主要介绍了ADS软件的使用 结合一个具体的应用实例,介绍如何在CodeWarrior IDE环境下建立自己的新工程,编译和链接工程生成可以调试的映像文件和二进制文件的过程 介绍了如何使用ADS的调试软件AXD调试应用程序