Archive

keep hungry keep foolish
2024

使用 supabase 注册和登录

使用 supabase 提供的 saas 能力实现注册和登录功能


Web 的 CSRF 防护

使用 node.js 后端的 CSRF 程序


2023

bazel 的使用

本地构建以及使用 buildbuddy 远程构建


2022

Linux 共享终端的方法

使用 ttyd 共享任意进程


各系统共享网络的方法

windows 和 linux 共享网络给 qemu


VSCode+gdb+qemu 调试 linux 内核

断点可视化调试 x86_64 linux 内核


Docker 运行 GUI 程序

wslg + docker-desktop 环境下在容器中运行 gui 程序


2021

Matlab 建模和代码生成

Simulink 绘图,Coder 生成代码


WSL2 上编译本地 linux 内核模块

编译简单的 hello.ko


Go Web 编程

使用 Go 语言创建 Web 应用


markdown 使用 mermaid 绘制图表

介绍一种易上手的 markdown 图表


最常见的排序算法——归并排序

介绍一种采用分治法的典型排序算法


bRPC 的使用

介绍百度的工业级 RPC 框架


ROS 的安装使用

初步体验 ROS


gRPC 的使用

介绍一种语言中立的远程过程调用工具 gRPC


protobuf 的使用

介绍序列化和反序列化工具 protobuf


解决 github 克隆慢的问题

git clone 以及 git submodule update --init 不成功的解决方法


golang 入门

从零学习 go 语言


搭建本地 Git 服务器

基于 WSL2 后端 docker 搭建 GitLab、Gitea


uboot 流程分析

配置 uboot 的 vscode 工程以及流程分析


关于 uboot 的小知识

启动参数、制作 u-boot 补丁、dd 烧写等


关于 arm 的小知识

指令集、arm 核命名等


熟悉 openwrt 环境

掌握如何编写、编译 openwrt 程序包


搭建 armv7(musl 库)容器环境

交叉编译的程序放在容器中运行


Buildroot 用户手册

2020.02 中文版


使用 Dockerfile 制作容器镜像

标准办法进行制作


补充 ubuntu-base 上的软件包

按需补充软件包


tcpdump + wireshark 配合使用进行抓包分析

tcpdump 抓包,wireshark 解析


编译和使用 gdb

在 linux 和 arm 上跑 gdb


mosquitto 的基本编译

windows、linux、arm 三端编译


docker-desktop 使用 WSL2 后端

安装桌面版 docker 并启用 WSL2 支持


使用 zsh 一个更好用的终端

介绍在 ubuntu 上 zsh 的安装和使用


初探 RPC 远程过程调用

简单的跨平台远程调用示例


第三方库通过 cmake 加到主工程上的一种方法演示

多个开源软件以 fetchcontent_declare 的方法进行加载


VS2019 编译几个开源软件

编译常用的几个开源软件


2020

跨平台 LVGL 工程的搭建

使用开源库搭建跨平台的工程


串口、链表等的常见问题以及好用工具技巧

介绍几个疑难问题及解决


守护进程 C 语言版

介绍一个我的守护进程


在 Linux 上驱动 RTC 的方法

内核自带的 RTC 驱动


Linux 驱动常用函数

列举一些常用的函数


Linux 用户态控制 GPIO

交互式控制 GPIO


Linux 设备树小记

记录一些设备树的关键知识


Linux 中的虚拟网络

TUN、TAP 和 bridge


制作 run 安装包

将脚本和二进制打包在一起


初步学习 LVGL

从官方文档上学习 lvgl,包括小工具的使用和组件的绘制


编写简单 fb 驱动

一步步编写 linux fb 驱动


使用 VSCode 编写轮询按键驱动

工程的展示和驱动的编写


制作 ubuntu-base 根文件系统

制作 arm 根文件系统,并用 qemu 仿真


QEMU 仿真入门

学习使用 QEMU 运行 arm


linux 根文件系统启动的第一个程序

一些操作系统(linux 内核)启动的基础知识


使用低版本的交叉编译器

从 linaro 官网下载使用


WSL2 运行 GUI 程序

在 Windows X Server 上显示 Linux GUI 程序


Rust 编程入门

菜鸟入门 rust


在 Windows 上安装 Rust(MSVC)

基于 MSVC,即 VS 上的编译器


Linux 和 Windows 上安装 CMake

CMake 的安装和简单使用


VS离线包制作以及搭建LVGL模拟器环境

在 Windows Eclipse C/C++ 以及 VS2019 下搭建模拟器环境


使用 VSCode 工作区提高多项目效率

介绍工作区,以及项目下的启动和任务的配置


在 Win 和 Linux 上安装NTP服务器

安装 NTP 服务器和问题的解决


MQTT 系列:一、抓包浅析

Windows 平台下使用 Wireshark 抓包解析


MQTT系列:二、初探和使用库

Ubuntu 下编写 MQTT 应用程序


VSCode 远程调试嵌入式终端

