S32K312 ITCM代码使用示例

        在上一篇文章中,介绍了S32K312 DTCM在代码中使用示例,具体可以参考配置文件的编辑,本文主要介绍ITCM的代码使用和调试。ITCM是将功能代码放到了高速缓存中,一方面频繁调用的函数可以快速访问,提高效率;另一方面比如操作S32K312的FLASH代码区的时候,可以实现擦除和写入。

        测试代码如下:

/* Including necessary configuration files. */
#include "Mcal.h"

volatile int exit_code = 0;
/* User includes */

void TestDelay(uint32 delay);
void __attribute__ ((section(".itcm0_code"))) Test_function_in_ITCM(void);


void TestDelay(uint32 delay)
{
    static volatile uint32 DelayTimer = 0;
    while(DelayTimer

        验证Test_function_in_ITCM()这个方法,是运行在ITCM区中,debug查看函数方法的地址,

S32K312 ITCM代码使用示例_第1张图片

        方法的地址是0x00,与ITCM的地址范围匹配,

S32K312 ITCM代码使用示例_第2张图片

        再查看local_func()函数方法的地址,正常没有指定ITCM区的方法,函数地址应该在FLASH中

S32K312 ITCM代码使用示例_第3张图片

        local_func()函数地址在0x40166c的FLASH区中,满足在FLASH区中

S32K312 ITCM代码使用示例_第4张图片

        到此,就可以成功使用ITCM的功能了。

你可能感兴趣的:(S32K312,ITCM,单片机)