惊爆内幕:老MDK也可以使用新编译器

【写在前面的话】


如果说“喜新厌旧”是人类的天性,那么嵌入式程序员一定是特例——他们尤其不喜欢更换自己用惯了的工具——拿IDE来说吧,相当一部分人仍然抱着老版本的MDK迟迟不愿意更新,这里的原因很多:

  • “忙的要死,哪有时间去尝试新版本”

  • “新版本有啥特别的么?能用树状结构管理工程文件了么?”

  • “新编译器稳定么?”

  • “有破解么?”

  • “啥?更新了?我怎么不知道?”

  • “Arm官网太慢了……”

  • “目前的代码是一坨屎山……MDK的版本没人敢动……出了事你负责?”

  • ……

即便如此,仍然有一部分“逆行者”特别喜欢尝试全新版本的MDK——如果问起原因:“uVision万年不更新为啥要对新版本的MDK如此执着”——其回答一定是:“我想尝试最新版本的编译器”。

除此以外,还有另外一批人,他们因为某些原因(比如License),被“束缚在了”某个版本的MDK上,即便如此,他们也有一些相当合理的需求:

  • 他们可能对当前MDK所使用的编译器版本并不满意,并迫切希望使用过去某个“久经考验”的编译器版本;

  • 他们可能希望尝试Arm官方最新发布的编译器(例如修复了某个困扰已久的bug),但通常只有新版本的MDK才会搭载最新的编译器版本;最要命的是,一般来说新版本的MDK总是要比新版本的编译器迟到好几个月!

怎么办呢?别急,今天就为大家曝光MDK一个鲜为人知的隐藏功能。

【正文】


最近,Arm发布了Arm Compiler 6的最新版本 6.15。而最新版本的MDK也不过支持到 6.14:

那么我们如何在当前MDK版本下使用最新的 Arm Compiler 6.15 呢?

第一步:

从Arm官方网站下载最新的 Arm Compiler 6。需要特别注意的是,一定要下载 32bit 的版本(默认情况下会下载64bit的版本)

【网页链接:https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6】

第二步:

将新的编译器安装到MDK所在的安装目录下:假设MDK被安装在"C:\Keil_v5",则将新的编译器安装到“C:\Keil_v5\Arm\”目录下,如果有所疑问,请看截图:

第三步:

打开MDK,并通过菜单 project->manage->project items 打开“manage project items” 窗口:

在窗口中,切换到“Folders/Extensions”选项卡,并单击下图中红色矩形框所标记的按钮“...”

在弹出的对话框中,单击“Add another ARM Compiler Verison to List...”

选中刚刚编译器所安装的目录:

单击OK。如果编译器被正确的识别,我们将会看到它被加入到 ARM Compiler Versions 列表中:

此时,单击 Close、并关闭MDK。重新启动MDK后,我们就可以在工程的配置选项中看到新加入的Arm编译器了:

在Code Generation->Arm Compiler 下来列表中选择新加入的编译器版本(比如这里的 6.15),立即试一下:

怎一个爽字了得!打完收工。

【结语】


其实,在这一过程中,有以下几点值得特别强调一下:

  • “下载 32bit 版本” 连同 “安装新编译器到 MDK 原有的安装目录下” 会“建议” 新的编译器使用 MDK 已有的License;

  • 你的MDK最少本身也要支持Arm Compiler 6;

  • 这些步骤仅对 Arm Compiler 有效;

  • 除了安装最新版本的编译器,你当然也可以用来安装老版本的Arm编译器,这里同时包括 Arm Compiler 5(也就是armcc)和 Arm Compiler 6(也就是armclang);

  • 仔细观察窗口“Manage Project Items” 窗口,你会发现,MDK实际上也支持 GCC 编译器——通过勾选 "Use GCC Compiler (GNU) for ARM projects",并正确配置GCC编译器所在的目录来启用GCC作为MDK的当前编译器。

一旦设置成功,你会发现,平时熟悉的工程选项也变了样:

1.第二届国产嵌入式操作系统技术与产业发展论坛即将在金秋十月杭州钱塘江畔召开

2.因为不满已有RTOS,所以作者写了它—ChibiOS!

3.操作系统产生死锁的原因和处理策略

4.你不知道的Linux使用技巧~

5.放弃 Windows 后 ,开源操作系统能成为主流桌面系统吗?

6.刚获得物理诺奖的数学家:现实是对完美数学真理的扭曲反应,人脑是最终量子计算机!

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. FX3 SDK main components. User firmware Libraries ThreadX RTOS (cyu3threadx.a) FX3 API Library (cyfxapi.a) Serial Peripheral API Library (cyu3lpp.a) Storage API Library (cyu3sport.a) MIPI CSI-2 API Library (cyu3mipicsi.a) Take the example firmware lowpowertest debug reversion for the test, need link following library. libcyu3lpp.a libcyfxapi.a libcyu3threadx libc.a libgcc.a -lcyu3lpp -lcyfxapi -lcyu3threadx -lc -lgcc While the search path will be: -L"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\ARM GCC\lib\gcc\arm-none-eabi\4.8.1" -L"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\ARM GCC\arm-none-eabi\lib" -L"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\fw_lib\1_3_3\fx3_debug" Link script will be fx3.ld for 512KB SRAM. From fx3 initialization block, could understand the fx3 entry point is CyU3PFirmwareEntry() function, so need manually assign entry point by follow linker command. --entry,CyU3PFirmwareEntry So Keil 4.74 IDE Linker page needs to configure as following pic. 2. Specific GNU cross compile tool path. Under tap project->Manage Project Items… -> Folders/Extensions Point to use GCC cross compile tools, please fill GNU-Tool-Prefix “arm-none-eabi-” while GNU-Tool Folder “C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\ARM GCC\” 3. C compile tap page configure. Predefined symbols __CYU3P_TX__=1. Include Path: ..\inc Without optimizations 4. Specific output file type. Under tap page Project->Options for target fx3->Output Need create object file with debug information. 5. After build elf file, execute user command. After precompiler, compiler and linker could get object file fx3.elf, need to convert to img file for download. So need execute user command: "C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\util\elf2img\elf2img.exe" -i fx3.elf -o fx3.img –v Summary After configuration, click Build button will show build output log like following pic.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值