野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9188|回复: 16

祼跑字体的问题

[复制链接]
发表于 2016-11-16 18:35:07 | 显示全部楼层 |阅读模式
共准备了5种字体,16,24,32,40,48
分别上载到板子里,怎么显示都没问题
但只要全上载到板子里,有的字就显示不了或显示乱
先后试过几种保存的方法:
1:去掉ERWIN的字体,修改了上传字体文件保存的扇区
2:全部原来全部扇区布局,改用自己的
3:只占用FATFS文件系统的扇区,其它不变

修改的时候,保持只占用前16M,后16M不动,但都存在问题,请大家给出出主意,指点一下,谢谢!
回复

使用道具 举报

 楼主| 发表于 2016-11-16 18:39:23 | 显示全部楼层
字体数少的时候,怎么放都没有问题

上载的时候的确成功了,但显示取字模时取出的点阵数据就不对,奇怪

回复 支持 反对

使用道具 举报

发表于 2016-11-16 18:41:58 | 显示全部楼层
lylrabbit 发表于 2016-11-16 18:39
字体数少的时候,怎么放都没有问题

上载的时候的确成功了,但显示取字模时取出的点阵数据就不对,奇怪

不知道你是怎么存储的,如果是不用文件系统,要注意计算好各种字体的空间,不要重叠了,可以参考我们的刷FLASH程序,多少个都没问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 18:42:32 | 显示全部楼层
上载字体的程序是在《刷外部FLASH程序(如何恢复出厂内容)》基础上修改的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 18:46:20 | 显示全部楼层
  [AUX_WIFI_PARA2] =
  {
    .filename           =   "",
    .description        =   "WIFIÄ£¿é²ÎÊý2",
    .start_addr         =   1348*4096 ,
    .length             =   1*4096,
    .burn_option      =  DO_NOT_UPDATE,
  },
  
  [AUX_GB2312_H2424] =
  {
    .filename           =   "0:/srcdata/GB2312_H2424.FON",
    .description        =   "Âã»úÖÐÎÄ×Ö¿â24",
    .start_addr         =   1360*4096 ,
    .length             =   144*4096,
    .burn_option      =  UPDATE,      
  },
  
  [AUX_GB2312_H1616] =
  {
    .filename           =   "0:/srcdata/GB2312_H1616.FON",
    .description        =   "Âã»úÖÐÎÄ×Ö¿â16",
    .start_addr         =   1505*4096 ,
    .length             =   70*4096,
    .burn_option      =  UPDATE,      
  },
  
  [AUX_GB2312_H3232] =
  {
    .filename           =   "0:/srcdata/GB2312_H3232.FON",
    .description        =   "Âã»úÖÐÎÄ×Ö¿â32",
    .start_addr         =   1576*4096 ,
    .length             =   277*4096,
    .burn_option      =  UPDATE,      
  },
  
  [AUX_GB2312_H4040] =
  {
    .filename           =   "0:/srcdata/GB2312_H4040.FON",
    .description        =   "Âã»úÖÐÎÄ×Ö¿â40",
    .start_addr         =   1854*4096 ,
    .length             =   331*4096,
    .burn_option      =  UPDATE,      
  },
  
  [AUX_GB2312_H4848] =
  {
    .filename           =   "0:/srcdata/GB2312_H4848.FON",
    .description        =   "Âã»úÖÐÎÄ×Ö¿â48",
    .start_addr         =   2186*4096 ,
    .length             =   487*4096,
    .burn_option      =  UPDATE,      
  },
  
  [AUX_FILE_SYSTEM] =
  {
    .filename           =   "",
    .description        =   "FATFSÎļþϵͳ",
    .start_addr         =   2674*4096 ,
    .length             =   1442*4096,
    .burn_option      =  DO_NOT_UPDATE,
  }
现在的布局是这样的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 18:48:36 | 显示全部楼层
flyleaf 发表于 2016-11-16 18:41
不知道你是怎么存储的,如果是不用文件系统,要注意计算好各种字体的空间,不要重叠了,可以参考我们的刷 ...

重叠是没有的,布局在下面二楼,请帮忙看下,WIFI前面的和例程一样,就没全贴
回复 支持 反对

使用道具 举报

发表于 2016-11-16 19:33:15 | 显示全部楼层
lylrabbit 发表于 2016-11-16 18:48
重叠是没有的,布局在下面二楼,请帮忙看下,WIFI前面的和例程一样,就没全贴

显示字符时获取字体数据的代码地址有没有改成对应的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 20:45:18 | 显示全部楼层
flyleaf 发表于 2016-11-16 19:33
显示字符时获取字体数据的代码地址有没有改成对应的?

