硬汉嵌入式论坛

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

[ThreadX全家桶] 从SD卡加载GUIX Studio生产bin文件和SPI Flash有啥区别

[复制链接]

9

主题

51

回帖

78

积分

初级会员

积分
78
发表于 2023-12-7 18:28:25 | 显示全部楼层 |阅读模式
测试将guix studio 生产的bin文件放到SD卡中,然后通过Filex文件系统加载Bin文件到SDRAM中,无法显示,已经确定读取SD卡数据正常

求大佬解答
回复

使用道具 举报

9

主题

51

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2023-12-7 18:29:53 | 显示全部楼层
第一次发帖,图片没传上
1701944870329.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2023-12-8 10:00:52 | 显示全部楼层
没区别,内部Flash也C数组方式记录下,与从SD卡读取出来的比较下。
回复

使用道具 举报

9

主题

51

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2023-12-8 12:16:18 | 显示全部楼层
比较过了,没问题的,我发现与C语言的相比,bin文件解码出来的theme_table和C语言的区别很大
回复

使用道具 举报

9

主题

51

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2023-12-8 12:18:37 | 显示全部楼层
用bin文件的这个地方还会直接进入错误,如果用法没问题只能是生成的bin文件存在问题了
1702008919305.png
1702009066097.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2023-12-8 14:59:43 | 显示全部楼层
嵌入式菜鸟^_^ 发表于 2023-12-8 12:18
用bin文件的这个地方还会直接进入错误,如果用法没问题只能是生成的bin文件存在问题了

这样的话,还有一个地方可能有问题,使用和我们这个例子一样的GUIX版本和GUIX Studio,可以看看是否正常
回复

使用道具 举报

610

主题

3050

回帖

4900

积分

至尊会员

积分
4900
发表于 2023-12-8 15:45:39 | 显示全部楼层
嵌入式菜鸟^_^ 发表于 2023-12-8 12:18
用bin文件的这个地方还会直接进入错误,如果用法没问题只能是生成的bin文件存在问题了





试试这个方法是否有用,

这个方法是我目前在使用的,驱动是木有问题的, bin 文件是存放在 外部 spi falsh 里面的, 每次开机后读取 spi flash 里面的 bin 文件加载到 sdram 运行
目前运行稳定,速度超快

gx_app_sys_function.c (13.95 KB, 下载次数: 7)

gx_app_sys_function.h (190 Bytes, 下载次数: 1)



/*
*********************************************************************************************************
*        函 数 名: MainTask
*        功能说明: GUI主函数
*        形    参: 无
*        返 回 值: 无
*********************************************************************************************************
*/
void MainTask(void)
{

       
        /* 初始化配置 */
        guix_setup(0);       

       
        /* 创建窗口 */       

        gx_studio_named_widget_create("window_main",  (GX_WIDGET *)root, (GX_WIDGET **)&pScreenMain);

       
        /* 显示根窗口 */
        gx_widget_show(root);

        /* 启动GUIX */
        gx_system_start();       
       

}

回复

使用道具 举报

9

主题

51

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2023-12-8 15:48:23 | 显示全部楼层
发现应该不是数据问题,
1702021635572.png
回复

使用道具 举报

9

主题

51

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2023-12-8 15:54:11 | 显示全部楼层
hpdell 发表于 2023-12-8 15:45
试试这个方法是否有用,

这个方法是我目前在使用的,驱动是木有问题的, bin 文件是存放在 外 ...

我应该也是加载成功了的,问题是数据在SDRAM里面,就会运行出错,如果我直接把哪个文件下载到内部flash,就可以运行
回复

使用道具 举报

610

主题

3050

回帖

4900

积分

至尊会员

积分
4900
发表于 2023-12-8 16:33:27 | 显示全部楼层
嵌入式菜鸟^_^ 发表于 2023-12-8 15:54
我应该也是加载成功了的,问题是数据在SDRAM里面,就会运行出错,如果我直接把哪个文件下载到内部flash, ...

sdram 做好 mpu 保护 喔
回复

使用道具 举报

9

主题

51

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2023-12-8 17:01:13 | 显示全部楼层
eric2013 发表于 2023-12-8 10:00
没区别,内部Flash也C数组方式记录下,与从SD卡读取出来的比较下。

找到根本问题了,是display -> gx_display_color_table[color_id]没有四字节对齐的原因,但是存储在flash中,不4字节对齐是可以访问的,在SDRAM中,不四字节对齐访问程序就会崩溃,我用的是16位SDRAM
回复

使用道具 举报

9

主题

51

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2023-12-8 17:02:25 | 显示全部楼层
hpdell 发表于 2023-12-8 16:33
sdram 做好 mpu 保护 喔

是display -> gx_display_color_table[color_id]没有四字节对齐,SDRAM不能访问的原因,但是为啥flash也没有四字节对齐缺可以访问
回复

使用道具 举报

9

主题

51

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2023-12-8 17:27:13 | 显示全部楼层
hpdell 发表于 2023-12-8 16:33
sdram 做好 mpu 保护 喔

把SDRAM cache打开就可以了,谢谢大佬
回复

使用道具 举报

9

主题

51

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2023-12-8 17:48:58 | 显示全部楼层
eric2013 发表于 2023-12-8 14:59
这样的话,还有一个地方可能有问题,使用和我们这个例子一样的GUIX版本和GUIX Studio,可以看看是否正常

没有打开SDRAM cache导致的,谢谢大佬
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2023-12-10 00:37:12 | 显示全部楼层
嵌入式菜鸟^_^ 发表于 2023-12-8 17:48
没有打开SDRAM cache导致的,谢谢大佬

谢谢告知最终原因。
回复

使用道具 举报

3

主题

21

回帖

30

积分

新手上路

积分
30
发表于 2023-12-16 22:28:14 | 显示全部楼层
嵌入式菜鸟^_^ 发表于 2023-12-8 17:02
是display -> gx_display_color_table没有四字节对齐,SDRAM不能访问的原因,但是为啥flash也没有四字节 ...

楼主你好,我也是16位的SDRAM,型号是W9864G6KH。如果需要四字节对齐访问SDRAM的话需要怎么做?是在访问的地址前缀加上 __align(4) 么?我的芯片是F429ZI,也是遇到数据加载到SDRAM然后用流位图函数刷图片刷不出来情况
回复

使用道具 举报

9

主题

51

回帖

78

积分

初级会员

积分
78
 楼主| 发表于 2023-12-27 14:41:05 | 显示全部楼层
钱钱就是我 发表于 2023-12-16 22:28
楼主你好,我也是16位的SDRAM,型号是W9864G6KH。如果需要四字节对齐访问SDRAM的话需要怎么做?是在访问 ...

这个地方的地址Guix源代码解码出来就是没有对齐的,感觉是Guix源码问题,如果不能访问可能得看看去改改解码哪里。让结构体字节对齐。我当时没有打开SDRAM的Cache,在访问没有对齐地址的时候进入了Default_Handler(我没有写MemManage_Handler这些中断),F4应该是可以直接访问没有对齐地址的吧,对这个的理解,我也是参考硬汉哥的贴子:【烧脑技术贴】无法回避的字节对齐问题,从八个方向深入探讨(变量对齐,栈对齐,DMA对齐,结构体成对齐,Cache, RTOS双堆栈等) - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz! (armbbs.cn) 1703658995053.png
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 18:14 , Processed in 0.601031 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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