S32K144移植S32DS工程到KEIL MDK(史上最详细)

文章目录

  • 准备
  • 创建Keil工程
  • 导出源码
  • 进行移植

准备

需要准备以下三个工具

  • Keil 5高版本MDK

下载地址:https://www.keil.com/demo/eval/arm.htm

  • S32DS

下载地址:https://nxp.flexnetoperations.com/control/frse/download?agree=Accept&element=9671497

  • S32K Keil_pack包

下载地址:https://keilpack.azureedge.net/pack/Keil.S32_SDK_DFP.1.2.0.pack

Keil和S32DS两个开发环境要安装好,移植S32K144工程需要利用S32DS导出工程文件复制到Keil中使用,需要安装Keil的pack包,让Keil支持S32K144芯片。

创建Keil工程

打开Keil,点击Project->New uVision Project,创建一个新的Keil工程
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第1张图片
输入你的工程名字,比如S32K144_Project,点击保存
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第2张图片
这时会弹窗让你选择工程的芯片,这里选择S32K144,点击OK。如果弹窗没出来,也可点击3,选择Device来重新打开芯片选择界面。

S32K144移植S32DS工程到KEIL MDK(史上最详细)_第3张图片

下一个弹窗我们勾选COREStartup两项,现在的S32DS例程选择这两个功能即可。如果没有弹窗,也可以点击4重新打开选择界面
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第4张图片

这时Keil的工程创建完毕,下一步通过S32DS导出所需工程的源码。

导出源码

打开S32DS,File->New->S32DS Project from Example创建一个源码工程。
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第5张图片

这里一定要选择最前面的S32DS Example Projects里面的S32K144的例程,这里我选择的是最简单的hello_interrupt_s32k144例程,点击Finish
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第6张图片

这时例程创建出来了,现在将例程工程文件导出到指定的路径。鼠标指向hello_interrupts_s32k144工程名鼠标右键,点击Export
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第7张图片
选择File System,点击Next
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第8张图片

To directory是工程导出的路径,点击Browse可以修改,这里我导出到桌面,点击Finish即导出成功。

S32K144移植S32DS工程到KEIL MDK(史上最详细)_第9张图片

进行移植

找到导出的工程,将src文件夹中的所有源文件复制到刚刚新建的Keil工程下,我重新创建了一个SRC文件夹统一放在了里面。

不同的工程这里的源文件数量不同,全部复制即可。

S32K144移植S32DS工程到KEIL MDK(史上最详细)_第10张图片
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第11张图片

点击13,把刚才复制的源文件包含进来,点击OK,现在已经移植成功,但是编译会有一些错误,解决办法如下。
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第12张图片

编译一下,出现找不到S32K144.h的错误。
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第13张图片

打开Device中的system_S32K144.c下的S32K144.h,鼠标右键,Copy Full Path复制头文件的所在路径。
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第14张图片

点击16,选择C/C++,点击Include Paths,将刚刚复制的路径粘贴进去,将后缀S32K144.h删除掉,点击OK
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第15张图片

再重新编译,下图代码出现下图的错误。
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第16张图片

这里将代码改成如下即可。

这里的错误可能有可能没有,看Keil的ARM编译器版本,版本比较低就会出现错误,不支持括号里面直接输入二进制数值,需要改成十进制。

S32K144移植S32DS工程到KEIL MDK(史上最详细)_第17张图片
再重新编译,会发现还是有错误。这里是因为没有使用分散加载文件.sct
123

点击143,选择Linker,取消勾选Use Memory Layout from Target Debug,选择RTE文件夹下的S32K144_64_flash_AC6.sct,点击Edit之后,点击OK
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第18张图片

这里需要修改S32K144_64_flash_AC6.sct中第一行的代码,不然还是会编译错误,刚才点击Edit已经打开了该文件,将下面的代码替换第一行代码,保存

#! armcc -E

S32K144移植S32DS工程到KEIL MDK(史上最详细)_第19张图片

再重新编译,发现编译成功。
S32K144移植S32DS工程到KEIL MDK(史上最详细)_第20张图片

你可能感兴趣的:(专业)