OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3897|回复: 5

emwin使用xbf字体外置到SPI Flash无法实现

[复制链接]

24

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2017-9-18
在线时间
40 小时
发表于 2017-10-12 15:49:57 | 显示全部楼层 |阅读模式
10金钱
问题前段时间问了,结果帖子沉了。。。。。。。。。。。。。。。。
最近项目来时遇到问题。特来论坛找大牛指点迷津。

项目想用中文字体,但是字体又比较大,使用gui是stemwin5.22. 主要的想法是将生成的xbf字库放置到spiflash中,然后再使用。字库我测试的时候,使用串口接受写入flash的,字体能正常显示之后,会使用烧录器来烧录。但是我将字体写进去之后,按照一些历程来调用却发现始终没办法调用出来。一调用就卡死。

最佳答案

查看完整内容[请看2#楼]

是的,原来是程序初始化的时候,把字库结构破坏了。因为一开始使用的是串口烧spi的,后来用了烧录器。忘记注销串口那里了。现在可以了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

24

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2017-9-18
在线时间
40 小时
 楼主| 发表于 2017-10-12 15:49:58 | 显示全部楼层
正点原子 发表于 2017-10-15 01:09
那应该是你字体读取出来出问题了吧

是的,原来是程序初始化的时候,把字库结构破坏了。因为一开始使用的是串口烧spi的,后来用了烧录器。忘记注销串口那里了。现在可以了。
回复

使用道具 举报

24

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2017-9-18
在线时间
40 小时
 楼主| 发表于 2017-10-12 15:50:59 | 显示全部楼层
static int _cbGetData16(U32 Offset, U16 NumBytes, void * pVoid, void * pBuffer)
{  
    // sf_ReadBuffer(pBuffer, XBF_Font16BaseAdd + Offset, NumBytes);
                 if((pBuffer == NULL)||(NumBytes == 0) )
                 {
                         return 1;
                 }
                // NumBytes =  0x0000ED58;
           Nor_Flash_Read_Data( XBF_Font16BaseAdd + Offset, NumBytes, pBuffer);
     return 0;
}
回调函数做了越界判断,还是卡死
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-10-13 00:35:11 | 显示全部楼层
仿真看看,跟踪看具体哪一行代码,出问题,根据数据判断
回复

使用道具 举报

24

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2017-9-18
在线时间
40 小时
 楼主| 发表于 2017-10-13 10:20:26 | 显示全部楼层
正点原子 发表于 2017-10-13 00:35
仿真看看,跟踪看具体哪一行代码,出问题,根据数据判断

原子哥,我断点是在WM_Exec();死机的,emwin是闭源的。所以我没法再追进去了。但是我知道,是加了这个       
                        hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
                        BUTTON_SetFont(hItem, &XBF_Font16);
就是那个外置字体
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-10-15 01:09:15 | 显示全部楼层
Rampage甄姬 发表于 2017-10-13 10:20
原子哥,我断点是在WM_Exec();死机的,emwin是闭源的。所以我没法再追进去了。但是我知道,是加了这个       
...

那应该是你字体读取出来出问题了吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 01:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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