0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于MDK编译器AC5与AC6切换的问题

冬至子 来源:梅江松子 作者:梅江松子 2023-10-16 14:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.jpg

如上图所示,作者将一个工程从AC5切换到AC6后,出现编译报错。

原因是在AC5环境下,部分源文件 #include "cmsis_armcc.h"头文件,此头文件是AC5编译器下使用的。

在AC6编译器环境下,需替换成 #include "cmsis_armclang.h"文件

同时宏 __CC_ARM __ARMCC_VERSION 分别是使用AC5和AC6编译器时,MDK定义的两个全局宏

#if defined(__ARMCC_VERSION)
#include "cmsis_armclang.h"
#elif defined(__ARMCC_VERSION)
#include "cmsis_armcc.h"
#endif

即可通过这两个宏控制头文件包含

在官方的BSP board.h 文件中也有对这两个宏的引用

#if defined(__CC_ARM) || defined(__ARMCC_VERSION)
extern int Image
RW_IRAM1
Limit;
#define HEAP_BEGIN ((void *)&Image

RW_IRAM1

Limit)
#elif ICCARM
#pragma section = "CSTACK"
#define HEAP_BEGIN (__segment_end("CSTACK"))
#else
extern int __bss_end;
#define HEAP_BEGIN ((void *)&__bss_end)
#endif
#define HEAP_END STM32_SRAM_END

补充:

使用scons —target=mdk5 创建MDK5工程 是基于 BSP目录下template工程建立的,在template工程中设置编译器版本为AC6

1.jpg

2.jpg

生成的MDK工程也会是AC6,但是有一个问题就是编译后进行debug,程序无法进入

#ifdef __ARMCC_VERSION
extern int Super$main(void);
/* re-define main function */
int Sub$main(void)
{
rtthread_startup();
return 0;
}

