DS-5中将项目从Arm编译器5迁移到Arm编译器6

准备:

  • 下载并安装DS-5软件并且需要有DS-5 Ultimate的授权

链接:https://pan.baidu.com/s/1G6hP4P5hy1ns5Y09609SiQ 
提取码:bt7u 

一、功能验证操作步骤

  1. 打开DS-5软件

    2. 如果显示的是Welcome窗口将它关闭。然后点击Windows >> Show View >> Project Explorer将Project Explorer窗口打开。

3.  点击File >> Import导入工程例程

4. 选择fireworks A9-FVP_AC5例程

5. 在Project Explorer窗口中选中fireworks A9-FVP_AC5工程。单击右键选择Build Project对例程进行编译以查看例程是否有错误。

6. 因为此例程中自带了makefile文件,所以我们需要取消勾选工程属性中“Generate Makefiles automatically”,并删除Build directory栏中“/Debug”。

7. 点击OK保存设置,并重新编译工程

  • 在Project Exporer窗口中点开fireworks A9-FVP_AC5工程目录可以看到3个.launch文件。这3个文件是FVP的加载文件描述了所使用的FVP的类型(内核类型、内核数量)等信息,这些设置可以通过Debug Configurations窗口来完成。
  • 选中其中一个.launch文件右键选择Debug As >> firework_AC5-Cortex-A9x1-FVP

8. 稍等片刻,DS-5会加载相关的FVP,程序会在main函数开头处停止。然后会出现如下界面

9. 点击Continue按钮运行程序

10. 效果如下:

二、切换编译器

  1. 在Project Exporer窗口中选中firework_A9-FVP_AC5工程,右键选择Properties。在打开的窗口中选择C/C++ Build >> Tool Chain Editor。然后在Current toolchain中选择Arm Compiler 6

2. 重新编译工程会出现如下错误,这是因为我们的工程用的是makefile文件进行编译,我们刚才只是修改了编译器而没有对makefile文件进行修改。

3. 双击工程中的makefile文件打开并按照以下修改它

  • 修改编译器:将CC = armcc CC = armclang
  • 修改编译选项:

将以下内容:

DEPEND_FLAGS = --depend=$@.d --depend_format=unix_escaped

CFLAGS = --cpu=$(CPU) $(DEBUG_FLAGS) --$(CODE_TYPE) -O$(OPT_LEVEL) -O$(OPT_FOR) $(DEFINES) $(INCLUDES) $(DEPEND_FLAGS) --no_depend_system_headers $(SUPPRESS)

AFLAGS = --cpu=$(CPU) $(DEBUG_FLAGS) --apcs=/interwork $(DEPEND_FLAGS) $(SUPPRESS)

修改为:

DEPEND_CFLAGS = -MF $@.d

DEPEND_AFLAGS = --depend=$@.d --depend_format=unix_escaped

CFLAGS = --target=arm-arm-none-eabi -m$(CODE_TYPE) $(DEBUG_FLAGS) -O$(OPT_LEVEL) -mcpu=$(CPU) $(DEFINES) $(INCLUDES) $(DEPEND_CFLAGS) -MMD $(SUPPRESS)

AFLAGS = --cpu=$(CPU) $(DEBUG_FLAGS) --apcs=/interwork $(DEPEND_AFLAGS) $(SUPPRESS)                         

4. 修改代码

  • 修改main.c文件中的main函数。将main函数前面的void改为int。在main.c文件开头添加arm_compat.h头文件

5. 修改retarget.c文件将

#pragma import(__use_no_semihosting)

替换为:

asm(".global __use_no_semihosting");

6. 保存修改过的文件,然后重新编译工程

7. 运行程序查看效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值