Keil(ARMCC)编译改为Cmake(GNU)编译

1. 环境介绍:

  1. 某款ARM-M4芯片(应该芯片通用)
  2. cmke+GNU+Ninja(CLion)

2. 必备:

  1. 芯片启动文件   startup_xxxx.s
  2. 链接文件    xxxx_flash.ld
  3. CMakeLists.txt

3. 具体修改步骤

第一步:观察启动文件

首先:使用任意打开工具打开芯片启动文件,观察启动文件是使用什么语法写的(ARM)/(GNU) 

以下为对照表

两种开发环境下的汇编代码,有较多不同的点,主要是符号及伪操作的不同。

ARM汇编的伪操作符

GNU汇编的伪操作符

INLCUDE

.include

NUM EQU 25

.equ NUM, 25

EXPORT

.global

IMPORT

.extern

DCD

.long

IF: DEF:

.ifdef

ELSE

.else

ENDIF

.endif

OR

|

SHL

<<

RN

.req

GBLA

.global

NUM SETA 16

.equ NUM , 16

MACRO

.macro

MEND

.endm

END

.end

AREA WORD, CODE, READONLY

.text

AREA BLOCK, DATE, READWRITE

.data

CODE32

.arm

CODE16

.thumb

LTORG

.ltorg

%

.fill

ENTRY

ENTRY:

ldr x0,=0xff

ldr x0,=0xff

 第二步:修改启动文件

如果你的启动文件是GNU汇编文件,恭喜你不需要修改启动文件,如果不出意外链接文件也不需要修改。


如果你的启动文件是ARM汇编文件,有几种解决方案:

第一种解决方案

如果用的芯片为大厂生产或者市面流行的芯片,可以通过网络或者寻找原厂进行找寻GNU版本的启动文件与链接文件。

例如STM32这款芯片的任意型号的芯片,在STM官网都有任意版本的启动与链接文件。

第二种解决方案

如果实在找不到,那没办法,就只能手动修改启动文件与链接文件,我们根据上面的对应表进行修改,

ARM版本

GNU版本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值