硬汉嵌入式论坛

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

[ThreadX全家桶] 请教下,guix 资源文件放到 qspi里面,开机后读入到 sdram 里面 ? 那读取时地址是如何确定的 ??

[复制链接]

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
发表于 2021-4-11 13:03:02 | 显示全部楼层 |阅读模式
本帖最后由 hpdell 于 2021-4-11 13:16 编辑

请教下,guix 资源文件放到 qspi里面,开机后读入到 sdram 里面 ? 那读取时地址是如何确定的 ??

具体描述如下:
1. 制作 *.flm 文件设置
   a.
    0.png

b.
1.png

在上面的设置后,不知道程序是如何吧 guix 的资源文件 写入到 qspi 里面的 ? ??

2. 用户 app 设置
    a.
    3.0.png

   b.
    3.png

   c.  这个就是上面产生的 *.flm 文件
    4.png

    d.
    5.png

    这个在初始化完成 sdram, qspi falsh 后,需要读取 qspi里面的数据放入到 sdram 的地址为:0xd0900000 的开始
   处时,这个读取 qspi 时地址是在哪里设置的 ? 貌似之前也没有看到在哪里设置过呀  ????

3. 目前按照上面的方法及步骤捣鼓后,下载程序到单片机里面运行,程序会卡死今天硬件内存错误什么的提示   bsp_init()
{

   ....
  QSPI_ReadBuffPoll((uint8_t* )0xd0900000,  0x???,  1024*1024*18);  // 预留 sdram 的整个空间大小 1024*1024*18

...
}

4. 是不是需要 先使用 guix studio 工具软件先把 guix 产生的 资源文件转成 *.bin 文件,再把这个 bin 通过 sd卡,或者 u盘的方式写入到 qspi 里面 ?? 最后才在 用户 程序里面使用
   QSPI_ReadBuffPoll((uint8_t* )0xd0900000,  0x91000000,  1024*1024*18);   这个函数读取出来放入sdram 指定的地址空间范围即可 ?

   假定写入到 qspi 的 地址是 0x91000000  开始









回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115812
QQ
发表于 2021-4-12 08:20:23 | 显示全部楼层
如果QSPI Flash采用这种方式的话,就不能使用类似内存映射方式做更新了,借鉴SPI Flash的方案实现即可
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2021-4-12 10:31:22 | 显示全部楼层
eric2013 发表于 2021-4-12 08:20
如果QSPI Flash采用这种方式的话,就不能使用类似内存映射方式做更新了,借鉴SPI Flash的方案实现即可

我目前使用的是 qspi flash 的,但是我没有使用内存映射模式, 我这个也是借鉴了 spi flash 的方法,貌似 spi flash 的 只有制作 *.flm 的历程,没有 用户 那边的例程参考 ??

参考历程 V7-065_SPI Flash的MDK下载算法制作
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115812
QQ
发表于 2021-4-12 12:22:23 | 显示全部楼层
hpdell 发表于 2021-4-12 10:31
我目前使用的是 qspi flash 的,但是我没有使用内存映射模式, 我这个也是借鉴了 spi flash 的方法,貌似 ...

也做了,参考第21章

http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2021-4-12 16:49:06 | 显示全部楼层
eric2013 发表于 2021-4-12 12:22
也做了,参考第21章

http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429&extra=page%3D1



你好,我按照第 21 章捣鼓,最后提示

0001.png

我的 guix studio v6.1.6.1  版本
这个错误,这个名称是我的 资源文件 头文件文件名

我使用的 是 ac6 会有这个错误提示 ???

我看你使用的 ac5 是没有这个提示的  




回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2021-4-12 16:52:49 | 显示全部楼层
本帖最后由 hpdell 于 2021-4-13 08:41 编辑



在用户 程序里面,貌似已经设置了 装载 外部 spi flash 的 到 sdram 的地址,怎么后面还需要再申请内存啊 ?、 这样的话,内存不是浪费了吗 ?

用户 程序里面已经定义了
0002.png


,这个申请内存,是不是申请后就不需要释放 ?? 貌似没有找到释放的函数 ? 还是说使用完后 guix 系统会自动释放 吗 ??
0003.png

对照着历程看,貌似发现了一点点头绪了,设置的 外部 sdram  0xd090 0000 地址貌似是跟 guix 的显存地址共用的 ,目前我这个地址貌似设置的是错的,是这么个意思吗 ???




