OpenEdv-开源电子网

标题: emwin使用xbf字体外置到SPI Flash无法实现 [打印本页]

作者: Rampage甄姬    时间: 2017-10-12 15:49
标题: emwin使用xbf字体外置到SPI Flash无法实现
问题前段时间问了,结果帖子沉了。。。。。。。。。。。。。。。。
最近项目来时遇到问题。特来论坛找大牛指点迷津。

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

作者: Rampage甄姬    时间: 2017-10-12 15:49
正点原子 发表于 2017-10-15 01:09
那应该是你字体读取出来出问题了吧

是的,原来是程序初始化的时候,把字库结构破坏了。因为一开始使用的是串口烧spi的,后来用了烧录器。忘记注销串口那里了。现在可以了。
作者: Rampage甄姬    时间: 2017-10-12 15:50
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;
}
回调函数做了越界判断,还是卡死
作者: 正点原子    时间: 2017-10-13 00:35
仿真看看,跟踪看具体哪一行代码,出问题,根据数据判断
作者: Rampage甄姬    时间: 2017-10-13 10:20
正点原子 发表于 2017-10-13 00:35
仿真看看,跟踪看具体哪一行代码,出问题,根据数据判断

原子哥,我断点是在WM_Exec();死机的,emwin是闭源的。所以我没法再追进去了。但是我知道,是加了这个       
                        hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
                        BUTTON_SetFont(hItem, &XBF_Font16);
就是那个外置字体
作者: 正点原子    时间: 2017-10-15 01:09
Rampage甄姬 发表于 2017-10-13 10:20
原子哥,我断点是在WM_Exec();死机的,emwin是闭源的。所以我没法再追进去了。但是我知道,是加了这个       
...

那应该是你字体读取出来出问题了吧




欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/) Powered by Discuz! X3.4