硬汉嵌入式论坛

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

[有问必答] V5的开发板,显示BMP,遇到问题了

[复制链接]

32

主题

97

回帖

193

积分

初级会员

积分
193
发表于 2015-12-24 21:35:18 | 显示全部楼层 |阅读模式
我是用 “V5-511d_BMP图片显示_uCOS-III+STemWin5.26+FatFS(含IAR和MDK)”  例程做的实验

这个例程显示的是480X270图片,没问题,我把图片改成800X480就死机了,

关键代码如下,我改了一点


void MainTask(void)
{   
    GUI_Init();
    while(1)
    {               
        _ShowBMP("1.bmp");   
        GUI_Delay(5050);
    }
}




static void _ShowBMP(const char * sFilename)
{
    int XSize, YSize;
    GUI_HMEM hMem;
    char *_acBuffer2;
    int i=100;

    /* 申请一块内存空间 并且将其清零 */
    hMem = GUI_ALLOC_AllocZero(1024*1024);
    /* 将申请到内存的句柄转换成指针类型 */
    _acBuffer2 = GUI_ALLOC_h2p(hMem);

   
    /* 打开文件 */        
    result = f_open(&file, sFilename, FA_OPEN_EXISTING | FA_READ | FA_OPEN_ALWAYS);
    if (result != FR_OK)
    {
        return;
    }   
    result = f_read(&file, _acBuffer2, file.fsize, &bw);
      if (result != FR_OK)
      {
        return;
      }   
    GUI_BMP_Draw(_acBuffer2, 0, 0);
    GUI_ALLOC_Free(hMem);
    f_close(&file);
}


我仿真的时候,是死在result = f_read(&file, _acBuffer2, file.fsize, &bw);这条语句上,请问这是怎么回事?
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
发表于 2015-12-25 08:40:49 | 显示全部楼层
有没有可能是 一个800*480的图片太大了,超过了 sram的最大地址范围了哦 ??
回复

使用道具 举报

32

主题

97

回帖

193

积分

初级会员

积分
193
 楼主| 发表于 2015-12-25 08:43:12 | 显示全部楼层

回 hpdell 的帖子

hpdell:有没有可能是 一个800*480的图片太大了,超过了 sram的最大地址范围了哦 ?? (2015-12-25 08:40) 
怎么测试超没超过他的范围?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2015-12-28 09:17:58 | 显示全部楼层
这里是申请的1MB的动态内存用,看下你实际的图片大小是多少。
回复

使用道具 举报

32

主题

97

回帖

193

积分

初级会员

积分
193
 楼主| 发表于 2015-12-28 20:14:55 | 显示全部楼层
bmp的图片是800X480,大小超过1M 了、怎么才能让bmp800X480的图片小于1M呢,这个能做到吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2015-12-29 10:08:01 | 显示全部楼层

回 beyondabcd 的帖子

beyondabcd:bmp的图片是800X480,大小超过1M 了、怎么才能让bmp800X480的图片小于1M呢,这个能做到吗? (2015-12-28 20:14) 
估计你用的是24位色,搞成16位色就可以了。
回复

使用道具 举报

32

主题

97

回帖

193

积分

初级会员

积分
193
 楼主| 发表于 2015-12-30 04:49:05 | 显示全部楼层

回 eric2013 的帖子

eric2013:估计你用的是24位色,搞成16位色就可以了。 (2015-12-29 10:08) 
对哈,我怎么没想到
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-13 06:14 , Processed in 0.038570 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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