Yuhang Zheng
网页黑暗模式实现方法

这篇文章继续说上篇没说完的部分。

上篇文章中只是说了如何在小工具右下方增加一个黑暗模式按钮的方法,但是只有按钮还是不行的啊,我们想要的是完完整整的点击就可以把页面变黑的功能。

这次我依然是参照小霖的梦花园的个人博客的实现方法,依然是打开网页的源码控制台,然后发现当点击【黑暗模式按钮】的时候,html的样式表上会增加一个data-theme=”dark”,代码如下:

<html class="nprogress-busy" data-theme="dark">

然后发现在source/dist/build.css文件中,在:root样式中增加在data-theme=dark模式对所有颜色相关变量重新赋值就可以,同时我也仿照着小霖的博客的源码将一些颜色相关的变量的名称进行了修改。更改后的:root样式如下:

为博客增加黑暗模式按钮

我的博客主题是因为看到了小霖的梦花园的个人博客,很想弄一个和它一样的主题。

在他的博客右下角写着主题的来源地址,是基于hexo-theme-aomori的基础上修改的,访问就可以得到主题的源码,我的目标就是在这个源码的基础上去增加修改一些自己的东西。

之前陆陆续续的为博客增加了血小板的live2D看板娘,右侧小工具的小插图照片,修改了一些汉化的标题等,这些改动我也上传到了自己的GitHub仓库上,有需要的也可以看一下哦,地址在hexo-theme-aomori

因为自己也没有学习过前端的知识,所以很多改动也是自己一边网上搜索一边尝试摸索着改完的,有很多修改都忘记了。所以如果有时间的话,自己还是要尽可能的记录一些东西,防止自己这越来越秀逗的脑子,把之前辛辛苦苦弄出来的东西全都忘了。

废话不多说,直接进入主题

这次是为博客增加右侧小工具下面的黑暗模式按钮,这里是GitHub的提交号

首先是要在html首页源码中,之前的【返回开始的按钮】的地方修改增加【黑暗模式按钮】的引用,

为Wordpress添加血小板Live2D