改过了的
只要改变字体的保存地址,屏上字的显示就会不全,和显示部分代码没关系
#define GBKCODE_START_ADDRESS16   1505*4096
#define GBKCODE_START_ADDRESS24   1360*4096        //4300*4096
#define GBKCODE_START_ADDRESS32   1576*4096
#define GBKCODE_START_ADDRESS40   1854*4096
#define GBKCODE_START_ADDRESS48   2186*4096
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 20:53:09 | 显示全部楼层
chFONT CnCharCodes[5] = {{GBKCODE_START_ADDRESS16,16,16},{GBKCODE_START_ADDRESS24,24,24},{GBKCODE_START_ADDRESS32,32,32},{GBKCODE_START_ADDRESS40,40,40},{GBKCODE_START_ADDRESS48,48,48}};//
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 21:05:27 | 显示全部楼层
哎,没法传图片,否则上个图可能感觉更直观一些
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 21:16:03 | 显示全部楼层
从昨天开始捣鼓这个问题,到现在快没脾气了

奇怪的是为啥烧写时校验是正确的呢,看代码里对状态的检查也都有,还查了存储芯片的手册,看着好象没问题的样子,哎

回复 支持 反对

使用道具 举报

发表于 2016-11-16 21:32:47 | 显示全部楼层
lylrabbit 发表于 2016-11-16 21:16
从昨天开始捣鼓这个问题,到现在快没脾气了

奇怪的是为啥烧写时校验是正确的呢,看代码里对状态的检查 ...

校验是独立校验的,如果后面覆盖了就没法校验出错误了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 22:24:08 | 显示全部楼层
可能我表达的意思不够准确,再试一次
存储的空间是经过计算了的,是不会覆盖的
再就是显示时有问题,不全是某一号字体有问题,比如测试时24号字体空间不变,前面有WIFI的空间,后面是在FATFS的空间分配,接着24号来的,肯定不会对24号字体造成冲突,但写完以后,显示时,24号会有一些字显示成黑块或乱码

还有一个想法想确认一下,因为前16M没有使用fat系统,所以在确认空间足够的前提下,烧写时只烧写部分字体应该是可行的吧。这样就不用每次都刷一遍了,太费时间。其实这个问题是不需要问的,只要测试一下就可以,但因为上面字体的原因,所以这个没法试,一块提出来确认下吧。
谢谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 22:26:26 | 显示全部楼层
  [HZK32] =
  {
    .filename           =   "0:/srcdata/HZK32",
    .description        =   "裸机中文字库32",
    .start_addr         =   60*4096 ,
    .length             =   277*4096,
    .burn_option      =  UPDATE,      
  },
  
  [HZK40] =
  {
    .filename           =   "0:/srcdata/HZK40",
    .description        =   "裸机中文字库40",
    .start_addr         =   350*4096 ,
    .length             =   331*4096,
    .burn_option      =  UPDATE,      
  },
  
  [HZK16] =
  {
    .filename           =   "0:/srcdata/HZK16",
    .description        =   "裸机中文字库16",
    .start_addr         =   700*4096 ,
    .length             =   70*4096,
    .burn_option      =  UPDATE,      
  },
  [HZK48] =
  {
    .filename           =   "0:/srcdata/HZK48",
    .description        =   "裸机中文字库48",
    .start_addr         =   780*4096 ,
    .length             =   475*4096,
    .burn_option      =  UPDATE,      
  },
  
  
  [AUX_WIFI_FW] =
  {
    .filename           =   "0:/srcdata/BCM43362-5.90.230.12.bin",
    .description        =   "WIFI模块固件",
    .start_addr         =   1284*4096 ,
    .length             =   62*4096,
    .burn_option      =  UPDATE,
  },
  
  [AUX_WIFI_PARA1] =
  {
    .filename           =   "",
    .description        =   "WIFI模块参数1",
    .start_addr         =   1347*4096 ,
    .length             =   1*4096,
    .burn_option      =  DO_NOT_UPDATE,
  },
  
  [AUX_WIFI_PARA2] =
  {
    .filename           =   "",
    .description        =   "WIFI模块参数2",
    .start_addr         =   1348*4096 ,
    .length             =   1*4096,
    .burn_option      =  DO_NOT_UPDATE,
  },
  
  
  [HZK24] =
  {
    .filename           =   "0:/srcdata/HZK24",
    .description        =   "裸机中文字库24",
    .start_addr         =   1360*4096 ,
    .length             =   144*4096,
    .burn_option      =  UPDATE,      
  },
  
  [AUX_FILE_SYSTEM] =
  {
    .filename           =   "",
    .description        =   "FATFS文件系统",
    .start_addr         =   1536*4096 ,
    .length             =   2560*4096,
    .burn_option      =  DO_NOT_UPDATE,
  }
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 22:28:21 | 显示全部楼层
上面是我试过的另一种情况,在这种情况下,40号字显示正常,24号和32号都有显示不正常的(也有能正常显示的)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-16 22:36:18 | 显示全部楼层
上面字体计算时大小有微小差异,是因为怀疑字体文件有问题,更换字体文件,文件大小不同造成的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-17 23:36:00 | 显示全部楼层
没有压力就没有动力,今天晚上灵机一动,问题解决
可以肯定的是随板的工程代码的问题,这回终于不用再怀疑了
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 17:05 , Processed in 0.037071 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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