RT1170 emwin刷新率和iap问题

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

RT1170 emwin刷新率和iap问题

999 次查看
XuT
Contributor I

官网的2.9.1的sdk,RT1170跑emwin,编译器是keil.发现几个没运行到的代码也会影响emwin的frambuf的切换频率(慢的时候只有30hz,快的和屏幕刷新率一样60hz,实际效果也能感觉出来)
这2条语句是在跳转到app时候,关闭SCB_DisableDCache和SCB_DisableICache()。实际上这2个语句并不会运行,但是加了画面刷新就明显慢了。
if(((*(uint32_t*)(FLASH_APP_CODE_ADD+4))&0xFF000000) == 0x30000000)
{
//这里不会运行
                SCB->VTOR = 0;
                __ISB();
                __DSB();
                SCB->VTOR = (uint32_t )FLASH_APP_CODE_ADD;
                SCB_DisableDCache();//加了这2句,不加while(1)会变慢
                SCB_DisableICache();
                appMain = (iapFun)*(uint32_t*)(FLASH_APP_CODE_ADD+4);
                __set_MSP(FLASH_APP_CODE_ADD);
                __set_PSP(FLASH_APP_CODE_ADD);
                appMain();
                while(1);//加了这句,再加SCB_DisableDCache();SCB_DisableICache();也不会变慢。实际这句也不会运行。
}

但是如果不加SCB_DisableDCache();和SCB_DisableICache(); app和boot 不能把rw ro 段设置到同一个地址。
还有时钟设置函数BOARD_BootClockRUN里面的设置也会影响运行的速度,如果app里面加了下面这些也会变慢,这个SKIP_SEMC_INIT
宏是定义在#include "board.h"里面的。官网的2.9.1的sdk并在clock_config.c里面包含这个头文件,导致这个SKIP_SEMC_INIT是一直是未定义的。
#ifndef SKIP_SEMC_INIT
    rootCfg.mux = kCLOCK_SEMC_ClockRoot_MuxSysPll2Pfd1;
    rootCfg.div = 3;
    CLOCK_SetRootClock(kCLOCK_Root_Semc, &rootCfg);
#endif

#if defined(XIP_BOOT_HEADER_ENABLE) && (XIP_BOOT_HEADER_ENABLE == 1)
#if defined(XIP_BOOT_HEADER_DCD_ENABLE) && (XIP_BOOT_HEADER_DCD_ENABLE == 1)
    UpdateSemcClock();
#endif
#endif

而且下一条函数UpdateSemcClock里面CCM->CLOCK_ROOT[kCLOCK_Root_Semc].CONTROL = 0x602;设置的寄存器也是和上面CLOCK_SetRootClock一样的。为什么还有加这个?还有为什么要特意吧UpdateSemcClock定义在内部itcm?

0 项奖励
回复
1 回复

981 次查看
jeremyzhou
NXP Employee
NXP Employee

Hi,

非常感谢使用NXP产品,很高兴为你提供技术支持!

请参考与非网的问题:https://www.nxpic.org.cn/module/forum/thread-622488-1-1.html

Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 项奖励
回复