硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5078|回复: 13
收起左侧

[ThreadX全家桶] 请问下,大神,guix 双缓冲的 历程及教程大概什么时候发布啊 ?

[复制链接]

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
发表于 2020-11-30 09:11:56 | 显示全部楼层 |阅读模式
请问下,大神,guix 双缓冲的 历程及教程大概什么时候发布啊 ?

现在 吧 guix studio 产生的资源文件放在 外部 qspi flash 里面运行,貌似有时会出现 撕裂的 现象,之前是放到 单片机内部 flash 里面基本还没有发现这个现象


回复

使用道具 举报

2

主题

31

回帖

37

积分

新手上路

积分
37
发表于 2020-11-30 11:45:29 | 显示全部楼层
顶一个😄
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-11-30 13:11:10 | 显示全部楼层
我的放在QSPI Flash没问题啊,你是不是没有用内存映射模式

双缓冲方式,会发布的,近期就发布给大家,
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2020-11-30 14:19:14 | 显示全部楼层
eric2013 发表于 2020-11-30 13:11
我的放在QSPI Flash没问题啊,你是不是没有用内存映射模式

双缓冲方式,会发布的,近期就发布给大家,

我使用了内存映射模式的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-12-1 16:37:20 | 显示全部楼层
hpdell 发表于 2020-11-30 14:19
我使用了内存映射模式的

那没问题啊,你的界面效果是什么样的。

QSPI Flash的Cache开了没
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2020-12-1 16:44:34 | 显示全部楼层
eric2013 发表于 2020-12-1 16:37
那没问题啊,你的界面效果是什么样的。

QSPI Flash的Cache开了没

        /* 配置 QSPI Flash 的属性为Write through, read allocate,no write allocate */
        MPU_InitStruct.Enable           = MPU_REGION_ENABLE;         //使能该保护区域
        MPU_InitStruct.BaseAddress      = 0x90000000;                //设置基址
        MPU_InitStruct.Size             = MPU_REGION_SIZE_64MB;   //设置保护区域大小
        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;    //设置访问权限
        MPU_InitStruct.IsBufferable     = MPU_ACCESS_NOT_BUFFERABLE; //禁止缓冲
        MPU_InitStruct.IsCacheable      = MPU_ACCESS_NOT_CACHEABLE;  //禁止cache
        MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;  //禁止共用
        MPU_InitStruct.Number           = MPU_REGION_NUMBER9;        //设置保护区域
        MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL0;            //设置类型扩展域为level1
        MPU_InitStruct.SubRegionDisable = 0x00;                      //禁止子区域
        MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;  //允许指令访问(允许读取指令)
        HAL_MPU_ConfigRegion(&MPU_InitStruct);

这个配置貌似是没有开启吧

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-12-2 11:06:12 | 显示全部楼层
hpdell 发表于 2020-12-1 16:44
/* 配置 QSPI Flash 的属性为Write through, read allocate,no write allocate */
        MPU_InitStruct.En ...

必须得开Cache,直接开最高性能

使用STM32H7的AXI SRAM,SRAM1到SRAM4对应的Cache最高性能和最低性能配置
http://www.armbbs.cn/forum.php?m ... id=99322&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2020-12-2 11:12:00 | 显示全部楼层
eric2013 发表于 2020-12-2 11:06
必须得开Cahche,直接开最高性能

使用STM32H7的AXI SRAM,SRAM1到SRAM4对应的Cache最高性能和最低性能 ...

内存映射模式,开启了也没有什么用吧,因为使用的是查询法啊
回复

使用道具 举报

4

主题

1445

回帖

1457

积分

至尊会员

积分
1457
发表于 2020-12-2 11:32:17 | 显示全部楼层
hpdell 发表于 2020-12-1 16:44
/* 配置 QSPI Flash 的属性为Write through, read allocate,no write allocate */
        MPU_InitStruct.En ...

貌似是没开。

        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
        MPU_InitStruct.IsBufferable     = MPU_ACCESS_BUFFERABLE;
        MPU_InitStruct.IsCacheable      = MPU_ACCESS_CACHEABLE;
        MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2020-12-2 12:02:33 | 显示全部楼层
morning_enr6U 发表于 2020-12-2 11:32
貌似是没开。

        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;

你好,我的意思是,我目前 qspi flash 使用的是内存映射模式,没有使用到 dma 模式,那这个 mpu 配置 对于查询模式来说的话,应该也是没有什么意义的吧 ?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-12-2 12:25:44 | 显示全部楼层
hpdell 发表于 2020-12-2 12:02
你好,我的意思是,我目前 qspi flash 使用的是内存映射模式,没有使用到 dma 模式,那这个 mpu 配置 对 ...

开到最高性能,看看效果如何
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2020-12-6 17:56:16 | 显示全部楼层
本帖最后由 hpdell 于 2020-12-6 18:40 编辑
eric2013 发表于 2020-12-2 12:25
开到最高性能,看看效果如何

需要把下载算法开启
1.
        /* 配置 QSPI Flash 的属性为Write through, read allocate,no write allocate */
        MPU_InitStruct.Enable           = MPU_REGION_ENABLE;         //使能该保护区域
        MPU_InitStruct.BaseAddress      = 0x90000000;                //设置基址
        MPU_InitStruct.Size             = MPU_REGION_SIZE_64MB;   //设置保护区域大小
        MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;    //设置访问权限
        MPU_InitStruct.IsBufferable     = MPU_ACCESS_BUFFERABLE; //允许缓冲
        MPU_InitStruct.IsCacheable      = MPU_ACCESS_CACHEABLE;  //禁止cache, 不能用MPU_ACCESS_CACHEABLE;会出现2次CS、WE信号
        MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;  //禁止共用
        
        MPU_InitStruct.Number           = MPU_REGION_NUMBER9;        //设置保护区域,建议这个保护区域不要随意修改,因为下载算法里面使用的也是这个区域
        MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL0;            //设置类型扩展域为level0,建议这个保护区域不要随意修改,因为下载算法里面使用的也是这个区域
        
        MPU_InitStruct.SubRegionDisable = 0x00;                      //禁止子区域
        MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;  //允许指令访问(允许读取指令)
        HAL_MPU_ConfigRegion(&MPU_InitStruct);


2.
        /* 使能 I-Cache */
        SCB_EnableICache();

        /* 使能 D-Cache */
        SCB_EnableDCache();


3. 把mdk ac5 开启最高优化,再勾选 上 One ELF Section per Function

4. 再次下载 app 程序运行,貌似是快了一点了喔
5. 运行速度变快了,目前不知道是 是不是因为下载算法里面的优化等级提高了影响到app 的运行速度还是 mpu 设置后影响 app 里面的运行速度,反正现在总体的运行速度是提高了一些   


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115804
QQ
发表于 2020-12-7 06:51:02 | 显示全部楼层
hpdell 发表于 2020-12-6 17:56
需要把下载算法开启
1.
        /* 配置 QSPI Flash 的属性为Write through, read allocate,no write ...

后面用一些复杂的程序测测。
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2020-12-7 08:58:29 | 显示全部楼层
eric2013 发表于 2020-12-7 06:51
后面用一些复杂的程序测测。

我现在是吧 资源文件 放到外部 qspi flash 里面的,里面包含了 2个 全字库(一个 16*16, 一个 24*24),再就是一些 图片,按钮之类的文件了,现在显示基本都是全中文显示了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-19 18:39 , Processed in 0.273918 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表