废话不多说,先看效果~~(´ー∀ー`)

之前在很多个人博客看到过Live2D,超级萌有没有~~

然后网络上有适用于各种博客的Live2D教程,插件一类的。我也找了一下适用于Wordpress的相关文章,但是要么就是模型不够可爱,要么就是可定制的程度较低。

wm8960砰砰声时钟问题排查

背景:

这篇文章接上一篇问题继续排查,这次硬件的同事帮忙量了一下SYSCLK的时钟,发现当MCLK为24MHz的时候,SYSCLK为22.5792MHz。当MCLK为12MHz的时候,SYSCLK才是我们预计想要的11.2896MHz。

但是通过手册我们可以看到,客户使用的是Class D类设备,也就是Speaker喇叭,而Class D设备需要的时钟为500kHz~1MHz,最优时钟频率为768kHz,DCLKDIV[2:0]的最大分频为16,所以SYSCLK最优时钟为768kHz x16=12.288MHz,最大时钟为1MHz x16=16HMz,但是我们实测SYSCLK已经达到了22.5792MHz,所以造成了Class D设备工作不正常。

wm8960修改MCLK时钟

问题出现的背景:

最近两天遇到了一个iMX6的项目定制WM8960音频芯片播放声音出现砰砰声的问题。

此问题出现在客户的批量产品上,一共检验280台,喇叭噪音大的有10多台,噪音小的有50多台。砰砰声比较大的板子更换音频芯片后测试正常,但换下来的音频芯片在公司自己的6Q-C底板上面无杂音。

前期判断:

以上述信息来看的话,就是这个现象不是必出的,而且和硬件有一定的关联性,由于客户定制做好的板子比较多,单靠硬件去排查解决的话不现实,还是希望能在软件上通过一些手段将这个问题解决或者规避掉。

因为自己对音频这块不是很熟悉,完全不知道如何下手。

刚开始排查的时候,同事提醒有可能是音频芯片的DAPM部分的问题,所谓DAPM,也就是Dynamic Audio Power Management动态音频电源管理,就是通过音频使用过程中用户所使用的音频路径bybass,动态控制路径上的门开关来实现诸如如果使用MIC录音,Speaker放音的时候,就关闭掉Line in通道的输入和HeadPhone放音的路径。这样才来实现节能的功能。

初期猜想是DAPM控制的时候,有一些控制没有做好,导致客户的定制版使用speaker放音的时候,别的通路开关串进去了杂音信号。

因为在6Q-C的Linux4.1.15的系统上测试speaker也有轻微可以接受的砰砰声,而3.0.35系统上没有。李哥说这两个系统的区别就是当时调Linux3.0.35的音频的时候关掉了DAPM的功能,所以理所当然的想到如果把Linux4.1.15系统上音频的DAPM也关掉。

音频的IIS引脚的理解

来个音频部分的名词解释:

SSI (Synchronous Serial Interface) 同步串行接口
IIS (IntegrateInterfaceofSound) 集成音频接口
PCM (Pulse-code modulation) 脉冲编码调制
Codec 编解码器
DAPM (Dynamic Audio Power Management) 动态音频电源管理
DAI (Digital Audio Interfaces) 数字音频接口
mfd (Multifunction device) 多功能设备
LDO (low dropout regulator) 低压差线性稳压器


飞凌imx6平台中,Codec与SOC连接部分,是使用SOC的 SSI 接口用作 IIS 功能,以下分别是IIS的引脚名称

AUD3_TXFS 发送帧同步
AUD3_TXC 发送时钟
AUD3_RXD 发送
AUD3_TXD 接收
AUD_MCLK 外部24M时钟

相对应的Codec的引脚为

DACLRC 数字转模拟左右声道时钟
BCLK Bit Clock 位时钟
ADCDAT 模拟转数字数据
DACDAT 数字转模拟数据
MCLK 外部24M时钟

104x的emmc和SD启动的电平问题

问题描述:

对于ls104x的核心板,其支持两种启动方式,一种是Qspi启动,一种是emmc启动,然后根据客户实际使用需求拓展出了SD卡启动的方式。但实际上,SD卡启动的原理是插入SD卡之后,直接将SOC上的emmc引脚引到SD卡上,直接抢掉了emmc的引脚。

这样做的问题是,由于SD卡的引脚电平为3.3v,emmc的引脚电平是1.8v,所以如果我们将SD卡和emmc启动的镜像使用同一个,按照SD卡的电平来进行设置的的时候,在emmc启动的时候,给emmc的芯片的电压就是3.3v,会使其更容易损坏,emmc输出的引脚电平为1.8v,会被SOC使用3.3v电平域读取的时候误将高电平信号读成低电平信号,导致emmc无法启动或者出现其他不稳定的现象。

所以,我们需要寻找一个新的解决方法。

已知启动顺序:

QSPI启动时,硬件最早介入1.8v——>RCW介入变成3.3v——>uboot的emmc驱动介入(mmc rescan的时候)——>内核驱动介入1.8v

此过程的uboot是由emmc默认配置读入到RAM的

emmc启动时,硬件最早介入1.8v——>RCW介入变成3.3v——>SPL阶段uboot的emmc驱动介入——>内核驱动介入1.8v

此过程的uboot是由SPL中uboot的emmc驱动配置读入到RAM的。

再见,过去的2020年

现在是2021年1月4日的10:06,新年上班后的第一天,上午又是不在状态的摸鱼划水,正好也没有太要紧的工作去完成,就简单的随便写点东西吧。

过去的2020年,发生了太多太多的事情,是人生中记忆深刻的一年,可能也是会写进历史的一年。

2017年毕业之后接近四年的时间,一直都是庸碌平凡,一份简单的工作,三点一线的时光。唯独刚刚过去的2020年,却在这重复的时光之外,又悄悄地将生活从熟悉的模样中改变了好多。一切似乎没变,又似乎剧变。

今年疫情来了,大家都没办法再热热闹闹的出去玩;家门口新开的万达开业即遭遇寒冬,也很难再看到开业时候熙熙攘攘热闹的样子;河大的小吃街被推了,虽然那不是记忆中经常光顾之地,也不跟河大的学生一样在那留下什么青春记忆,但是心里总是感觉少了点什么;五月份订婚,十月份结婚,从此终于不再是一个人,有了小家,也有了老家;九月份陪着珊珊找工作考教编,每天晚上八点半骑着小电车回家,凉飕飕的秋晚中后座上带着她心里确是满满的幸福和憧憬;九月底买了小车车,丰田奕泽也算是一眼欢喜带它回家,从此家里有了一个笨笨大大的铁朋友,从此月夜晨光,风雨共赏,冷暖兼程;十二月老妈被车撞了一下,至今仍在修养,从健步如飞到步履蹒跚,最近还要去再检查脑袋里面的积液是否需要做个手术,不知道是不是再也难回到记忆中的从前;

记忆中熟悉的生活在逐渐老去,有新的未来在逐渐的盛开发芽。旧的世界崩离,新的世界才能够建立,只是在这正在崩离的世界中,也有太多的美好的东西随时光逝去;在这新建立的世界中,鬼魅,不堪和混乱也伴随着出现并糅杂在未来的时光中。我们要做的,也不过认真的同每一份正在失去的美好认真告别,然后在新世界建立的过程中,努力的驱赶着黑暗再将那其中诞生的珍贵的美好的东西拾捡出来,当成坚持未来成长的信仰,继续前进下去。

2020也已经过去,2021尚在发生,新的一年继承了去年的所有糟糕的事情,大家却也在怀着憧憬希望扭转未来。认真的过好当下,热爱并且相信着明天,每一个发生在身边的事情,都是对成长的邀请。

祝愿,安好。