一、编译代码:
1-1、在我们前面的章节中,已经配置好了MCAL的MCU 、 Port 、 Dio ,3个模块 ,后面我们就可以进行demo代码的工程进行编译了,但是在编译的过程中我们会遇到很多问题,我们只能逐一的解决掉编译问题,然后进行调试。在这个阶段我们还是处于裸机奔跑的阶段。
1-2、我们的目的就是消灭所有的错误。同时我们还需要配置如 下图:
1-3、如果编译的时候缺少SchM_XX文件,可以到MCAL的安装目录中去查找文件,然后拷贝到编译的项目工程相应的目录,其实创建第一个工程还是比较麻烦的,等到全部创建好了以后,再用到其他项目的时候就会方便很多了。
上图中我在编译的时候就出现个文件缺失的问题,所以需要我们再次寻找文件,这几个文件就是我们需要的,它在截图的相对应的路径内。
再次编译的时候我们还会遇到另外一个问题,就是MCL模块,它是用来配置DMA的模块,如果不添加就不会编译通过的。我们在后续的章节会讲解到的。
二、调试代码:
2-1、在代码调试之前我们简单的讲解下S32K144的启动过程,首先我们找到startup_S32K144.S 文件,这个就是启动代码的文件,我们先分析该文件,然后再分析ld文件,也就是连接文件,我们的代码编译后就会进行链接处理,就是通过配置链接文件实现程序的分布的。
在startup_S32K144.S 文件中定义了中断向量表,
这里定义了S32K14X系列的中断向量表,包含2部分 ,前半部分是M4核的中断,后面是外设部分中断,ARM的M4内核启动时候首先执行的是0地址+4的地址,也就是Rest_Handler这个函数,那么这个函数是如何在4的地址上呢,接下来我们就看LD文件,请大家记住__isr_vector这个标签,
上面就是ld文件的部分截图,也就是S32K14X的内存分区,首先就是中断向量表的分区,开始地址就是0x00000000 长度是0x400,在这个地址区间就是放的中断向量表。
后面我们会陆续的讲解ld文件和启动代码的,今天就讲这么多。
等我们拿到开发板进行调试。
感谢大家的支持。。。。。。。。。。。