使用 gdbserver 进行远程调试


新装 WSL2 以及安装 docker 和 code_server

关于如何新装和使用 WSL2


建立Gitee图床配合PicGo使用

Gitee 作为图床,PicGo 负责上传


在本地搭建一个图片上传站

GitHub 作为图床,本地搭建一个上传站


从立创 EDA 导出封装到 AD20

导出元器件原理图、PCB 到 AD20,并生成集成库


Git 安装和简单使用

学习 Git 的安装和初步使用


解决 github 访问以及 github pages 图片显示问题

修改 dns 或通过 hosts 进行重定向


从零docker-设置容器开机启动

在Ubuntu19.10上安装开机启动的ssh容器Ubuntu18.04


2019

Linux C系统编程练习题库

每天练一练,活到九十九


从零docker-创建iTop4412开发环境

使用docker创建开发环境


RockPiS-上手操作

购买到Rock Pi S后的必要操作


从零docker-基础操作

简单总结docker的安装和使用


从零开始Pytorch-自动求导

第一个pytorch程序


深漂两年,一个单片机小白转职Linux的曲折之路

为Linux打call


多线程的简单使用

简单探究多线程的使用


输入子系统简单应用

简单探究Linux输入子系统的使用


USB鼠标驱动简单示例

USB鼠标移动产生中断执行定义好的函数


USB相关驱动的移植

USB转串口驱动,USB转WiFi驱动等的移植


24_设备树获取按键信息

在设备树中建立button节点,编写简单驱动进行测试


【综合】实战智能网关

开发板做网关,Ubuntu做服务器,Windows(串口)做客户端


23_设备树控制LED灯

在设备树中建立led节点,编写简单驱动进行测试;以及使用pinctrl的方式控制led灯


21_搭建设备树编译环境以及镜像烧写

介绍在Ubuntu12.04、WSL-Ubuntu18.04中搭建设备树编译环境,以及镜像烧写


22_设备树建立简单节点及其测试

在设备树中建立简单节点,编写简单驱动进行测试


20_内核定时器的使用

了解内核定时器及其使用


18_I2C的使用

介绍如何读取和写入i2c芯片的数据寄存器


19_SPI的使用

介绍SPI读写rc522内部的reg


16_定时器的使用之输出PWM

介绍产生PWM控制无源蜂鸣器


17_GPIO外部中断的使用

介绍使用GPIO上升下降沿触发外部中断


15_解决驱动中的竞态

介绍解决驱动竞态的方法


14_通过寄存器控制led灯

介绍不使用库函数而使用寄存器的方式控制led灯


13_【综合】完整的字符驱动和测试程序

一个完整的字符驱动和测试程序


12_注册字符类设备以及生成设备节点

注册设备号后,通过静态/动态内存的方式注册字符设备,然后生成设备节点。


10_insmod时给模块中变量传值

实现加载模块时给模块中变量传递单个值、一组值


11_申请字符类设备号

通过静态和动态的方式申请设备号


实现Web控制Led灯

基于boa服务器和led驱动实现同网段控制led灯


BOA服务器的移植

介绍在Ubuntu12.04和iTop4412上BOA服务器的移植


实现网络应用:ftp、tftp、nfs

基于最小linux实现网络数据传输和共享


使用BusyBox搭建最小文件系统

搭建一个在iTop4412上运行的最小文件系统


Linux C语言常用库函数

介绍常用库函数的作用


Linux 网络通信之UDP

介绍网络通信的使用


Linux 网络通信之TCP

介绍网络通信的使用


Linux 进程信号的应用

介绍进程信号的使用


Linux 进程通信之ipcs

介绍进程间通信(ipcs)包括:消息队列、信号量、共享内存


Linux 进程通信之有名管道FIFO

介绍进程之间通过有名管道FIFO通讯


Linux 进程通信之无名管道

介绍进程之间通过无名管道通讯


Linux fork进程

介绍进程fork的简单模板


使用ssh工具连接到WSL(Windows子系统)

系统编程的准备工作 这里我使用的是Windows子系统进程学习


9_【综合】编写LED控制驱动和系统应用

完整的LED驱动和上层控制应用


8_编写系统程序调用驱动

编写一个控制台应用进行控制底层设备


7_生成设备节点

在dev目录下生成可操作的设备节点文件


M3的终极,思想的开端

干货放送,给你介绍俏皮的代码和优秀的编程模型


0_一些程序包的安装和使用

介绍一些基础工具的安装和使用


1_ARM Linux开发第一步

学习之前你应该准备的环境


2_Linux驱动开发理解

关于驱动该如何理解的内容


3_掌握必要的烧写系统的技能

使用制作好的TF卡或者fastboot进行烧写系统


4_关于编写驱动那些事

编写驱动前的小实验,将led驱动不编译进内核


5_编写一个Linux驱动模板

编写最简单的驱动模板


6_以module的方式注册设备

以模块的方式注册设备,这样的模块可自由加载和卸载