写在前面

具体的环境搭建流程,这里不再多说,需要的可以参考下面的博客:

http://t.csdn.cn/rkCFO

下面是我在测试过程中遇到的一些问题:

启动、链接文件

启动文件

因为S32K144官网是有DFP包的,所以我们直接下载安装,然后新建S32K144工程,勾选动态库就可以了。

链接文件

进入DFP安装目录,这两个文件就是启动文件:

然后在keil配置里,选中它就好

拷贝MCAL静态文件的问题

按照惯例,自己用什么模块,就拷贝对应的文件夹就行

因为没有OS,所以咱们需要SchM来配合进行管理,但你会发现现在的MCAL包里没有这个文件夹。

因为现在这些东西都被放在了Rte_TS_T40D2M10I0R0中

可以全拷贝过去,也可以只拷贝自己需要的管理模块

不要急,拷贝完还要修改的

需要删掉所有extern语句,然后添加宏为空!!

具体如何修改如下:

SchM_Dio.h

#define SchM_Enter_Dio_DIO_EXCLUSIVE_AREA_00()#define SchM_Exit_Dio_DIO_EXCLUSIVE_AREA_00()#define SchM_Enter_Dio_DIO_EXCLUSIVE_AREA_01()#define SchM_Exit_Dio_DIO_EXCLUSIVE_AREA_01()#define RTE_STOP_SEC_CODE

SchM_Mcu.h

extern void SchM_Enter_Mcu_MCU_EXCLUSIVE_AREA_00(void);extern void SchM_Exit_Mcu_MCU_EXCLUSIVE_AREA_00(void);extern void SchM_Enter_Mcu_MCU_EXCLUSIVE_AREA_01(void);extern void SchM_Exit_Mcu_MCU_EXCLUSIVE_AREA_01(void);extern void SchM_Enter_Mcu_MCU_EXCLUSIVE_AREA_02(void);extern void SchM_Exit_Mcu_MCU_EXCLUSIVE_AREA_02(void);#define RTE_STOP_SEC_CODE#include "Rte_MemMap.h"

SchM_Port.h

#define SchM_Enter_Port_PORT_EXCLUSIVE_AREA_00()#define SchM_Exit_Port_PORT_EXCLUSIVE_AREA_00()#define SchM_Enter_Port_PORT_EXCLUSIVE_AREA_01()#define SchM_Exit_Port_PORT_EXCLUSIVE_AREA_01()#define SchM_Enter_Port_PORT_EXCLUSIVE_AREA_02()#define SchM_Exit_Port_PORT_EXCLUSIVE_AREA_02()#define SchM_Enter_Port_PORT_EXCLUSIVE_AREA_03()#define SchM_Exit_Port_PORT_EXCLUSIVE_AREA_03()#define SchM_Enter_Port_PORT_EXCLUSIVE_AREA_04()#define SchM_Exit_Port_PORT_EXCLUSIVE_AREA_04()#define SchM_Enter_Port_PORT_EXCLUSIVE_AREA_05()#define SchM_Exit_Port_PORT_EXCLUSIVE_AREA_05()#define SchM_Enter_Port_PORT_EXCLUSIVE_AREA_06()#define SchM_Exit_Port_PORT_EXCLUSIVE_AREA_06()#define SchM_Enter_Port_PORT_EXCLUSIVE_AREA_07()#define SchM_Exit_Port_PORT_EXCLUSIVE_AREA_07()#define SchM_Enter_Port_PORT_EXCLUSIVE_AREA_08()#define SchM_Exit_Port_PORT_EXCLUSIVE_AREA_08()#define RTE_STOP_SEC_CODE

main函数问题

在进行应用代码编写时一定要注意所引用名字的准确性,最好进入到生成的配置文件中查看一下:

编译缺少Det.h这个头文件的问题

进入到Port_Cfg.h中,找到PORT_DEV_ERROR_DETECT,关掉它换成STD_OFF

Compiler.h中编译器选择的问题

编译配置头文件,带来的报错。

这个头文件应该是用于编译器的一些选择性define:

看代码目前配置的是这个应该是Linaro交叉编译器,所以一开始我打算修改配置,但一直没有找到这个_LINARO_C_S32K14x_的位置。

找了好久在CompilerDefinition.h中找到,先定义的是__GNUC__

然后我又开始找__GNUC__

还是没找到在什么地方定义,然后我退而求其次,我直接改keil的编译器和它进行匹配。

编译成功了!!!