(3) Make可以编译整个工程,并生成映像文件.在ADS中,ARM提供了三种映像文件, 
     1. Debug:      使用本生成目标生成的映像文件中包含了所有的调试信息,用于开发过程中使用 
     2. Release:    使用本生成目标生成的映像文件中不包含调试信息,用于生成实际发行的软件版本 
     3. DebugRel: 使用本生成目标生成的映像文件中包含了基本的调试信息(常用的是DebugRel映像文件). 
(4) 使用Make编译整个工程文件时,可能提示: 
      Error:(Fatal) Could not open file 
E:2440test/DMA/DMA_Data/DebugRel/ObjectCode/2440init.o      这是由于用户改变了用户在Make之前改变了整个工程文件的路径,解决途径是执行菜单Project/Remove Object Code,清除以前已编译过的目标文件,再重新编译即可. 
(5) Dubug按钮用于调适,单击按钮后自动运行AXD Debugger,其功能有: 
    1. 下载目标映像文件到目标系统中. 
    2. 在目标程序中设置断点,包括程序端点和数据端点.     3. 查看和修改断点处处理器状态.     4. 查看和修改目标程序中变量的值. 
    5. 单步执行目标程序,并可以显示反汇编的代码或者源程序代码.

(四)CodeWarrior IDE新建工程文件 
步骤1:打开CodeWarrior IDE.执行菜单File/New,弹出新建对话框.在Project内选择ARM Executable Image(ARM可执行镜像).输入工程的名字及保存路径.注意,只需要输入工程名,不需要结尾,且保存路径必须是英文路径.这样就生成了以.mcp为结尾的工程文件. 
        例如,输入工程名LED,路径D:/ARM/LED,这样就在D:/ARM下自动生成了LED文件夹,在LED文件夹下有两个文件,分别是LED_Data、LED.mcp. 步骤2:向工程中添加新建文件 
         执行菜单File/New,弹出新建对话框.在File内输入文件的名字及保存路径.注意,需要输入以某种类型结尾的文件名,且保存路径必须是英文路径(系统默认新建文件的路径即为工程路径).选中"Add to Project",在Project栏内选择需要添加文件的工程,在Targets栏内只选择编译选项DebugRel(生成的镜像中只包含基本的调试信息).这样用户就可以在文件内进行编程,然后保存. 
        例如,输入文件名main.c,(默认)路径D:/ARM/LED,选中Add to Project,在Project内选择需要添加文件的工程LED.mcp,   在Targets栏内只选择编译选项DebugRel. 步骤3:向工程中添加已存在的文件 
       将已有文件或文件夹复制到新建工程的路径下,执行菜单Project/Add Files,添加文件夹内的各个文件,注意只能添加文件,不能添加文件夹.在添加文件的过程中,CodeWarrior IDE会提醒用户来选

择编译选项,这里只选择DebugRel(生成的镜像中只包含基本的调试信息),不选择Release、Debug. 
       比如,复制系统文件夹system、文件夹uart到路径D:/ARM/LED下,执行菜单Project/Add Files,添加文件夹system、uart下的各个文件,并选择编译选项DebugRel. 
步骤4:新建的文件以及新加文件都被列出来,为了将这些文件按功能进行分类,执行菜单Project/Create Group,新建组.在 
Enter name for new group内输入组名,用户可以将各个文件按功能拖入组内.例如,执行菜单Project/Create Group,Enter name for new group内分别输入组名src、inc.其中,src表示存放系统的源码文件,inc表示存放系统的头文件,然后将以.c结尾的文件拖入组src内,将.h结尾的文件拖入组inc内.当然,如果工程较大,可以按模块进行分组,这样便于管理. 
  
(五)CodeWarrior IDE的设置 
  单击按钮DebugRel Settings,弹出DebugRel Settings对话框. <1>Target Settings 
     如果要生成可执行文件,则在Post-linker内选择ARM fromELF.如果不想生成可执行文件,则选择None. <2>ARM Assembler 
     在Architecture or Processor内选择ARM920T. <3>ARM C Compiler 
     在Architecture or Processor内选择ARM920T.

<4>ARM C++ Compiler 
     在Architecture or Processor内选择ARM920T. <5>Thumb C Compiler 
     在Architecture or Processor内选择ARM920T. <6>Thumb C++ Compiler 
     在Architecture or Processor内选择ARM920T. <7>ARM Linker 
  1.Output/Simple image栏:RO是内存的起始地址,即输入0x30000000. 
  2.Options/Image entry point栏:填入内存的起始地址,即输入0x30000000. 
  3.Layout/Place at beginning of image/Object/Symbol栏:指定初始化代码的目标文件. 
     初始化代码是已添加的汇编文件2440init.s,该文件编译后生成2440init.o,即输入2440init.o 
  4.Layout/Place at beginning of image/Section栏:输入Init      打开初始化代码文件2440init.s,找到 
     IMPORT Main The main entry of mon program    //main函数的入口地址 
     AREA   Init,CODE,READONLY                     //定义名为Init的只读代码段. 
     这个Init就是Section栏需要输入的.当然,用户也可以修改名字Init,然后将修改后的名字填入Section即可.此时,在Equivalent Command Line内会出现用户所设置的参数

