龙芯俱乐部开源技术社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 11466|回复: 13

PMON输入汉字的问题

[复制链接]

9

主题

62

帖子

2848

积分

金牌会员

Rank: 6Rank: 6

积分
2848
发表于 2016-4-29 14:49:39 | 显示全部楼层 |阅读模式
本帖最后由 sigaofeng 于 2016-4-29 15:07 编辑

在PMON中输入汉字
在PMON中输入汉字"大"
PMON回显了[e$']


输入"的"
PMON回显了[g]


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

9

主题

62

帖子

2848

积分

金牌会员

Rank: 6Rank: 6

积分
2848
 楼主| 发表于 2016-5-3 08:25:04 | 显示全部楼层
在pmon的main函数中循环执行get_cmd(),do_cmd();get_cmd()函数调用get_line()函数,在get_line()中调用getchar();我们显示getchar()得到的内容,把getchar()得到的内容通过printf()打印到屏幕上

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

9

主题

62

帖子

2848

积分

金牌会员

Rank: 6Rank: 6

积分
2848
 楼主| 发表于 2016-5-3 08:39:23 | 显示全部楼层
本帖最后由 sigaofeng 于 2016-5-3 13:15 编辑

pmon的编译见帖子http://www.openloongson.org/foru ... =208&extra=page%3D1

烧入nor flash,运行龙芯1c开源板
输入"大" pmon在回显 65e24$27'       "大"的utf-8编码是E5 A4 A7 每个字节的高位被pmon处理后置为0后成了 65 24 27

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

9

主题

62

帖子

2848

积分

金牌会员

Rank: 6Rank: 6

积分
2848
 楼主| 发表于 2016-5-3 08:51:18 | 显示全部楼层
本帖最后由 sigaofeng 于 2016-5-3 10:43 编辑

我们找到处理的函数(scandevs()),更改后即可回显汉字同时把pmon/lib/libc/fgetc.c中char关键字更改为unsigned char

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

28

主题

260

帖子

17万

积分

论坛元老

Rank: 8Rank: 8

积分
170816
发表于 2016-5-3 09:46:32 | 显示全部楼层
果然厉害!

9

主题

62

帖子

2848

积分

金牌会员

Rank: 6Rank: 6

积分
2848
 楼主| 发表于 2016-5-3 14:18:14 | 显示全部楼层
汉字的输出问题

把getchar()得到的内容加入printf("在取得命令")语句,打印一串汉字到屏幕上

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

9

主题

62

帖子

2848

积分

金牌会员

Rank: 6Rank: 6

积分
2848
 楼主| 发表于 2016-5-3 14:49:22 | 显示全部楼层
本帖最后由 sigaofeng 于 2016-5-3 14:53 编辑

什么情况乱码???


原来gcc编译时在makefile.inc中使用了charset=GB2312选项,更改为charset=UTF-8就行了

汉字编码问题见,字符编码的前世今生-腾讯大讲堂
http://djt.qq.com/article/view/658

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

9

主题

62

帖子

2848

积分

金牌会员

Rank: 6Rank: 6

积分
2848
 楼主| 发表于 2016-5-3 14:54:36 | 显示全部楼层
makefile.inc

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

9

主题

62

帖子

2848

积分

金牌会员

Rank: 6Rank: 6

积分
2848
 楼主| 发表于 2016-5-5 10:06:30 | 显示全部楼层
跟踪汉字命令进入get_cmd(),和get_line()

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

9

主题

62

帖子

2848

积分

金牌会员

Rank: 6Rank: 6

积分
2848
 楼主| 发表于 2016-5-5 10:23:03 | 显示全部楼层
跟踪get_cmd()

在get_cmd()函数中的get_line(p,1)语句后加入printf("%s",p);

显示汉字命令能够进入get_cmd()函数,并能进入历史命令列表

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

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

本版积分规则

Archiver|手机版|小黑屋|龙芯俱乐部开源技术社区

GMT+8, 2024-11-28 07:40 , Processed in 0.144281 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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