Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
请教汉字字库存放的相关问题
发布于 2012-12-21 21:57:57 浏览:4920
订阅该版
现在重新在armfly开发板上移植了rt 1.0.2,参照realtouch移植了touch部分,spi flash,以及SD 文件系统,lwip 和GUI的example部分. 这两天被字库给绕进去了。 在之前也是在论坛里泡了好长时间,总算捋清了怎么把字库放进flash中,随着实验深入,发现好多问题,实在弄得头大. 刚开始手头没有SD卡,就先把nfs弄通了,然后想将字库通过copy方式弄进flash。 上午用的方法: 1)建根目录 dfs_mount("flash","/","elm",0,0) 2)将nfs挂在/nfs下 dfs_mount(RT_NULL,"/nfs","nfs",0,"192.168.0.103:/") 在这两步之间要mkdir("/nfs",0),因为要挂载nfs,所以先要建一个目录(/nfs),但系统运行到此时在这里弹出(mem->magic==HEAP_MAGIC)assert fail:rt_free 500 采用 open()的方式去建一个目录(/nfs)也弹出一样的问题。 因为看了半天代码,实在是不懂mem.c这里的实现原理,看不懂这幻数。 因为以前接触过linux方面的,所以以为可以直接将字库挂在nfs下,所以又将nfs作为根目录 dfs_mount(RT_NULL,"/","nfs",0,"192.168.0.103:/") 将字库放在本机上的nfs挂载点下,发现系统可以跑起来,但是屏上无GUI了。 下午终于借到一 4GSD卡,舍弃了上午的办法,就直接将字库拷在SD卡内(/resource/hzk16.fnt ),让SD卡作为根目录 dfs_mount("sd0","/","elm",0,0) 本以为会在串口中可以直接访问到此时的SD卡根目录,但在fish下想查看根目录下的情况 >>ls("/") 并未提示有resource目录 如何确定SD卡已经是确实挂载上去了? 如下图,现在是挂载SD卡为根目录的情况,汉字仍是乱码 [attach]0[/attach] 各位如果有经验,希望不吝赐教! 谢谢! ps:因为办公电脑与公用外网电脑未联网,无法copy代码,实在抱歉。 ![Setting.JPG](https://oss-club.rt-thread.org/uploads/5264_3e86db8728ebc39e5e1ea03904a54c01.jpg) ![zmodem.JPG](https://oss-club.rt-thread.org/uploads/5264_9773f575dce55185ae4a8a19a3bcc7e3.jpg) ![device_test_sd.JPG](https://oss-club.rt-thread.org/uploads/5264_27d8b89013a49f3c063f770c386d6dd4.jpg) ![sd.JPG](https://oss-club.rt-thread.org/uploads/5264_02e147ac8f7638c86c6f196c267386b0.jpg)
查看更多
13
个回答
默认排序
按发布时间排序
nongxiaoming
2012-12-21
rt-thread大师兄
看RealTouch应用教程第8讲汉字字库的使用,同时你需要在启动的时候将相应的字体文件添加到你系统的字体列表中才可以
aozima
2012-12-21
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
>>>ls("/") >并未提示有resource目录 >如何确定SD卡已经是确实挂载上去了? --- 如果也没有其它目录的话,说明SD卡没挂载成功。 又因为是挂载为根目录的,所以可能是SD卡驱动问题。 可以finsh执行 list_device() 查看设备。 另外,还有 components/utilities/zmodem 可用,可以直接向SPI FLASH复制文件。
mique
2012-12-21
这家伙很懒,什么也没写!
>看RealTouch应用教程第8讲汉字字库的使用,同时你需要在启动的时候将相应的字体文件添加到你系统的字体列表中才可以 --- 谢谢,这么快就回复了。 我现在只是将它原来的hzk16.fnt放在SD卡内,并不是添加其它的字体。 还有你讲的“字体文件”具体指的是什么?谢谢!
mique
2012-12-21
这家伙很懒,什么也没写!
>>>>ls("/") >>并未提示有resource目录 >>如何确定SD卡已经是确实挂载上去了? > >--- > > >如果也没有其它目录的话,说明SD卡没挂载成功。 >又因为是挂载为根目录的,所以可能是SD卡驱动问题。 > >可以finsh执行 list_device() 查看设备。 > >另外,还有 components/utilities/zmodem 可用,可以直接向SPI FLASH复制文件。 --- list_device() 查看过,有 sd0 block device 谢谢,我试试看。
mique
2012-12-22
这家伙很懒,什么也没写!
>>>>ls("/") >>并未提示有resource目录 >>如何确定SD卡已经是确实挂载上去了? > >--- > > >如果也没有其它目录的话,说明SD卡没挂载成功。 >又因为是挂载为根目录的,所以可能是SD卡驱动问题。 > >可以finsh执行 list_device() 查看设备。 > >另外,还有 components/utilities/zmodem 可用,可以直接向SPI FLASH复制文件。 --- 如下图,传输时字库文件(hzk16.fnt)时发生错误,讲为错误的数据包,但是我传一个readme.txt到根目录是OK的,这是什么原因,不知道哪位有这样传过字库文件的,给点提示呗。。 [attach]0[/attach] 还有就是如果通过这种方式将文件(readme.txt)传到了SD卡内,是否可以直接通过windows系统来读取到SD卡的readme.txt,但我这边在windows下,用读卡器是看不到readme.txt的图标的。 但我看了下坛里面的介绍realtouch的字库部分,貌似是直接在windows下copy文件到SD卡内,然后可以通过finsh去访问或是rt系统里面的文件读写,比如字库(/SD/resource/hzk16.fnt)直接引用。 不知是不是我理解有误还是?
aozima
2012-12-22
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
你是把SD卡挂载在根目录,所以,你根本就不用使用别的方法复制文件。 而是直接可以在电脑上面复制。 然后你需要调的是板子为什么不可以正确访问文件系统。 使用zmodem是指,把SPI FLASH挂载为根目录,又没有SD卡做为交换时用的。 如果有兴趣,建议把103的SDIO驱动修改为类似F4的,这样效果可能会好些。 另外: [http://www.rt-thread.org/phpBB3/viewtopic.php?f=4&t=309](RT-Thread精华索引)中有一个驱动测试程序 可以用来测试,不过先备份SD卡,因为测试时会破坏数据。
prife
2012-12-22
这家伙很懒,什么也没写!
1. 如果没有SD卡,那么使用NFS来实现 用NFS就可以,不过NFS原来有限制,楼主你更新下svn里的NFS。 就可以正确使用copy了,否则NFS会报错。、 2. 如果有SD卡,那么直接从电脑上创建合适的目录(需要跟字库文件里的保持一致),把字库放进去就可以了。 另外,字库的配置务必要参考小农关于字库的文章。 [http://www.rt-thread.org/phpBB3/viewtopic.php?f=28&t=2284](http://www.rt-thread.org/phpBB3/viewtopic.php?f=28&t=2284) 不是将字库放下就可以用了,还需要根据字库文件中指定字库的路径,将字库文件放在指定路径下才可以。
amsl
2012-12-22
这家伙很懒,什么也没写!
先确认文件系统可用, 使用字体文件需要使能宏RTGUI_USING_HZ_FILE,RTGUI_USING_DFS_FILERW 确认字体是否已经安装了,rtgui_font_system_add_font() 确认RTGUI_DEFAULT_FONT_SIZE的值是多少,是否与字体大小一致 以上都确认OK了,字体就可以使用了.
mique
2012-12-25
这家伙很懒,什么也没写!
>你是把SD卡挂载在根目录,所以,你根本就不用使用别的方法复制文件。 >而是直接可以在电脑上面复制。 >然后你需要调的是板子为什么不可以正确访问文件系统。 > >使用zmodem是指,把SPI FLASH挂载为根目录,又没有SD卡做为交换时用的。 >如果有兴趣,建议把103的SDIO驱动修改为类似F4的,这样效果可能会好些。 > >另外: [http://www.rt-thread.org/phpBB3/viewtopic.php?f=4&t=309](RT-Thread精华索引)中有一个驱动测试程序 >可以用来测试,不过先备份SD卡,因为测试时会破坏数据。 --- 为了排除问题到底出在哪里,还是一步步来,重新确定。 先只挂文件系统在flash上,然后通过对flash驱动的测试,发现device_test("flash0")测试OK,但fs_test(3)测试出问题,不能读写,不过,至少可以确定spi-flash驱动是没有问题。 通过单步调试,发现 /*maxmum sector size to be handled*/ #define RT_DFS_ELM_SECTOR_SIZE 512 这里应与flash的sector size 4096 一致。 尔后,再fs_test(3)测试 OK。 SPI- flash的文件系统现在已经OK. 再只挂文件系统到sd卡上,device_test("sd0")和fs_test(3)的情况如下,因为device_test("sd0")就已经出错了,所以fs_test()其实意义不是蛮大,只是提供一个参考,看看大家有没有遇到过这种情况。 [attach]1615[/attach] 我的SD卡是HC SD 4G ,对SD卡不是很熟悉,看了半天文档也不知道如何下手. 这里device_test()测试出错 sd0 the end sector failed. 是不是由于sector count算错了,我在windows下直接看这个SD卡的大小如下图 [attach]1616[/attach] 按照sector size=512去算的话,sector count=7728128 与程式中的7744512不同。 请教一下大大们,可能是什么问题? PS: 坛里提到了 [http://www.rt-thread.org/phpBB3/viewtopic.php?f=3&t=1635](http://www.rt-thread.org/phpBB3/viewtopic.php?f=3&t=1635)这里的 {{{ RT-Thread的块设备驱动的单位是块,elmfat的单位也是块。 最终传到驱动这边的参数就是:从pos1读取2块。 那么驱动中应该: SD卡/U盘:从pos*512 处读取512*2字节(SDHC除外)。 4K FLASH:从pos*4096处读取4096*2字节。 }}} 这里的SDHC除外是讲??
prife
2012-12-25
这家伙很懒,什么也没写!
其实测试文件系统SD卡是否正确挂载根本用不着上面这么麻烦。 把SD卡格式化以后,从读卡器插在电脑上,复制几个文件进去。比如在sd卡创建一个简单的test.txt,内容就写一下“hello,world”,就可以了。 然后把SD卡插在板子上,用ls("/")看看是否能正确列出文件和目录。如果能识别,基本就说明SD卡正确工作了。 再试试 cat("/test.txt"),这个命令会将test.txt的内容打印出来。你测试一下就知道了。 然后尝试一下 mkdir("/d123"),这样就是创建一个文件夹。 fs_test系列不建议使用。
撰写答案
登录
注册新账号
关注者
0
被浏览
4.9k
关于作者
mique
这家伙很懒,什么也没写!
提问
6
回答
24
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
rt-thread 小内存算法源码分析
2
env中添加lvgl软件包后,keil编译包--c99错误
3
【NXP-MCXA153】 定时器驱动移植
4
GD32F450 看门狗驱动适配
5
【NXP-MCXA153】看门狗驱动移植
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
keil_MDK
msh
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
7
个答案
2
次被采纳
a1012112796
18
个答案
1
次被采纳
红枫
5
个答案
1
次被采纳
Ryan_CW
5
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
本月文章贡献
YZRD
3
篇文章
6
次点赞
catcatbing
3
篇文章
6
次点赞
lizimu
2
篇文章
11
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部