必须先手动改成AC5,然后再改回AC6,才行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM技术
    +关注

    关注

    0

    文章

    22

    浏览量

    7702
  • MDK5
    +关注

    关注

    0

    文章

    10

    浏览量

    6114
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Ubicom SX20AC/SX28AC通信控制:功能特性与应用解析

    Ubicom SX20AC/SX28AC通信控制:功能特性与应用解析 在电子设计领域,通信控制的性能和功能对于众多应用至关重要。Ubicom的SX20
    的头像 发表于 04-11 15:15 523次阅读

    Aimtec AMFE305150 AC EMC滤波:助力AC - DC应用稳定运行

    旨在为AC电源浪涌提供保护。它能帮助AC - DC转换满足IEC/EN61000 - 4 - 5标准的浪涌等级(±2KV(2Ω内阻)或±4KV(12Ω内阻)),以及CISPR32/E
    的头像 发表于 03-28 09:05 378次阅读

    探索AMEL5-VZ AC - DC转换:高效与可靠之选

    探索AMEL5-VZ AC - DC转换:高效与可靠之选 在电子工程师的日常工作中,为系统挑选合适的AC - DC转换是至关重要的一环。
    的头像 发表于 03-27 16:05 232次阅读

    深入解析AMEL5 - 277NZ AC - DC转换:性能、特性与应用

    深入解析AMEL5 - 277NZ AC - DC转换:性能、特性与应用 在电子工程领域,AC - DC转换是不可或缺的关键组件,它能将
    的头像 发表于 03-27 15:50 406次阅读

    SN74AC14NSR 具有施密特触发输入的 6 通道、2V 至 6V 反相

    SN74AC14NSR具有施密特触发输入的6通道、2V至6V反相产品型号:SN74AC14NSR产品品牌:TI/德州仪器产品封装:SOP1
    的头像 发表于 03-03 11:17 374次阅读
    SN74<b class='flag-5'>AC</b>14NSR   具有施密特触发输入的 <b class='flag-5'>6</b> 通道、2V 至 <b class='flag-5'>6</b>V 反相<b class='flag-5'>器</b>

    5 GHz,802.11ac,支持 LAA 的前端模块 skyworksinc

    电子发烧友网为你提供()5 GHz,802.11ac,支持 LAA 的前端模块相关产品参数、数据手册,更有5 GHz,802.11ac,支持 LAA 的前端模块的引脚图、接线图、封装手
    发表于 10-28 18:30
    <b class='flag-5'>5</b> GHz,802.11<b class='flag-5'>ac</b>,支持 LAA 的前端模块 skyworksinc

    nano版本使用AC6编译器下,不显示msh怎么解决?

    ;gt; 字符串。 排查问题大概猜测应该是 FinSH 根本就不工作,主要原因很可能是 AC6 版本没有把FinSH那些代码编译到最终的bin文件。 网上说要修改链接文件,但是网上的资源都是gcc编译器的链接文件。 暂时不知道
    发表于 09-25 07:19

    rt_list_for_each_entry编译失败怎么解决?

    ,这个宏是在rtservice.h中定义的 网上搜了一遍,有好心的网友说可以在AC5编译器里增加—gnu 我尝试了一下行不通,AC6编译器AC
    发表于 09-18 07:14

    如何在Keil中将NuMicro BSP从Arm编译器5迁移到编译器6

    在Keil中将NuMicro BSP从Arm编译器5迁移到编译器6
    发表于 08-20 06:29

    CW32L011_PD Power 口袋电源活动

    。 **关于编译: 无论AC6还是AC5,优化等级都需要 -O0。 使用AC5时,需要选择cmsis包5.9.0。** 供电需要插在边缘的
    发表于 08-17 11:06

    Texas Instruments SN74AC17/SN74AC17-Q1六路缓冲数据手册

    Texas Instruments SN74AC17/SN74AC17-Q1六路缓冲由六个独立的CMOS逻辑缓冲组成,带有施密特触发
    的头像 发表于 07-15 09:50 1216次阅读
    Texas Instruments SN74<b class='flag-5'>AC</b>17/SN74<b class='flag-5'>AC</b>17-Q1六路缓冲<b class='flag-5'>器</b>数据手册

    边缘设备AI部署:编译器如何实现轻量化与高性能?

    电子发烧友网综合报道 AI编译器是专门为人工智能(AI)和机器学习(ML)模型设计的编译器,其核心目标是将高级的AI模型描述(如计算图、神经网络结构)转换为特定硬件平台(如CPU、GPU、FPGA
    的头像 发表于 07-06 05:49 7064次阅读

    5 GHz 802.11ac WLAN 前端模块 skyworksinc

    电子发烧友网为你提供()5 GHz 802.11ac WLAN 前端模块相关产品参数、数据手册,更有5 GHz 802.11ac WLAN 前端模块的引脚图、接线图、封装手册、中文资料
    发表于 06-18 18:33
    <b class='flag-5'>5</b> GHz 802.11<b class='flag-5'>ac</b> WLAN 前端模块 skyworksinc

    5 GHz,802.11ac 前端模块 skyworksinc

    电子发烧友网为你提供()5 GHz,802.11ac 前端模块相关产品参数、数据手册,更有5 GHz,802.11ac 前端模块的引脚图、接线图、封装手册、中文资料、英文资料,
    发表于 06-05 18:32
    <b class='flag-5'>5</b> GHz,802.11<b class='flag-5'>ac</b> 前端模块 skyworksinc

    5 GHz,802.11n/ac 前端模块 skyworksinc

    电子发烧友网为你提供()5 GHz,802.11n/ac 前端模块相关产品参数、数据手册,更有5 GHz,802.11n/ac 前端模块的引脚图、接线图、封装手册、中文资料、英文资料,
    发表于 06-05 18:29
    <b class='flag-5'>5</b> GHz,802.11n/<b class='flag-5'>ac</b> 前端模块 skyworksinc