自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 2.Klipper开发篇:Klipper上位机源码分析

从Klipper执行流程和指令传输路线理清Klipper整个源码架构和运行逻辑,理解klipper是如何启动运行的?指令是从哪里获取,去哪里执行?它如何响应人机交互?又如何推送信息?

2025-05-15 17:10:33 914

原创 2. python协程/异步编程详解

协程(coroutine):类似一种轻量级的多线程程序,是在一个线程里面,实现多任务并行执行的编程方式。相比多线程,它在切换任务时,CPU开销更低,速度更快。

2025-04-29 23:36:07 751

原创 4. Klipper之开发篇:API服务器Moonraker的源码分析

Moonraker是Klipper API的实现工具(服务),要想使用显示屏或者网页端(Fluidd或Mainsail)访问Klipper,都需要启动Moonraker服务,因为网页或者显示屏访问Klipper,实际就是将它们的HTTP访问请求变成访问Klipper的Unix Socket,需要Moonraker在中间转换。

2025-04-27 15:12:56 928

原创 1. python开发小笔记

本文件记录一些实用的python小知识,会一直更新

2025-04-18 17:58:57 333

原创 RK356x-11:在win11的WSL中开发SDK

-install第一个参数就是注册后解释器的名称,可以通过update-binfmts --display name来查看注册信息的,name就是第一个参数,第二个参数是解释器的路径;在SDK文档中有说明需要安装哪些依赖包,注意,有的包在WSL中是不支持的,因此,需要安装其它替代软件,且后面开发需要对相关脚本进行调整。在WSL中,不要安装更高的版本,之前试过Ubuntu24.04版,不行,虽然SDK中建议安装Ubuntu20.04以上版本,实际上新版ubuntu有很多不兼容的问题,只认准22.04即可。

2024-12-25 00:00:05 669

原创 10. 虚拟机VMware Workstation Pro下共享Ubuntu和Win11文件夹

本文记录当前最新版虚拟机VMware Workstation Pro如何在win11下共享文件,以实现Windows与Ubuntu互传文件的目的。

2024-12-20 16:10:25 678

原创 9. Win11上原生运行Ubuntu

本文介绍如何在win11原生系统上运行ubuntu,不需要额外安装虚拟机,以及如何配置网络等

2024-12-11 19:25:10 1741

原创 8. Debian系统中显示屏免密码自动登录

本文介绍如何在Debian系统上,启动后,自动免密登录,不卡在登录界面。

2024-12-03 18:53:24 1055

原创 2. AD23创建元件(集成)库

本文为初学者介绍如何使用AD创建元件库工程,并应用到电路中,用到的软件版本是AD23

2024-11-29 13:47:08 2497

原创 1. Klipper从安装到运行

本文记录Klipper固件从安装,配置到运行的详细过程

2024-11-23 18:42:32 5672

原创 RK356x-10:串口(uart)配置与调试

本文记录RK3566/RK3568通用异步串口(uart)的配置与调试过程。

2024-11-23 16:38:39 1098

原创 RK356x-9:根文件系统复制和打包

很多时候,SDK生成的根文件系统只是最原始的系统,要进行项目上的工作,可能还需要安装很多软件,可是,在批量生产时,不可能每个系统都得去装,一种办法是在一个系统上装了所有必须的软件,再将这个系统打包进新的SDK生产的烧录文件中,这样的文件被烧录后,启动就自带了所有必须软件,那如何实现呢?

2024-11-16 17:26:10 537

原创 RK356x-8:Wifi模块AP6xxx配置与调试

本文记录如何根据原理图,配置和调试RK356x(测试用RK3566)主板上wifi/蓝牙模块(测试用AP6212,rkwifibt),使其能正确连网。

2024-11-16 15:54:30 2232

原创 RK356x-7: 以太网RTL8211配置和调试

在RK356x-SDK中,如何配置以太网RTL8211呢?

2024-11-11 22:50:30 1683

原创 RK356x-6: mipi触摸屏的配置和调试

本文详细记录在基于RK356x-SDK最小系统上,配置mipi接口的触摸屏,调试直到完全正常显示的过程,让和我一样的新手无压力搞定mipi显示屏在RK356x芯片上的应用。mipi触摸屏配置,分两部分,一部分是显示屏,一部分是触摸板。注意,本文配置涉及到两个设备树文件,是在《RK356x-SDK开发入门》中自定义的:rk3566-test.dtsi和rk3566-test-base.dtsi。

2024-11-09 19:55:08 1498 1

原创 RK356x-5: 最小系统配置和运行

让SDK编译出一个最小系统,至少要在自己的电路板上运行起来

2024-11-09 15:47:15 489

原创 RK356x-4. RK356x-SDK开发入门

要对一个SDK进行定制化二次开发,首先得理解它的编译逻辑,配置参数如何影响编译行为,各模块是如何配合工作的。

2024-11-06 15:10:13 961

原创 1. 电路中抗干扰设计涉及到的常用元件

电路中抗干扰设计涉及到的常用元件

2024-10-10 21:28:52 461

