看星星的派大星
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
rk3568 , mipi 屏幕调试(3588s 可以显示,但是3568 不能显示)
按道理讲是没有差别的。客户正在调试 自己的 mipi 屏幕,发现,更过修改设备树之后,在 3588s 上可以显示,但是同样的方式在 3568 上就不能显示了。我是这么想的, 我也在 3568 上 直接 给 reset 脚 , 接上一个 1.8V的 高电压,就不通过 gpio 控制了。2、 可以看到 ,低电平需要一定的时间,否则识别不出来,然后高电平之后,还要等一段时间,这是 屏幕真正reset 的时间。这里需要 看一些 屏幕的数据手册, 对于mipi 屏幕来说 , 需要注意的也就是 这个复位的时间了。原创 2025-06-09 11:50:26 · 14 阅读 · 0 评论 -
2k1000LA , 调试串口改成通信串口, uart.
客户的问题解决了,但是 调试串口 改成通信串口的问题,并没有解决,我走的其他的路径。1 就是更改 设备树的 chosen 节点, 瑞芯微又单独的调试串口节点。2 就是 更改 命令行的 bootargs 参数。3 可能还与 /etc/inittab 有关。总结: 实际上 有几种思路了。原创 2025-04-14 20:52:35 · 79 阅读 · 0 评论 -
imx6q , lvds0 ,使能
文件 , iTOP-iMX6_android6.0.1/bootable/bootloader/uboot-imx/board/freescale/mx6sabresd/mx6sabresd.c。文件: iTOP-iMX6_android6.0.1/kernel_imx/arch/arm/boot/dts/imx6qdl-sabresd.dtsi。注意: 这个问题的解决是由前提的,就是 lvds1 已经调试好的情况下。我并没有 像这样 去修改 uboot 的 bootargs 参数。首先是 uboot。原创 2025-04-01 10:27:22 · 291 阅读 · 0 评论 -
rk3568 以太网eth1 , 定制板 phy调试问题。
phy 问题, 就是 照着 公司底板对硬件就行,完全是硬件问题,不用改 软件。所以 重新焊接了一下, 但是系统启动之后, phy 芯片发热严重,很明显烧了。所以 给客户免费 换了一个 新的phy , 发现可以识别了。后来发现 phy 芯片的焊接问题,有一边 翘起,没有焊上。后来发现 125M的 时钟线 没有接到 核心板,。于是 通过飞线方式 ,接上了 125M 的时钟。问题: 客户定制底板的 phy 网络不通。但是这个问题, 只能客户重新打板了。估计是 时钟 使用飞线的原因。具体的报错信息 ,丢了。原创 2025-03-19 17:27:34 · 79 阅读 · 0 评论 -
2k1000LA 使能 nand.
我觉得 ,之所以 再内核中去移植 Yaffs2 文件系统,就是为了 使用这个命令。发现 可能再 龙芯写的 nand 的驱动上有关于 partition 的内容。突然想起来 ,去看了一下 韦东山的关于nand flash 的驱动的视频。背景 : 默认的 发货的镜像 确实 是识别不了 nand 的。但是 我之前 已经写好了文档,因此 拷贝到线上。这里实际上是 我参考了 别人家的 设备树文件。在menuconfig 中使能一下。再menuconfig 中使能一下。但是居然是可以 使用的。原创 2025-02-24 17:27:48 · 41 阅读 · 0 评论 -
韦老师调试 gpio BUG 笔记 + 自己 rk3562 gpio 调试
1 首先是 之所以 无法 通过 sysfs 控制,是因为 GPIO控制器 配置成了 开漏模式,所以 在echo 高电压的时候,测量的是 1.5V , 这是因为,IO口的电压是不确定的。但是这里有一个疑问: 为什么 sysfs 文件系统,可以设置 高低电平呢,----->估计在实现的源码里也有关于 打开时钟,关闭时钟的操作。可以看到 gpio133 我是配置了 gpios 的 所以不能使用sys 了,gpio134 是我 使用sys 设置的。3 最后发现是 uboot设置了 gpio 的开漏输出。原创 2025-01-15 21:32:31 · 295 阅读 · 0 评论 -
rk3568 , openharmony , 8G , 无法启动, openharmony3.2, 3.2beta, 鸿蒙。
问题: 目前使用 openharmony 3.2 版本的 镜像 ,在8G的核心板上 ,烧写之后,屏幕没有画面。报错如下:现象如下: 1 uboot阶段是 有画面的。2、命令行可以正常进入系统。3、 但是 没有进入 鸿蒙的 Lancher 界面,一致卡在 uboot 阶段的logo 上。软件说明: 烧写的是openharmony3.2 版本的 镜像, 这个镜像 是公司 移植过的,在2G 内存的版本上 是可以正常运行的。也可以进入 lancher .硬件说明: 3568 8原创 2024-12-10 09:12:00 · 1178 阅读 · 0 评论 -
uboot ,s5pv210 ,bootm分析
(*(unsigned int *)(0xD0037F98)) 这表示 从这个地址 拿到了 一个值, 然后 (copy_sd_mmc_to_men) 这句表示 准换成 这个类型,前面已经定义过了,这是一个 函数的类型。这句就表示 去调用 三星自己 固化的函数 copy_sd_mmc_to_men 了。这句得到了 os 中的某个字段的内容。原创 2025-01-03 20:44:31 · 186 阅读 · 0 评论 -
imx6q plus , android6.0 , uboot, 调试 5寸屏, logo显示
经过我的测试 确实是这样的,如果我设置成 5寸屏幕的话,uboot 无法正常显示 logo , 会花屏。注意在uboot 中, 结构体 struct display_info_t 中的 pixclock 不是指的 频率, 而是指的时间,单位是 ps。我是这么做的, 就是 我先让你 在uboot 中显示logo , 然后过一会儿 我在 使能电源的引脚。事实上 ,经过我的测试, 上电白屏的时间缩短了, 但是 还是会有 一瞬间的白屏,关于uboot 的 显示的参数 是在 uboot 的这个文件。原创 2025-01-03 20:09:25 · 119 阅读 · 0 评论 -
rk3588 lvds 双屏异显
我这边测试 3588 如果接上 1024x600 的 lvds 双屏的话, 副屏是不闪的,但是如果接上 1280x800 的 lvds 双屏的话, 副屏一直在闪, 主要是 有logo 的地方在闪, 并且是 logo 的位置, 在纵向上 整屏 有重影。总结: 双屏同显 ,只需要将 两个 屏幕接口 挂接到 相同的 vp 下就行,这里 ,关于屏幕接口的时序 ,应该是 该是什么样,就是什么样的。这跟我手上的 双屏异显 是不一样的, 我手上的是 副屏 ,有点像 windown 的副屏,原创 2024-12-19 10:09:26 · 252 阅读 · 0 评论 -
rk3588s android12 自启动 C程序
1、一种是 在源码里面直接 去改 init.rc 文件,这种方式比较牛逼,我也想牛逼一下,但是,试了一下,我编译的init.rc 在系统中都没有出现,放弃了。我在往回改的时候突然发现一个问题,我改了kernel 的内容,但是我编译的时候,使用的是 ./build.sh -A .2、 还有一种是 在板卡的系统启动之后,拷贝进去一个 init.rc 文件,这个init.rc 应该是自启动的。后来我发现是 由于分配的内存太小了,需要16G的内存,我之前分配的内存是8G。原创 2024-09-27 21:14:07 · 509 阅读 · 1 评论 -
rk3588S, 定制板, 调试USB摄像头(第三部分)
关键是我的 脚本 需要 操作 /sys/class/gpio , 这是需要 root 权限的,但是 我的脚本 使用 sh 脚本的话,只能是用 su 的命令,但是有报错。问题: 客户的 usb 摄像头 接上 板卡上的 USB2.0 的接口是可以的,但是 接上 typec 接口上的 OTGUSB的时候 ,就会出现,无法识别USB的问题。这里的寄存器都是偏移地址,也就是说 每组的GPIO都是这样的偏移的。我突然想到一个问题, 我之前 保存的.cong 文件是 linux 的,不是android 的。原创 2024-09-27 16:39:05 · 804 阅读 · 0 评论 -
rk3588s 定制版 USB adb , USB2.0与USB3.0 区别,adb 由typeC 转换到USB3.0(第二部分)
所以 在软件上 我只要 在3588S的设备数中 ,去掉 typec0 的CC芯片的配置+dwc3_0 中,配置成 HOSt模式,应该在客户的底板上也是可以接上 USB的。这里 他的 typec0 与 typec1 使用的都是 2lane 的usb3.0 ,不知道,座子是typec的还是USB3.0 的。就是,板卡只有 在插上 typec 的时候,这个脚才会有 到电平,如果不插 type c 的话, 这个脚 , 是没有高电平的。我参考的是 3588的 地板的设计, 在3588上 USB3.0 有这种设计。原创 2024-07-24 14:40:43 · 1669 阅读 · 1 评论 -
rk3588 , RGMII , TX delay, TX delay , 延迟,延时
问题:客户 提出一个问题,就是 原理图上,为什么 只有 RXDLY 延迟, 没有 TXDLY 延迟, 其实我对这个问题 也不是很懂,趁机找找资料。3、phy 芯片 , 以及 驱动中 都可以进行延迟。好了, 那我看一下 3588 的设备树的配置吧。1、 目的是为了 ,等数据 稳定了,进行采样。2、 一般是 再 数据发送的时候 ,进行延迟。综合起来,就是 TX , RX 都进行了延迟。先来看一下 这个 延迟的 含义。数据手册上说 是需要 上拉的。只对 TX 进行了 延迟。这就与 硬件对应上了。原创 2024-12-03 17:49:00 · 557 阅读 · 0 评论 -
2k1000LA 调试HDMI
这也是可能的,因为官方的HDMI 就是通过RGB 转过来的,所以 RGB的参数设置对了, 都驱动起来是可以的。这是 龙芯官方的 pmon 设备树的配置, pmon 以及内核使用的都是 pmon 的设备树。Loongarch 架构的, 没有在设备树种写上 屏幕的参数, 屏幕参数是写在 驱动文件中的。至于 DVO0 , 应该是 使用的 RGB的 驱动程序,这部分的原理图我没有。这份 pmon 的源码, 与我手头上的 LA 屏幕移植的手册 是 一致的。所以 pmon我不动 , 我去改 内核的 屏幕的参数信息。原创 2024-09-24 21:11:22 · 173 阅读 · 0 评论 -
2k1000LA HDMI xrandr
但是 如果在 板卡上接上 USB 键盘的话, 直接在 显示器上 打开终端 的话, 那么 使用。xrandr -q 命令就可以 显示出 屏幕的分辨率, 很神奇。我发现,在串口上 输入xrandr 就是无法打开 显示设备。板卡 通过 HDMI 连接 显示器。板卡 通过 串口 连接PC。原创 2024-09-24 17:46:14 · 118 阅读 · 0 评论 -
rk3399 的 HDMI 热插拔的问题
还有一个情况,就是 ,如果我一开始 上电的时候就不接上 HDMI 的话,等系统启动之后,再 街上HDMI , 那么 这时候 就有了 热插拔了。我本想使用xrandr 查看一下 系统的屏幕, 但是系统有这个命令,但是 无法执行。我发现如果没有这个函数的话,即便是 启动了,服务, 也不会有 重启桌面的这个操作。这个脚 ,当我插入HDMI 的时候, 为5V,当我 拔掉HDMI 的时候为0V。测试情况: 系统在第一次烧写完成之后,是有热插拔的,但是第二次启动就没有了。先来看看网上的资料,这个资料给了我很多的启发。原创 2024-09-14 21:04:13 · 1260 阅读 · 0 评论 -
rk3399 HDMI 固定分辨率。
他这里实际上就是, 不用 i2c 通信读取 屏幕分辨了,直接写死分辨率。目前我没有这个需求,但是以后 肯定会 遇到。看到一个 挺好的文章,先保存下来。问题: 固定HDMI 的分辨率。原创 2024-09-18 08:56:40 · 183 阅读 · 0 评论 -
3588 ,lvds , 双屏异显, 双触摸
经过我的测试,是这样的,就是触摸依然是控制着整个分辨率的,但是 ,触摸的时候,鼠标移动的快慢速度是不一致的,也就是说,触摸的分辨率 应该是 一个相对的概念。总结:他使用的是 异显 异触, 我感觉原理就是 , 将两个屏幕的触摸的分辨率 分开,就是 一个屏幕的分辨率 加上一个相对值, 这样就分开了,各管个的,感觉实现原理上是这样的。先来说 一下 我的测试环境, 我使用的是 一个 屏幕,因为之后 一个屏幕,测试的时候就是 ,用这一个 屏幕 , 在另个接口 上来回测试。默认的使能两个屏幕的话,就是 双屏异显。原创 2024-12-05 10:55:27 · 326 阅读 · 0 评论 -
rk3588s 定制版 tc358775 调试 lvds 屏幕 (第一部分)
1 我看设备树中,对于其他屏幕比如mipi 屏幕,都是 注释掉了,DSI rate, 然后直接,再 timing 里,加上一个 像素时钟就可以了,我这样即设置 DSI, 又设置 timing 中的 clock-frequency ,可以吗?硬件: 3588s 没有 lvds 接口 , 所以使用的 东芝的 tc358774 (mipi ---> lvds芯片), 这个芯片是参考 3399 的 官方设计得来的,3399 的官方demo 板上应该是 使用到了 这颗芯片。只是由轻微的 闪屏,应该是 时钟的问题。原创 2024-07-10 13:41:07 · 647 阅读 · 2 评论 -
4418 android4.4 + 6818 android5.1 移植gps
apk 是开源的 应用, GPS_test.apk , 我这里想的是 直接使用 3399 的apk , 我在kernel 上使能了 GPS 所使用的 uart 之后,在/dev/ 目录下,cp 一个 ttyS4 供上层应用使用。3 还有就是我这样的,在方案商的SDK上移植,其实已经移植好了,我这边需要做的已经很少了,由于资源有限,我的改动已经设计不到 GPS 移植的整体结构。我这边 测试的结果是 ,使用 网盘上的之前的 镜像也是可以 使用GPS的,也就是说只要在硬件上换一个 另一种类型的GPS就可以了。原创 2024-06-18 18:13:08 · 225 阅读 · 0 评论 -
rtl8723du android5.1 6818 (蓝牙 部分)(第四部分)
系统使用的是,android5.1 , 蓝牙驱动就要使用 V5.6,而不是V5.2 了。由于 在原来的SDK中 蓝牙使用的是 mt6620 uart 接口。wifi + 蓝牙 同时使用也是可以的,但是依然是不稳定。2 有时 wifi 连接的时候,接收图片接收不到。可以先 不去合入patch, 因为,已经够用了。所以在移植的过程中,顺带把之前的驱动去掉。对于 menuconfig 的修改。2 hardwire 的修改。1 关于kernel 的修改。经过测试, 是蓝牙是可以的。3 build 的修改。原创 2024-06-13 14:31:50 · 151 阅读 · 0 评论 -
rtl8723du android5.1 6818 (wifi 部分)(第三部分)
之前板卡依然是使用的 mt6620 ,所以在移植的过程中,需要把之前的 wifi 的驱动一点一点的去掉。问题:目前我只是调试的wifi ,界面上会有蓝牙的选框 不断弹出来。3 device.mk + Boardconfig.mk+ init.rc 的修改。具体的详细框架 在 android4.4 部分写的差不多的。6 拷贝wpa_supplicant_8_L_5.x_rtw。对于Boardconfig.mk 的修改。2 驱动的Makefile 的修改。对于device.mk 的修改。开始编译+烧写测试。原创 2024-06-12 18:54:16 · 120 阅读 · 0 评论 -
rtl8723DU移植 android4.4 4418 (第一部分wifi 部分)
当然,这里是需要移植 wpa_supplicant ,作为wifi 工具的,这里就不介绍了,参考正点原子的imx6ull 的手册。于是 insmod 8723du.ko,只有这些打印信息,与内置的打印信息是一样的。将驱动拷贝到 driver/net/wireless 目录下。然后需要,将eth0 关闭掉,否则会出现ping 卡死。对比 没有移植 8723du 的设备树。去改写 8723 的makefile。我准备换一个驱动 , 重新编译。一、 linux 的移植。将这个去掉,继续测试。原创 2024-05-30 13:53:29 · 751 阅读 · 0 评论 -
rtl8723DU移植 android4.4 4418 (第二部分蓝牙部分)
移植驱动 kernel/drivers/bluetooth/rtk_usb.* 到 kernel/driver/bluetooth 目录下。将 驱动中的 hardware/realtek/bt 的部分整体拷贝到 源码 的,hardware/realtek/bt 下。将驱动中的 /hardware/realtek/bt 整个拷贝到 /hardware/realtek/ 目录下。这里先不进行不定的移植,我使用的 HMI (8723bu)的源码,这里我对比了一下,是已经移植好不定的。原创 2024-06-07 18:58:42 · 1268 阅读 · 0 评论 -
android4 imx6q rtl8723du wifi+蓝牙 移植
说明: 官方关于wifi 的移植的文档只有 android 的,没有linux 的。但是linux 的wifi 的移植,可以参考正点原子的手册进行移植。当然,这里是需要移植 wpa_supplicant ,作为wifi 工具的,这里就不介绍了,参考正点原子的imx6ull 的手册。关于wifi 的移植,分为 linxu+busybox 系统中wifi 的移植,以及 android4 的WiFi的移植。关于蓝牙的移植,分为linxu+busybox 系统的蓝牙的移植,以及android4 的蓝牙的移植。原创 2024-04-25 18:54:46 · 317 阅读 · 2 评论 -
20.打开分页机制
那么高10位 作为页目录表索引, 中间10位 作为页表 索引, 最后12位 作为 物理地址的偏移。10 0000 0000 ----> 查找页目录表的 第512 项。0000 0000 0000 -----> 查找物理地址的0号偏移。00 0000 0000 -------> 查找页表的 第0项。比如 cpu 发送了一个线性地址 0x8000 0000。原创 2024-04-01 07:30:45 · 88 阅读 · 0 评论 -
19.进入保护模式(3)
这种错误一般是 gdt表没有设置好。2 加载 GDTR寄存器。4 设置选择子,段内偏移。3 设置CR0 寄存器。7 设置GTD表首地址。6 重新设置数据段。原创 2024-04-01 07:25:36 · 67 阅读 · 0 评论 -
18.进入保护模式(2)
主要是对这章表的讲解。原创 2024-04-01 07:25:06 · 79 阅读 · 0 评论 -
17.进入保护模式(1)
在GDT表中 , 有内核代码段+内核数据段, 应用代码段+应用数据段, 还有 task0 LDT + task0 TSS , 难道说 内核+应用+任务,都算一个具体的程序吗?原创 2024-04-01 07:24:43 · 70 阅读 · 0 评论 -
16.加载自己的剩余部分(2)
5 目前这里的代码会加载到 磁盘的第一个扇区。目前磁盘的第二个扇区还没有内容。1 设置 bx , 读到内存的位置。2 cx , 读取磁盘开始的扇区。3 ax , 读取的扇区数。4 dx, 读取第几块磁盘。原创 2024-04-01 07:24:16 · 67 阅读 · 0 评论 -
15.加载自己的剩余部分(1)
2 13号中断,使用的是寄存器来传递参数,报错读取磁盘的扇区数+读取的长度+读到内存的哪里。1 使用 bios 的 13号中断,将剩余的部分加载到内存中。原创 2024-04-01 07:23:46 · 60 阅读 · 0 评论 -
14. x86编程模型(2)
3 jmp $0, offset, 这种模式就相当于 jmp cs:ip 方式。1 设置 cs ,es, ss ,ds 寄存器初始化为0,因为采用的是平坦模型。发现: 在.c文件中可以 打断点,但是在 .S 文件中无法打断点。2 cs 寄存器, 无法直接 mov 的方式设置为0。但是按 F11 却可以继续执行下去。4 设置栈空间,esp 到栈顶。原创 2024-04-01 07:23:16 · 69 阅读 · 0 评论 -
13. x86编程模型(1)
2 采用的是平坦模型,将 CS:代码段寄存器, DS: 数据段寄存器, SS:堆栈段寄存器。全部设置为0 , 所以 CS:ip , 在进行设置的时候,直接设置 ip就可以了。3 将MBR 放在7c00 地址处,约 512B, 剩余的部分放在 7E00 之后的部分, 大约608KB。疑问: IP 也是一个寄存器吗?1 在实模式下 是16位, 有1M内存,疑问:这1M内存在哪呢?原创 2024-04-01 07:22:28 · 79 阅读 · 0 评论 -
0.从零实现操作系统的 ubuntu 环境的搭建。
可以看到源码里,已经有了 image 镜像,所以,不用再拷贝 image 到虚拟机了。看看我的虚拟机中有么有。接下来 安装 vscode 并且能够输入中文,这也是我重新安装虚拟机的原因。装好之后,什么都不用设置,就可以 用mabaxterm 登录了。要想将 PC的内容,拷贝到虚拟机中还需要进行一系列的安装。目前位置, vscode 的中文输入问题就解决了。环境已经配置好了,接下来 下载源码到虚拟机。安装 vscode ,我已经安装过了。到官方的网站下载ubuntu的镜像。但是我重新启动了一下,发现可以了。原创 2024-04-01 07:20:47 · 79 阅读 · 0 评论 -
4418 TF 烧写自动启动。
逻辑, 其实我只要在 uboot 中设置好,bootcmd 就好了,就是在 bootcmd 的原有命令上 加上 sdfuse flashall 就行了,后面的命令会自动加载 emmc 中的镜像,由于已经在 emmc 中烧写好了镜像,所以是可以这么写的。总体上我觉得, bootcmd 这个环境变量应该是从 4412 的uboot 源码中抄过来的,启动内核的时候,应该不是走的 bootcmd 这个命令。发现没有成功,我在源码里面的改动,都没有实现,系统启动之后,bootcmd没有变。原创 2024-03-28 15:03:25 · 264 阅读 · 1 评论 -
4412 改变 8767电源芯片的输出电压
接下里,烧写 网盘上的,镜像,测试一下, VDD_ARM VDD_INT VDD_MIF 电压分别是多少。在源码中有关于这些电压的设置,好像只是改一个参数就可以了。问题: 主要是想 改变 8767 输出的电压。接下来,我在 kernel 源码中进行更改。我还是先来看一下 8767 的数据手册。在cpu的数据手册中有关于这些的介绍。证明实际上这么改 是有效果的。原创 2024-03-27 18:18:31 · 94 阅读 · 0 评论 -
rk3568 ubuntu 屏幕旋转, gt9xx 触摸旋转
然后 cp .config arch/arm64/configs/rockchip_linux_defconfig 覆盖掉默认的 defconfig 文件, 在瑞芯微写的编译脚本里。就是,我先将 触摸编译成 ko 驱动 模块,然后,ubutnu 启动之后,先旋转屏幕,然后 insmode 驱动。1 关于linux 的触摸问题,直接参考 正点原子的视频,触摸是可以从0写出来的。再设备树中,有关于 val 的定义,可以通过 911 这个字符,来匹配坐标的翻转。2 真正工作中,对于驱动,就是改。原创 2023-12-12 14:12:14 · 13015 阅读 · 0 评论 -
imx6q andorid4.4 触摸唤醒的 第二篇文章
2 如果 系统进入深度休眠之后,别的电源都会关,但是 中断会保留,而如果我不把触摸芯片的电源关掉,那么,一旦手指 触摸屏幕,触摸芯片就会上报一个中断,这个时候,系统接收到中断之后,就会唤醒,相当于android 的按键唤醒。问题: 发现,其实进入的不是休眠, 只有在 连接着ADB的时候才会出现 触摸唤醒的情况,这其实并不是真正的休眠。板子并没有接 adb 线 ,可以看到,休眠电流为 120ma , 这应该是休眠了。1 连接adb的时候,不会进入 深度休眠的模式,但是也会进行息屏的操作,估计是一种浅睡眠。原创 2023-10-22 20:16:12 · 110 阅读 · 1 评论 -
imx6q android4.4 的触摸唤醒功能
发现, 系统启动之后,过一会儿 会进入息屏状态,(此时我的adb 是连接的), 然后 动一下鼠标的话,屏幕会自动点亮,但是触碰屏幕的话,屏幕没有反应。总体的含义就是 , 在 触摸 进入 suspend 的时候,注册了一个中断,这个中断,可以在休眠的时候也会唤醒。需求: 需要在android4.4 的基础上实现 ,通过,点击屏幕实现 唤醒的功能。此时 ,屏幕的触摸也不能唤醒了,这说明进入了 休眠的状态了。将镜像 烧写进开发板之后可以,发现, 屏幕是可以唤醒的。也就是说 之前的触摸唤醒的功能还是需要更改的。原创 2023-09-28 17:43:59 · 178 阅读 · 0 评论