<8>ARM fromELF 
   1.Output format:设置输出可执行文件的类型.选择Plain binary(二进制文件). 
   2.Output file name:指定生成的可执行文件的文件名.当然也可以不用设置,系统默认生成以工程名加后缀.bin的文件.

ads的更多相关文章

  1. FineReport如何用JDBC连接阿里云ADS数据库

    在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我们只需要手动将连接ads数据库需要使用到的jar放置到%F ...

  2. 【转】arm 开发工具比较(ADS vs RealviewMDK vs RVDS)

      ADS REALVIEW MDK RVDS 公司 ARM Keil(后被ARM收购) ARM 版本 最新1.2 ,被RVDS取代 最新4.0 是否免费 破解情况 有 有 工程管理 CodeWarr ...

  3. NTFS系统的ADS交换数据流

    VC++ 基于NTFS的数据流创建与检测 What are Alternate Streams?(交换数据流) NTFS alternate streams , 或者叫streams,或者叫ADS(w ...

  4. Search Ads 已经在美国区上线 - iOS 移动开发周报(46)

    Search Ads 已经在美国区上线 - iOS 移动开发周报(46) 新闻 Search Ads 上线 苹果的 AppStore 搜索广告终于 正式上线了 https://developer.ap ...

  5. ADS报错 Warning : L6301W:Could not find file C:\Program Files . Error : L6218 : Undefined symbol ......

    ADS1.2编译时,出现找不到一个不存在目录下的目标文件(*.o) 编译一个COPY到硬盘上的一个工程,出现以下的fatal error message: Error: (Fatal)L6002: C ...

  6. ads 的一些错误

    遇到动不动就有*.o文件找不到的情况,而且通常都是开始的时候可以正常LINK,而经过若干次重新LINK后却找不到(即使只是在代码中加一个无关紧要得空格),新建个工程,将目前的.C和.H文件原封不动加进 ...

  7. ads 错误

    这个问题已经不是第一次碰到了,每次弄周立功的EasyARM2210的时候都会遇见,每次都没有记住.就是要用ADS运行板子配套光盘里面的配套程序的时候会出现: (Fatal)L6002U:Could n ...

  8. ADs系列之通用数据解析服务GAS(即将开源)

    面对成百上千的生产系统用户操作数据接入落地,你是否厌倦了每次机械编写打包解包的代码?对一次性接入多个数据的时候,还要对不同人联调,费时费力,你是否还会手忙脚乱,忙中不断出错?是否当数据出问题了,用的时 ...

  9. ADS的使用

    ADS是一款强大的软件,应用程序不能直接操作硬件,而ADS程序是无操作系统支持的,可以直接操作硬件,下面来介绍一下ADS的基本使用方法. 编辑本段基本简介: ADS(ARM Developer Sui ...

随机推荐

  1. nginx调优

    Nginx is an open-source Web Server. It is a high-performance HTTP server that uses very low server r ...

  2. 医生加号页改版,就一个Bug, 看医生工作台一期需求

    8/8日报 分级埋点:     [MobClick event:UmengPagePlusDoctor attributes:@{@"page":@"plusPage&q ...

  3. 纸牌project

    用range[0,8)的列表表示牌,这些数字要出现两次.我们建议你通过连接两个range[0,8)的列表来创建这个list.利用Docs来安排列表串联操作 写一个draw handler啥样的draw ...

  4. PHP其它常用函数;<<<面向对象(OPP)的三大特性:封装、继承、加态:>>> <----面试题 ;构造方法、析构方法,魔术方法、set、get方法;静态;抽象类;接口

    PHP其它常用函数:     赋值:$r->name = "元素";      取值: echo $r->name;  count()   计算数组中的元素数目或对象中 ...

  5. 理解tornado

    计算密集型:多进程 IO密集型:多线程   能产生IO阻塞的情况很多,比如网络通讯.磁盘读写.当发生阻塞时,CPU是闲置的,此时如果就一个线程就没法处理其他事情了. 所以对于含有IO阻塞的环境,多线程 ...

  6. 窗口类型(Widget, Window, Dialog, Desktop, SubWindow等等)

    http://doc.qt.io/qt-5/qwidget.html#windowFlags-prop http://doc.qt.io/qt-5/qtwidgets-widgets-windowfl ...

  7. Ubuntu 更改默认apt-get源

    原文转自:http://zhoushijun.iteye.com/blog/1942475 方法: 1.修改源地址:cp /etc/apt/sources.list /etc/apt/sources. ...

  8. [LeetCode]题解(python):80-Remove Duplicates from Sorted Array II

    题目来源 https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/ Follow up for "Remov ...

  9. [LeetCode]题解(python):059-Spiral Matrix II

    题目来源 https://leetcode.com/problems/spiral-matrix-ii/ Given an integer n, generate a square matrix fi ...

  10. JS判断对象类型

    对于确定JS内置对象类型,JS提供了typeof运算符,该运算符得到的结果为以下6种:number,boolean,string,function,object,undefined.不过对绝大多数对象 ...