回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115812
QQ
发表于 2021-4-13 08:59:35 | 显示全部楼层
hpdell 发表于 2021-4-12 16:49
你好,我按照第 21 章捣鼓,最后提示

这个错误不太清清楚,你用AC5编译后下载程序正常吗
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2021-4-13 09:28:33 | 显示全部楼层
本帖最后由 hpdell 于 2021-4-13 10:34 编辑
eric2013 发表于 2021-4-13 08:59
这个错误不太清清楚,你用AC5编译后下载程序正常吗

我目前还没有使用 ac5  的,等会我移植一下 ac5 的试试看
刚刚 使用 ac5 测试了一下,编译时总是提示错误

ac5-err.png

在网上搜索错误提示说是什么优化等级不能够使用 -03 , 但是我吧优化等级设置为 -0o 也不行 ???




回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2021-4-13 19:28:04 | 显示全部楼层
eric2013 发表于 2021-4-13 08:59
这个错误不太清清楚,你用AC5编译后下载程序正常吗

我重新又捣鼓了一个 ac5 的工程,貌似是可以使用的,目前只是 ac5 的工程 下载算法没有搞好,

d000.png


ac5 到这来就卡主了,

---------------------------------------------------------------------------
使用 ac6 根本就不行:
1.  --keep=stm32H7x_guix_chinese_main_resources.o   在 linker 里面增加这条提示错误:.\Obj\project.axf: Error: L6211E: Ambiguous section selection. Object stm32h7x_guix_chinese_main_resources.o contains more than one section.
2. --keep=stm32H7x_guix_chinese_main_resources.o    在 linker 里面取消这条提示警告:.\Obj\project.sct(19): warning: L6329W: Pattern stm32H7x_guix_chinese_main_resources.o(RO) only matches removed unused sections.
3. 难啦 ... ...
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2021-4-14 09:05:25 | 显示全部楼层
eric2013 发表于 2021-4-13 08:59
这个错误不太清清楚,你用AC5编译后下载程序正常吗

大神,你好我使用 ac5 捣鼓的 吧 资源文件放在 外部的 sdram 里面运行时,系统会进入内存中断错误,参考历程

参考历程
V7-2026_GUIX Font Theme and Picture Load From SPI Flash.7z
使用 ac5 按照  V7-2026_GUIX 这个例程捣鼓,目前可以正常编译,下载程序了,只是貌似程序运行到
    /* 加载字体 */
    gx_binres_language_table_load_ext(root_address, (GX_STRING ***)&language_table);   这句就会出现内存中断错误了 ?????

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
要是可以吧 guix stuido 生成的 资源文件 *.bin 写入到外部 spi/qspi flash 里面,再上电后读取出来放在指定的 sdram 区域,再去进行相关的调用就好了啊,
我现在可以吧 guix stuido 生成的 *.bin 文件使用 u盘写入到 qspi 里面,开机后也可以正常读出的,但是程序运行到如下图片的第 73 行时也是会从出现内存中断错


222.png



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115812
QQ
发表于 2021-4-15 08:49:05 | 显示全部楼层
hpdell 发表于 2021-4-14 09:05
大神,你好我使用 ac5 捣鼓的 吧 资源文件放在 外部的 sdram 里面运行时,系统会进入内存中断错误,参考 ...

优先用我程序里面的那个GUIX版本测试下
回复

使用道具 举报

681

主题

3487

回帖

5555

积分

论坛元老

积分
5555
 楼主| 发表于 2021-4-16 08:54:28 | 显示全部楼层
eric2013 发表于 2021-4-15 08:49
优先用我程序里面的那个GUIX版本测试下

你的那个 貌似在我的上面运行也不行啊,现在是运行到 启动
        gx_system_start(); 函数就会出现硬件内存错误了??
之前的 gx_binres_theme_load 这个函数现在可以正常执行了,

目前使用的 guix studio v6.1.6  , guix v6.1.6 现在版本绝对是一致的

之前移植 ac5 的没有显示 就是 这个 guix studio 版本与 guix 库 版本没有对应造成的,这个问题貌似在 ac6 上海没有发现哟
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115812
QQ
发表于 2021-4-16 11:13:33 | 显示全部楼层
hpdell 发表于 2021-4-16 08:54
你的那个 貌似在我的上面运行也不行啊,现在是运行到 启动
        gx_system_start(); 函数就会出现硬件内存 ...

后面我试试吧,后面升级到最新的6.1.6
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-20 12:53 , Processed in 0.286899 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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