chenyuanjiyi 发表于 2021-6-4 15:33

关于AT32F403A芯片 emwin菜单刷新慢问题

本帖最后由 chenyuanjiyi 于 2021-6-4 16:07 编辑

这段时间移植项目,将ST的移植到AT上,发现这个问题,AHB=160M,XMC的配置,直接复制的例程中的配置,然后
XMC_NORSRAMTimingInitStruct.XMC_AdrHoldTime = 0;                //地址保持时间
      XMC_NORSRAMTimingInitStruct.XMC_AdrOpTime = 4;                        //地址建立时间
      XMC_NORSRAMTimingInitStruct.XMC_CLKPsc = 0;                        
      XMC_NORSRAMTimingInitStruct.XMC_DataOpTime = 8;                        //数据更新时间
      XMC_NORSRAMTimingInitStruct.XMC_DataStableTime = 0;                //数据保持时间
      XMC_NORSRAMTimingInitStruct.XMC_IntervalBetweenOP = 1;
      XMC_NORSRAMTimingInitStruct.XMC_Mode = XMC_Mode_A;修改了上面的配置,项目中添加了FReeRTOS 和emwin,刚开始以为是任务导致的,然后查看了下刷新界面的这个任务占CPU80%(总共有4个任务,刷新的任务优先级最低,将其他的任务中的执行代码屏蔽,基本只是定时进入任务),通过这个基本可以排除任务切换的影响,然后XMC这块的上面的配置和之前ST的FSMC是一样的
Timing.AddressSetupTime = 4;
Timing.AddressHoldTime = 0;
Timing.DataSetupTime = 8;
Timing.BusTurnAroundDuration = 1;
Timing.CLKDivision = 0;
Timing.DataLatency = 0;
Timing.AccessMode = FSMC_ACCESS_MODE_A;然后发现在AT上这个界面刷的比较慢肉眼可以看到刷新的痕迹
项目配置的是224K RAM,emwin的显存地址取的是224K的后面64K。
现在:ST和AT的AHB都是160M,并且FSMC和XMC的上面这些参数也是一样的,任务中大多数时间都是在刷界面的任务(空闲就会执行),现在就不明白还有什么因素会影响到界面的刷新了?
望指点! 谢谢



muyichuan2012 发表于 2021-6-4 17:54

初始化再增加如下函数试试
XMC_ExtTimingConfig(XMC_Bank1_NORSRAM1,0,8);
XMC_Bank1_NORSRAM1具体根据你的配置调整。

chenyuanjiyi 发表于 2021-6-5 09:39

试了下没啥区别还是刷的比较慢   这是关于XMC的配置 直接复制例程的

XMC_NORSRAMInitStruct.XMC_Bank = XMC_Bank1_NORSRAM1;
      XMC_NORSRAMInitStruct.XMC_BusType = XMC_BusType_16b;
      XMC_NORSRAMInitStruct.XMC_DataAdrMux = XMC_DataAdrMux_Disable;
      XMC_NORSRAMInitStruct.XMC_Dev = XMC_Dev_SRAM;
      XMC_NORSRAMInitStruct.XMC_EnableAsynWait = XMC_AsynWait_Disable;
      XMC_NORSRAMInitStruct.XMC_EnableBurstMode = XMC_BurstMode_Disable;
      XMC_NORSRAMInitStruct.XMC_EnableBurstModeSplit = XMC_BurstModeSplit_Disable;
      XMC_NORSRAMInitStruct.XMC_EnableWaitSignal = XMC_WaitSignal_Disable;
      XMC_NORSRAMInitStruct.XMC_EnableWrite = XMC_WriteOperation_Enable;
      XMC_NORSRAMInitStruct.XMC_EnableWriteTiming = XMC_WriteTiming_Enable;
      XMC_NORSRAMInitStruct.XMC_WaitSignalConfig = XMC_WaitSignalConfig_BeforeWaitState;
      XMC_NORSRAMInitStruct.XMC_WaitSignalLv = XMC_WaitSignalLv_Low;
      XMC_NORSRAMInitStruct.XMC_WriteBurstSyn = XMC_WriteBurstSyn_Disable;
      XMC_NORSRAMInitStruct.XMC_WTimingStruct = &XMC_NORSRAMTimingInitStruct;
      XMC_NORSRAMInitStruct.XMC_RWTimingStruct = &XMC_NORSRAMTimingInitStruct;
      XMC_NORSRAMInit(&XMC_NORSRAMInitStruct);

XMC_ExtTimingConfig(XMC_Bank1_NORSRAM1,0,8);
//*(uint32_t*)0xa0000220 &= 0xff00;

      /*!< Enable FSMC Bank1_SRAM Bank */
      XMC_NORSRAMCmd(XMC_Bank1_NORSRAM1, ENABLE);

muyichuan2012 发表于 2021-6-7 09:02

那估计是emwin哪里配置有所区别,毕竟你跑的是STF4xx,这个型号和AT32F4还有有区别的。
另外,可否留个邮箱,我把移植好的emwin demo发给你。

chenyuanjiyi 发表于 2021-6-7 09:20

本帖最后由 chenyuanjiyi 于 2021-6-7 09:22 编辑

muyichuan2012 发表于 2021-6-7 09:02
那估计是emwin哪里配置有所区别,毕竟你跑的是STF4xx,这个型号和AT32F4还有有区别的。
另外,可否留个邮箱 ...
1364465583@qq.com

[图片发不出来了..还想截个图发下个emwin例程的信息的]
emwin的例程吗?那个emwinV1.0.0,我看了那个手册(AT32emwin指导手册)的移植过程,没看到和我们之前的有啥区别{:cry:}

redone 发表于 2022-7-3 10:22

160m应该还可以吧

chenjun89 发表于 2022-7-3 11:10

XMC特性有什么不同?
页: [1]
查看完整版本: 关于AT32F403A芯片 emwin菜单刷新慢问题