- 博客(288)
- 收藏
- 关注
原创 刷了一个Openwrt
在海鲜市场收的,100块,还行,但是要自己刷机。选的直接是最流行的OP路由之一,移动的rax3000m,没有别的原因,就是因为用的人多,成熟,教程多。。。要刷机的时候才知道,算力版和普通的区别是EMMC和NAND的区别。不过我一直记得NAND也是不错。(之前开发过一个任务,把NAND换成NOR,真是欲仙欲死,改了驱动之后还要改文件系统。最后是能驱动了,但是文件系统死活配置不上去。。。网上指导刷机的教程也很多,要区分版本。开始差点刷成EMMC的了。确实很详细,而且针对移动的rax3000m专门做的。
2025-04-27 03:46:25
1069
原创 WebSocket
写这个是因为前阵面试被问到,当时有点懵逼。。所以下来也简单学习一下。原始的HTTP流程是一来一回的,这样导致很多业务没法开展或者开销很大,比如聊天室。虽然20年前就有聊天室了,但是当时是在网页上设置的定时轮询。比如2秒自动更新,这样的问题就导致服务器要频繁建立连接,而且每次都要带上整个HTTP头。websocket的好处就是全双工,类似于底层的socket,建立了一次之后直接用就行了,不用在去建立TCP的链接,此外,每个数据包是二进制的,也不用发整个http头,减少了带宽需要。
2025-04-26 03:31:14
172
原创 安卓学习24 -- 网络
(出处见水印)这两张是能找到的比较清楚的图。目前可以看出,底层的网络业务,还是传统的linux内核提供。在安卓上增加的两个比较重要的部分分别是ConnectivityService和netd。这两个都是在system分区。通过socket和底层通信。systemvendorinit.rcConnectivityService提供上层封装给app,通过binder连接netd,netd封装了底层网络功能和驱动HAL。
2025-04-20 04:34:45
69
原创 ALSA架构学习2(驱动MAX98357A)
之前其实写过两篇,一篇是讲ALSA,一篇是I2S。ALSA架构学习1(框架)_alsa框架学习-CSDN博客总线学习5--I2S_max98357接喇叭教程-CSDN博客在ALSA那篇的结尾,也提了几个小练习。比如:### 4. **定制音频驱动程序**- **目标**: 开发一个简单的 ALSA 驱动程序,用于控制一个虚拟或简单的音频硬件设备。
2025-04-19 02:15:49
408
原创 Android学习22 -- perfetto
在之前的工作中就偶尔见到同事分析性能的时候,拿出漂亮的火焰图,或者XX图,当时非常惊讶,觉得怎么可以做这么好。后面看多了,才知道这个原来是安卓的perfetto工具,专门用来分析性能的。所以现在自己也玩玩。
2025-04-12 04:05:29
470
原创 VSCode必学必会(2)
之前写过一个1,最近发现还有一个真的很重要,遇到过好多次了,就是launch.json。详细的可以看官网,这里也简单总结一下。还有一个tasks.json。这部分感觉没那么复杂,暂时就不写了。
2025-04-11 02:57:26
384
原创 FC的传奇
其实也不是说一开始就成功,在70年代参与开发了ColorTV Game 6 与 ColorTV Game 15,游戏有《太空狂热》和《雷达显示器》,有的成功,有的失败。慢慢打磨总归还是能出头。事实上任天堂,索尼,MD这些日本玩家对现代IT产业影响真的很深远,当年不是索尼,也许也没有英伟达的今天。有人说是因为日系封闭,不过这个也难说,如果任天堂把FC,SFC开源,也许没几天就被中国,韩国的低成本给干趴下。之前其实看过pyboy的一部分源码,当时就对里面的很多细节,sprite,tile的很多细节很惊叹。
2025-04-07 02:09:29
282
原创 LDD3学习11--番外1(用VSCode调试KO)
首先查看板子的内核版本然后去下载接近的历史版本之后进行prepareMakefile编译完成之后push上去,依然失败。。。已经是下载的6.6的版本,但是小版本不对,依然无法加载。突然感觉基于设备的固件,找代码来反向出调试版本,可能是一个无法完成的任务。。。算了,明天直接在树莓派上编译吧,然后还是在windows上用VScode调试。
2025-04-03 03:35:27
728
原创 Linux的perf
在Linux下,其实有好多种性能工具,我看的多就是htop,strace/ptrace,perf,还有最近兴起的BPF。其实按照之前的经验,一般只要框架靠谱,程序实现的靠谱,一般真的很少遇到性能问题,反而是逻辑问题比较多,比如一个漏掉的分支处理,导致行为异常或者是崩溃。不过既然有perf这个工具,还是简单看看呢。首先还是比较一下htop,perf和BPF的差异。。主要用来分析整体性能,占用的CPU,内存等。基本等同于windows下的任务管理器。。用来分析具体一个程序。优化代码,提高效率。。
2025-03-29 03:12:25
138
原创 KMP算法
很久之前,大概毕业一两年的时候,当时对写算法有点兴趣,于是自己写了一个strstr,用C写的,想破头也没什么特别的算法,最后也差不多是遍历,找到第一个字符后依次匹配。写了两天差不多完工,但是效率比当时MFC自带的函数查了非常远,大概好几倍吧。所以后面也放弃了这种自己写库函数的想法了。最近看leetcode,看到KMP算法,所以也想学一下。找了一个普通的txt文件,大概是2M多。找寻里面的NFC关键字。运行设备是树莓派5(4GB版本)。
2025-03-16 00:11:10
103
原创 Brian Kernighan算法
最近看到一个题,就是算一个int里面有多少个1。这个还是挺常用的,也不难,就是判断最后一位是不是1,然后移位,很快就能给答案。二进制是110,那么-1就是101,再&之后就是100(4)。仔细看看这个什么意思呢,关于位操作,之前其实写过一篇。之后-1就是011,再&之后就是000。其中关键的就是这句n &= (n - 1);相比以前要硬循环31次,确实巧妙了一些。主要是内存用的不是很好。也就是n = n & (n - 1);只有两个位都是1时,结果位才是1。本质就是跳过了0,每次只处理1。
2025-03-15 18:27:33
188
原创 Hello Vulkan
简单的介绍如下:Vulkan 是一个跨平台的高性能图形和计算 API,由 Khronos Group 开发,旨在提供更高效的硬件控制和更低的 CPU 开销。与传统的 OpenGL 相比,Vulkan 提供了更细粒度的控制,支持多线程渲染,适用于现代 GPU 架构,广泛应用于游戏、虚拟现实、科学计算和移动图形等领域。Vulkan 的设计目标是最大化性能,同时保持跨平台兼容性,支持 Windows、Linux、Android 等操作系统。从主页可以看到很多精美的图,貌似都是Vulkan生成的。
2025-02-26 03:35:14
119
原创 CMake小结2(PICO为例)
构建系统现在真的太多了,完全学不过来的感觉,meson,gardle,buildroot, Maven。。。我是真的有点放弃治疗了。之前其实CMake主打过一阵,不过那时还忙着GT的事情,所以基本上是混过来的。也没有太认真去看。最近在看FreeRTOS,用的板子是pico,首当其冲遇到的问题就是编译环境,没想到这里用的也是CMake,前两天尝试增加了一点东西,但是报错很多。看来这次这玩意是绕不开了,结合树莓派的手册,这次就详细再看看吧。有个实际的高手的项目看,也比自己瞎学强多了。。
2025-02-25 03:17:46
484
原创 LDD3学习9--USB驱动2(Device HID实操)
最近又在看RTOS,刚好两个东西可以一起看了。。。那就是在树莓派PICO上弄一下基于RTOS的USB device。这次的例子是HID。其实想做的还是树莓派PICO的UAC device,不过先看看HID也可以。。。
2025-02-24 03:08:10
433
原创 影子跟读法
但是最后犹豫的除了钱还有一个月时间,是我在B站上看到的一个学员反馈,说菲律宾那边虽然英语算半个母语,但是其实也没有那么好,那些语言学校普遍工资不高,英语老师的水平也不是太好,普遍也就是雅思6.5的水平,也就是说如果你的雅思到了6,再去学效果就没那么好了。### 录音对比 在练习过程中或结束后,录下自己的跟读音频,与原音频进行对比,仔细找出发音、语调、语速、停顿等方面的差异,分析存在的问题,如哪些音发得不准确、语调是否太平直等,并针对性地加以改进,也可以将每次跟读录音保存下来,观察自己的进步情况。
2025-02-24 01:45:21
940
原创 搭建Windows下的嵌入式开发环境
我之前不管是在家里还是在公司,主要的开发环境都是Windows+远程linux服务器。主要是Windows下交叉编译环境问题很多,速度貌似也不如linux。远程操作使用putty或者mobaxterm,文件用SFTP或者SAMBA,一直也还行。不过最近真遇到一个问题,那就是调试嵌入式linux内核和驱动。因为我的开发编译环境是建在远程的腾讯云,但是要调试内核,要么就是QEMU去模拟,如果是设备,就必须得接上才行。最近看到windows下的wsl,感觉挺方便的,能解决我的问题,所以试着搞一搞。
2025-02-14 03:07:57
263
原创 RTOS基础1(FreeRTOS+树莓派PICO环境)
最近遇到很多需要RTOS的项目,正好也有点时间,自己也有点兴趣,开发板环境啥的都有现成的,所以也就学习一下。
2025-02-05 16:45:36
286
原创 Android学习21 -- launcher
之前在工作中,第一次听到launcher有点蒙圈,不知道是啥,当时还赶鸭子上架去和客户PK launcher的事。后来才知道其实就是安卓的桌面。本来还以为很复杂,毕竟之前接触过windows的桌面,那叫一个复杂。。。后面查了一下,Android的桌面倒是没那么复杂,本质其实就是一个App,系统启动之后跑起来的第一个app。
2025-02-04 18:37:43
1664
2
原创 Android学习20 -- 手搓App2(Gradle)
后面谷歌说不要用aapt,d8这些来搞。其实不想弄Gradle的,不过想着既然开始了,就多看一些。之前写过一篇Gradle,不过是最简单的编译,不涉及到安卓。现在既然环境都搭建了,索性在上一篇的基础上一起弄弄Gradle看。
2025-02-04 02:27:13
879
原创 Android学习19 -- 手搓App
之前工作中,很多时候要搞一个简单的app去验证功能,Android studio又过于重型,之前折腾gradle堪称噩梦。所以搞app都只有找应用的同事帮忙。一直想手搓一下,趁着现在有时间,终于体验了一把。我的环境是windows10,实验设备没有用虚拟机,用了一个安卓平板,荣耀平板5。
2025-02-03 23:37:47
1960
原创 Android学习23 -- multimedia
这个部分我没有太仔细去研究,图片都是来自(整体看看Android的多媒体系统),就算原文是正确的,考虑到安卓更新速度快,有些内容可能已经更新了。。。
2025-01-26 15:25:08
124
原创 低通滤波的实践(PWM)
写这个其实是做RP2040 USB声卡的一部分。因为现在树莓派5板子没有3.5的音频输出了(树莓派3的板子反而有),所以想自制一个USB声卡,通过这个制作,打算学一下制板,USB/UAC,RTOS。。。都是我很感兴趣的内容。这个声卡应该能写好几篇文章。。。网上也看了不少USB声卡,硬件部分都提到有两个部分,1是要做电流放大。2是低通滤波。所以这次先看的这两个部分。我不是真正的硬件出身,很多内容也是刚开始学习。如果内容有误或者太粗浅还见谅。
2025-01-25 02:34:23
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人