0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MIMXRT1176代码放在ITCM里面运行,为什么执行速度并没有在外部Flash里面执行的快?

li1756686189 来源:嵌入式 MCU 2023-01-30 09:22 次阅读

cad08400-a028-11ed-bfe3-dac502259ad0.png

__RAMFUNC(RAM)void SysTick_Ticks(uint32_t value)
{
g_systickCounter=value;
int addcount= 0;

while (g_systickCounter != 0U)
{
addount++;
}

PRINTF(" addcount:%d ",addcount);

}

通过在IAR环境下添加__RAMFUNC,修改了函数SysTick_Ticks以在ITCM中运行,实际测得的运行速度变慢,系统计数累加的次数也减少了,代码在XIPFlash里面执行的更快一些。

-> 如果在应用程序中启用了I-Cache,那么无论该函数在ITCM或外部XPFlash中执行,系统计数值都应该几乎相同,但如果禁用I-Cache和FlexSPI预取缓冲区,性能会降低。如下是禁用代码。

    /* Disable L1 I-Cache*/
    SCB_DisableICache();
    /* Disable L1 D-Cache*/
    SCB_DisableDCache();
    /* Disable FlexSPI AHB read prefetch */
    FLEXSPI->AHBCR &= ~(FLEXSPI_AHBCR_PREFETCHEN_MASK | FLEXSPI_AHBCR_CACHABLEEN_MASK);

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1622

    浏览量

    147761
  • IAR
    IAR
    +关注

    关注

    5

    文章

    345

    浏览量

    36625
  • 函数
    +关注

    关注

    3

    文章

    4307

    浏览量

    62434
  • 代码
    +关注

    关注

    30

    文章

    4751

    浏览量

    68359
  • 应用程序
    +关注

    关注

    37

    文章

    3243

    浏览量

    57608

原文标题:MIMXRT1176 代码放在 ITCM里面运行,为什么执行速度并没有在外部Flash里面执行的快?

文章出处:【微信号:嵌入式 MCU,微信公众号:嵌入式 MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    程序结构的优化及执行速度

    对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一。一般是优化了代码的尺寸,就会带来
    发表于 07-25 11:36 988次阅读

    cyt4bb7cebq0代码放在flash执行会导致异常的原因?

    切换的代码放在RAM里运行么? 因为是要对flash进行操作的,代码放在
    发表于 05-27 08:21

    编译运行ESP8266_RTOS_SDK-master,发现程序并没有正确执行,为什么?

    ,eagle.irom0text.bin---->0x20000烧写到相应地址,程序运行后,发现并没有正确执行,请问是否烧写地址错误,或者是配置FLASH错误
    发表于 07-12 08:21

    代码执行速度

    怎样提高代码执行速度,请高手指点
    发表于 07-12 17:41

    如何同步PoS5LP上运行的硬件的速度代码执行速度

    如何同步PoS5LP上运行的硬件的速度代码执行速度?是否可以在不使用ISR的情况下进行同步?谢谢您。
    发表于 10-29 07:10

    是否有必要将rt-thread的内核代码都放到itcm运行

      在网上看到,都说将重要的代码,如中断向量,中断服务程序,放到rt1176itcm内存跑。  我现在有两个问题:  问题1:  是否有必要都将rt-thread的内核代码都放到
    发表于 07-11 11:30

    请问将ad执行代码放在这个函数中,调试的时候发现并没有执行是为什么?

    请问将ad执行代码放在这个函数中 调试的时候发现并没有执行是为什么
    发表于 10-17 07:20

    在rt-thread studio开发环境下如何指定内核代码放ITCM运行呢?

    在网上看到,都说将重要的代码,如中断向量,中断服务程序,放到rt1176itcm内存跑。我现在有两个问题:问题1是否有必要都将rt-thread的内核代码都放到
    发表于 01-09 15:35

    MIMXRT1176编程外部闪存时引导加载程序错误的原因?

    你好。我在项目中使用 MIMXRT1176DVMAA 微控制器。为了加载固件,我使用了类似于 MIMXRT1170-EVK 的方案。外部闪存 - IS25WP128,连接到 FlexSPI1 接口
    发表于 04-06 06:03

    是否可以用MIMXRT117H替换MIMXRT1176

    的。--------------------------可以在板上焊接 MIMXRT117H 而不是 MIMXRT1176 并在 CPU 上运行自定义应用程序吗?如果是:软件开发程序和电路板启动是否与
    发表于 04-18 07:03

    MIMXRT1176生成的.bin文件加载到MIMXRT1171处理器中,无法从MCUExpresso IDE加载代码怎么解决?

    大家好, 我试图将为 MIMXRT1176 生成的 .bin 文件加载到 MIMXRT1171 处理器中。但是我收到一个错误并且无法从 MCUExpresso IDE 加载代码。 谁可以帮我这个事?
    发表于 05-18 07:07

    AN-1322:ADuCM320代码执行速度

    AN-1322:ADuCM320代码执行速度
    发表于 03-21 04:05 6次下载
    AN-1322:ADuCM320<b class='flag-5'>代码</b><b class='flag-5'>执行速度</b>

    使用MIMXRT1176 MCU创建双核的C++应用项目工程

    MIMXRT1176, 1175,117H系列(工业级,消费级,汽车级)里面都具有双核模式Cortex M7和Cortex M4。芯片出厂默认是M7内核作为主核先启动,M4作为从核由主核激活启动
    的头像 发表于 10-27 09:38 2003次阅读

    MIMXRT1176支持8位列地址的SDRAM器件W9864G6

    MIMXRT1176的开发板配套的 SDRAM是W9825G6KH,对应的列地址是9位的。
    的头像 发表于 12-01 15:04 1986次阅读

    软件代码配置进入MIMXRT1176 ISP模式

    介绍通过软件代码IAP(In-Application Programming)进入MIMXRT1176的ISP模式,IMXRT1176 参考手册提到了IAP相关信息如下。
    的头像 发表于 01-30 09:24 1242次阅读