原创 7.Linux常用命令2

命令env,sed,find,awk,grep的用法

2024-09-02 17:32:49 322

原创 RK356x-3. 第一次编译SDK和烧录

3.2 在windows上解压RKDevTool.tar,在RKDevTool\RKDevTool_Release下,找到对应芯片的.cfg文件,删除默认的config.cfg,复制一份该芯片的.cfg并重命名为config.cfg。由于是按默认配置编译了固件,并烧录,因此,它可能与主板的实际电路不一致,因此,尽量不要运行太多,可能因为电源域不一致造成IO损坏,下一节,将介绍如何配置与硬件一致的固件。parameter.txt 参数保存文件,由厂商写入,通常烧录地址0x00000000处。

2024-08-22 18:32:27 1770

原创 RK356x-2. SDK开发环境搭建

1. 启动一台装有Ubuntu的电脑(或虚拟机),SDK需要用到python,因此使用命令which python查看当前python存不存在,Ubuntu默认安装了python3,因此which python可能查不到python存,可以使用which python3查看当前python是否存在。SDK官方只支持在Linux系统上进行编译,因此,需要一台装有Linux系统的电脑,一般使用Ubuntu系统,这样可以进行可视化编程,同时可以使用强大的开发工具:vscode。至此,开发环境搭建结束!

2024-08-19 23:30:31 898

原创 RK356x-1. 系统引导过程及各部分固件分区

4.2 kernel启动在init/main.c中的函数start_kernel()函数,它先初始化各外设,定时器,系统时钟,中断向量表(及相关中关例程),内存管理,系统cache,进程通信机制等后,调用rest_init()来进行最后的初始化。1.3 当读取所有外部存器设备ID失败后,自动进入MaskRom模式,注意,上电时,如果MaskRom引脚被拉低(一般做成按键),则不从任何外设读取ID,直接进入MaskRom模式,该模式接收USB-c下载固件到eMMC等外部存储设备中。

2024-08-15 16:24:19 1061

原创 6.Linux的U盘自动挂载

U盘插到运行Linux的主板后,可以直接在某一目录通过ls查看到U盘里面的文件,如何实现?有两种方式可以实现,一种是用udev服务来管理U盘的插拔,一种是自写脚本,通过不断刷描/dev/serial里面U盘端口是否存在以确定U盘已经插入。

2024-07-24 18:49:15 3172 3

原创 5. Linux脚本编写

Linux脚本可以被认为是按一定的语法规则将一系列指令组织起来的指令集合。它能实现的功能比简单的命令行要丰富很多,因为脚本可以实现函数,循环,条件跳转等功能。

2024-07-13 20:41:55 295675

原创 4. Linux服务:如何写一个Linux服务

Linux服务是一组常驻内存运行,为有权限的使用者提供及时数据或功能的后台程序。通常所说的服务是由systemd service启动的,因此服务进程是systemd进程fork()出的子进程,通过systemd.exec配置子进程环境,再调用ExecStart指定的服务启动命令,启动服务进程,然后systemd监控这个进程,直到它退出。要让linux运行一个自定义服务,通常需要三步:1.写服务要实现的基本功能,通常是一个脚本或执行命令(可执行程序);

2024-07-13 14:28:23 1350

原创 3. Vim使用

3.8 /name查找name,光标跳到相应处,/^name查找以name开头的词,/name$查找以name结尾的词,/na..e 这里.代表任意一个字母,找na且隔两个字符后面是e的词,/na*e 这里*代表若干字符,找到na跟若干字符后接e的词。vim是常见于linux各版本的文本编辑器,很多linux发行版可能没有nano,但基本都能装一个vim,因此它比较通用,处理一些简单的脚本和配置够用了,这里记录最基本的用法,很多高端的用法平时根本用不着,咱们主打一个实用,实用为王,够用就行!

2024-07-11 15:12:41 317

原创 2. Windows直接连接Linux,Vscode远程可视化开发Linux

1 查看win10上的ssh客户端:旧版本在设置->应用->可选功能,新版本设置->系统->可选功能:找到OpenSSH客户端,如果没有找到,说明未安装,在本页面找到“添加功能”,在里面找到OpenSSH客户端,并安装它。3. 安装ssh服务端:旧版在设置->应用->可选功能,新版在设置->系统->可选功能,找到OpenSSH服务器,如果没有,则需要在本页的“添加功能”中,找到OpenSSH服务器,将其安装好。7. 连接后,在File->Open Folder中,就可以打开linux下的工程文件夹了。

2024-07-06 11:28:50 941

原创 1. linux日常

scp是从一个linux主机复制到另一个linux主机,它的基本格式是:scp[选项]本地文件名远程用户名@IP地址:远程文件名。将windows的E盘temp文件夹下的klipper.zip复制到/home/ysz下。一个文件的权限就是文件相对于各用户开放的权限,r可读,w可修改,x可执行。-m自动在/home下创建与用户名相同的家目录。-r自动删除ysz相关家目录,日志等。

2024-04-08 14:28:02 775 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除