• ADS模板的使用


    早就知道有工程模板这个东东,类似于power pcb在启动时自动设置好一些常用工作环境一样。今天下定决心好好研究研究这个工程模板到底是怎么回事,经过一番搜索终于找到好文章了。。

     
         在ADS新建的时候出现一个对话框,默认只有6个模板。
    这些模板的具体介绍就不详细论述了,在赵星寒等编著的<<ARM开发工具ADS原理与应用>>一书的P35有详细介绍。
         这个6个模板的奥妙就在ADS安装目录下的D:\Program Files\ARM\ADSv1_2\Stationery文件夹里,一个模板对应一个文件夹,如果在这里自己建立一些新的文件夹(名字任意),一样会在新建工程的时候出现。如下图:
    这里我找了一个C程序工程模板,下面是一些使用说明
    /*本模板用于使44B0运行C程序
    一般说来汇编用来初始化之后跳到C入口MAIN函数处
    */
     
    一般一个模板的设置包含工程文件的设置和ADS配置信息的设置,下面我总结一下我针对S3C44b0的这个CPU的添加开发模板的过程:
     
    A、工程文件部分设置:
    1.转到目录D:\Program Files\ARM\ADSv1_2\Stationery\下面
    2.复制ARM Executable Image文件夹,重命名文件夹为S3C44B0_ARM_template
    3.将文件夹内的ARM Executable Image。MCP工程文件更名为S3C44B0_ARM_template.mcp,删除对应的同名数据文件夹ARM_Executable_Image_Data,方便下次编译。
    4.复制自己的工程模板文件,如果按照我这里提供的这个文件包,目录组织如下:
    (来源于网上,除开自己的C件之外均为三星公版,其余文件不需修改)
    ../INC    所有的头文件,至少得包含一些常用的文件44binit.s ,44blib_a.s 
    ../Src     所有原文件,至少得有一个C文件。如*.c(自己的c文件)
    /*注意
    44binit.s中开头部分INCLUDE两个文件MEMCFG.S ,Option.s用于基本设置
    留意修改包含地址,让INCLUDE找到它们
        INCLUDE ..\inc\option.s
        INCLUDE ..\inc\memcfg.s
    */
    5.双击打开MCP文件,删除没用的Targets文件,把刚才复制到新模板目录下的文件加入工程
    如图:
    B、CodeWarrior配置信息设置:
     
    1、DebugRel Setting里一般设置几项
    1) Target Setting->Target Name : DEBUG_S3C44b0
    2) Target Setting->Linker里选ARMLinker ,用于设置编译器连接
    3) Target Setting->Post-Linker选ARM fromELF
       用于生成FLASH烧录代码(只在RAM里运行 而不烧录则不用)
    4) ARM Linker->RO BASE里添地址(重点设置)
       根据板子来,这板子上RAM接的NSCS6,地址0XC000000-0XC7FFFFF;
     FLASH接的NSCS0,地址0X00000-0XFFFFF
     地址分配原理见44B0数据手册内存管理那章的内存分配图
     想在RAM里调试就添0XC000000(比如0XC008000)的地址
     但是注意的是地址不要添过界,比如想在RAM里调试却添0X00000000 程序可以 进入C代码 但没法运行
     
     再有
     想生成用于烧写得FLASH代码 RO地址就需要设置为0X0000000开始的 而且LAYOUT中也必须设置44BINIT.O为初始加载文件
     以上FLASH测试结论经FLASHPGM测试
    而且FLASHPGM不支持BIN文件 只支持INTEL得HEX文件
    4)RW可以添 可以不添 一般RO解释为数据段,RW解释为数据段
     有时高兴了就添上0XC100000(RAM调试时)
    5)ARM Linker->OPTION->Image entry point选择0xc000000(RAM调试时)
    6)ARM Linker->Layout->Object/Symbol里可以添工程起始程序44BINIT.O 注意是.O不是.S和.0(零)
     也可以不添

    打开工程 Settings 修改相关内容,下面是只我修改的,大家可以根据自己需要设定
    target:
    Target Settings;
    Target Name : DEBUG_44b0
    Post-linker : ARM fromELF
    Access Paths: 均修改成指向工程的目录
    Linker:
    ARM Linker
    Output
    linkytpe: simpley RO Base 0x000000 RW Base 0x202000
    Options
    image entry point :entry
    Layout       
    Place at beginning of image
    Object/Symbol:cstartup.o
    Section : reset
    ARM fromELF
    Output format : Plain binary
    Output file name
    X:\XXXX.bin
    修改完毕要保存哦,
    编译一下,看是否能通过,没问题了就可以关闭工程了,
    最后回到D:\Program Files\ARM\ADSv1_2\Stationery\44b0_ARM_template下面
    删除44b0_ARM_template_Data文件夹及里面内容
    以后打开ADS应该可以看到自己的建立的模板了

  • 相关阅读:
    BZOJ1307: 玩具 单调队列
    BZOJ4415: [Shoi2013]发牌 树状数组+二分
    BZOJ2456: mode
    BZOJ2982: combination Lucas
    BZOJ4195: [Noi2015]程序自动分析 并查集
    BZOJ2563: 阿狸和桃子的游戏 贪心
    BZOJ5281: [Usaco2018 Open]Talent Show 01分数规划+01背包
    一种斐波那契博弈(Fibonacci Nim)
    网易云深度剖析Kubernetes优化与实践
    360°透视:云原生架构演进
  • 原文地址:https://www.cnblogs.com/hnrainll/p/1881328.html
Copyright © 2020-2023  润新知