自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DD'Notes

DD'Notes https://notes.z-dd.online/

  • 博客(184)
  • 资源 (4)
  • 收藏
  • 关注

原创 PulseAudio与蓝牙音频

PulseAudio与蓝牙音频 | DD'NotesPulseAudio与蓝牙音频背景Linux下面是怎么使用蓝牙音频的呢?今天我们一起来看看,通过命令行使用 PulseAudio 来联动蓝牙音频。PulseAudio与Bluetooth音频PulseAudio的所有蓝牙功能都依赖于BlueZ,此外,HFP支持还需要oFono。PulseAudio 支持3个主要的和音频相关的蓝牙profiles: A2DP (Advanced Audio D。

2024-04-19 14:46:21 648

原创 Linux内核中的格式化打印

内核中的格式化打印 | DD'Notes背景最近在调试个异常卡死的问题时,需要打印某个pcie link的,故学习了下内核里的打印,特此记录。内核中的格式化打印主要分为整型和指针。整型signed char%d or %hhx unsigned cha。

2024-04-19 14:44:53 534

原创 Linux内核调试工具之Kprobes简单使用

Linux内核调试工具之Kprobes简单使用上次看了下Kprobes的相关概念:Linux内核调试工具之Kprobes相关概念,这里看看它的简单使用 配置Kprobes内核需要打开以下配置: CONFIG_KPROBES = y #保证能加载和卸载基于Kprobes的模块 CONFIG_MODULES = y CONFIG_MODULE_UNLOAD = y #kprobes例子:内核源码/samples/kprobes/kprobe_example.c。Linux内核调试工具之Kprobes简单使用。

2024-04-08 10:34:19 780

原创 Linux内核几个重要文件之System.map

System.map是编译内核时生成,它记录了文件内核中的符号列表,以及符号在内存中的虚拟地址,这里的符号可以理解成函数名和变量。System.map文件不是一成不变的,每次编译内核都会重新生成System.map文件。链接: https://notes.z-dd.online/2024/03/21/Linux%E5%86%85%E6%A0%B8%E5%87%A0%E4%B8%AA%E9%87%8D%E8%A6%81%E6%96%87%E4%BB%B6%E4%B9%8BSystem.map/

2024-04-08 10:33:20 535

原创 Linux内核调试工具之Kprobes相关概念

Linux内核调试工具之Kprobes相关概念 | DD'NotesLinux内核调试工具之Kprobes相关概念背景及概念Kprobes: Kernel Probes 背景 开发人员在内核或者模块的调试过程中,往往会需要要知道其中的一些函数有无被调用、何时被调用、执行是否正确以及函数的入参和返回值是什么等等。比较简单的做法是在内核代码对应的函数中添加日志打印信息,但这种方式往往需要重新编译内核或模块,重新启动设备之类的,操作较为复杂甚至可能会破坏原有的代码执行。

2024-04-08 10:30:50 849

原创 基于QEMU搭建RISC-V的Linux环境

基于QEMU搭建RISC-V的Linux环境 | DD'Notes基于QEMU搭建RISC-V的Linux环境背景和之前搭建x86的类似(基于QEMU的内核调试环境搭建),只是需要交叉编译即可,重点其实是在交叉编译工具链。前提:QEMU已安装好!准备工具链RISC-V支持GNU工具链和LLVM工具链,目前主流Linux发行版好像都没有预编译的二进制包可以下载安装,只能自己通过源码编译安装。获取工具链源码$ git clone https://gitee.c。

2024-04-08 10:29:46 984

原创 让Windows成为更好用的Linux发行版之WSL2折腾NFS

让Windows成为更好用的Linux发行版之WSL2折腾NFS | DD'Notes让Windows成为更好用的Linux发行版之WSL2折腾NFS背景生命不息,折腾不止。前段时间,为了让WSL更好地来开发Linux和OH,折腾出了一系列文章: WSL2相关 wsl2上折腾docker 解决WSL2网络和存储问题 上次把WSL2的网络弄好了,最近就准备将开发环境更进一步,开始折腾NFS。以为和Ubuntu主机上搭建NFS一样(嵌入式Linux基础开发环境搭建),简单的一条命令。

2024-04-08 10:25:47 923

原创 使用GDB和VSCode调试内核

使用GDB和VSCode调试内核 | DD'Notes使用GDB和VSCode调试内核背景上一篇,已经搭建好QEMU的内核调试环境:https://notes.z-dd.online/2024/03/06/%E5%9F%BA%E4%BA%8EQEMU%E7%9A%84%E5%86%85%E6%A0%B8%E8%B0%83%E8%AF%95%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/ 这篇主要在前面的基础上尝试用gdb来调。

2024-04-08 10:23:28 774

原创 基于QEMU的内核调试环境搭建

基于QEMU的内核调试环境搭建 | DD'Notes基于QEMU的内核调试环境搭建背景在没有相应的实体硬件,只有自己的一台开发机器,在学习内核或是调试破坏性大的内核功能时,又不想用庞大麻烦的Virtualbox或VMware,只是简单单纯地调试下内核,QEMU是个不错的选择。关于QEMU QEMU is a generic and open source machine emulator and virtualizer. When used as。

2024-04-08 10:21:46 869

原创 解决WSL2网络和存储问题

链接: https://notes.z-dd.online/2024/02/24/%E8%A7%A3%E5%86%B3WSL2%E7%BD%91%E7%BB%9C%E5%92%8C%E5%AD%98%E5%82%A8%E9%97%AE%E9%A2%98/网络配置问题,主要是不能从外部局域网访问wsl网络,这使得用板子没法挂载wsl里的nfs和使用tftp,网上有些间接的办法解决了这个问题,但很麻烦,懒得去折腾。新的 23H2 系统版本已经直接解决了上面的问题,但我的系统一直未收到相应的正式版的更新推送。

2024-02-29 11:05:20 400

原创 MMC和SD与SDIO

MMC和SD与SDIO以前一直不太清楚SDIO、SD卡、MMC等之间的区别和联系,偶然间在 蜗窝 上看到下面这幅图,才算稍微有点清晰明了: MMCMMC(Multimedia Card)是一种协议或者规范,规范了卡的形状尺寸,通讯协议等内容,符合MMC协议的卡叫做MMC卡,即多媒体卡 两种操作模式,分别为MMC模式与SPI模式 eMMCeMMC (Embedded Multi Media Car。,microSD/TF、SDHC、SDXC等这些都是SD卡的进化版。两个可选的通信协议:SD模式和SPI模式。

2024-02-29 11:04:16 407

原创 端侧AI系列之瑞芯微RV1126及RKNN

开始这一切的前提条件是软硬件都已调通OK,可以正常使用的板子,这里主要涉及RKNN及其应用,不涉及硬件驱动调试及系统调试 RV1126简介RV1126基于四核arm Cortex A7 32位内核,集成NEON和FPU。链接: https://notes.z-dd.online/2024/01/09/%E7%AB%AF%E4%BE%A7AI%E7%B3%BB%E5%88%97%E4%B9%8B%E7%91%9E%E8%8A%AF%E5%BE%AERV1126%E5%8F%8ARKNN/

2024-02-29 11:02:47 1149

原创 OpenHarmony南向之编译构建框架

概述OpenHarmony编译子系统是以GN和Ninja构建为基座,对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能扩展的系统,该系统提供以下基本功能: 以部件为最小粒度拼装产品和独立编译。编译子系统通过配置来实。链接: https://notes.z-dd.online/2024/01/03/OpenHarmony%E5%8D%97%E5%90%91%E4%B9%8B%E7%BC%96%E8%AF%91%E6%9E%84%E5%BB%BA%E6%A1%86%E6%9E%B6/

2024-02-29 10:56:44 456

原创 OpenHarmony南向之PWM背光

背光驱动模型也是基于HDF框架开发的,整个框架如下: 现在以RK3568为例,来看看PWM背光整个驱动,这里使用的是PWM占空比控制的背光,默认基于hdf的pwm驱动已经OK!链接: https://notes.z-dd.online/2023/12/07/OpenHarmony%E5%8D%97%E5%90%91%E4%B9%8BPWM%E8%83%8C%E5%85%89/现在以RK3568为例,来看看PWM背光整个驱动,这里使用的是PWM占空比控制的背光,默认基于hdf的pwm驱动已经OK!

2024-02-29 10:52:13 365

原创 OpenHarmony南向之TP触摸屏

OpenHarmony南向之TP触摸屏概述Touchscreen驱动用于驱动触摸屏使其正常工作,该驱动主要完成如下工作:对触摸屏驱动IC进行上电、配置硬件管脚并初始化其状态、注册中断、配置通信接口(I2C或SPI)、设定Input相关配置、下载及更新固件等操作。链接: https://notes.z-dd.online/2023/12/06/OpenHarmony%E5%8D%97%E5%90%91%E4%B9%8BTP%E8%A7%A6%E6%91%B8%E5%B1%8F/来源: DD'Notes。

2023-12-11 14:12:21 122 1

原创 OpenHarmony南向之LCD显示屏

OpenHarmony南向之LCD显示屏概述LCD(Liquid Crystal Display)驱动,通过对显示器上下电、初始化显示器驱动IC(Integrated Circuit)内部寄存器等操作,使其可以正常工作。HDF Display驱动模型 LCD器件驱动是显示框架最底层的部分。链接: https://notes.z-dd.online/2023/12/05/OpenHarmony%E5%8D%97%E5%90%91%E4%B9%8BLCD%E6%98%BE%E7%A4%BA%E5%B1%8F/

2023-12-11 14:11:15 305

原创 OpenHarmony南向之Camera简述

OpenHarmony南向之Camera简述 | DD'NotesOpenHarmony南向之Camera简述Camera驱动框架该驱动框架模型内部分为三层,依次为HDI实现层、框架层和设备适配层: HDI实现层:实现OHOS(OpenHarmony Operation System)相机标准南向接口。框架层:对接HDI实现层的控制、流的转发,实现数据通路的搭建,管理相机各个硬件设备等功能。设备适配层:屏蔽底层芯片和OS(Operation System)

2023-12-04 14:11:10 142

原创 wsl2上折腾docker

wsl2上折腾docker | DD'Noteswsl2上折腾docker背景上次重新整了下电脑上的WSL2: https://notes.z-dd.online/2023/11/07/WSL2%E7%9B%B8%E5%85%B3/ 现在需要在上面弄下docker,以为和在真机上一样,后来发现还有比较大的差异,所以在此记录下 环境: Windows 11 家庭中文版(22H2) WSL2(2.0.9.0) WSL Ubuntu20.04发行版wsl2上折腾docker。

2023-12-04 14:08:31 132

原创 WSL2相关

在逛OpenHarmony开发者论坛的时候,看到使用WSL2编译OpenHarmony,突起想起自己之前在自己的Windows的电脑上也捣鼓了一下WSL2,装了个Ubuntu20.04,然后一直就扔在那没用,今天正好再继续弄弄。链接: https://notes.z-dd.online/2023/11/07/WSL2%E7%9B%B8%E5%85%B3/Microsoft Store搜索Ubuntu对应版本,这里选的是20.04,安装。适用于 x64 计算机的 WSL2 Linux 内核更新包。

2023-11-23 13:47:39 36

原创 OpenHarmony之系统调用

OpenHarmony之系统调用背景对于运行L0系统的硬件一般是mcu,资源有限,L0系统没有区分内核态和用户态,所有的代码都在内核态运行,所以不需要系统调用L2系统用的是Linux内核,所以系统调用跟Linux Kernel的是一样的。链接: https://notes.z-dd.online/2023/11/06/OpenHarmony%E4%B9%8B%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8/所以我们主要来看看L1系统中系统调用机制的是怎么实现的。

2023-11-23 11:27:45 82

原创 OpenHarmony南向之Audio

OpenHarmony南向之Audio音频架构Audio驱动框架基于HDF驱动框架实现,包含内核态(KHDF),和用户态(UHDF), 对北向提供音频HDI接口 音频框架图 驱动架构主要由以下几部分组成。drivers/hdf_core/framework/model/audio及 device/board/xxx/yyy/audio_drivers等: ADM相关驱动,KHDF部分。Audio驱动框架基于HDF驱动框架实现,包含内核态(KHDF),和用户态(UHDF), 对北向提供音频HDI接口。

2023-11-23 11:25:33 98

原创 OpenHarmony之分布式软总线

OpenHarmony之分布式软总线背景概述从之前的文档(OpenHarmony之内核层)可知, 分布式软总线是多设备终端的统一基座,为设备间的无缝互联提供了统一的分布式通信能力,能够快速发现并连接设备,高效地传输任务和数据。分布式软总线实现近场设备间统一的分布式通信管理能力,提供不区分链路的设备间发现连接、组网和传输能力,主要功能如下: 发现连接:提供基于Wifi、蓝牙等通信方式的设备发。│ ├── common # 适配层管理,网络适配,协议适配等。

2023-11-23 11:23:34 417

原创 Android之摄像头框架简介

Android之摄像头框架简介 | DD'NotesAndroid之摄像头框架简介Android Camera HAL每个Soc厂家的HAL实现不一样,以前主要基于V4L2,openMAX等,如TI等,后面随着Android相机功能越来越多,运用越来越复杂,都形成了自己独有的一套架构,比如高通Camx架构,MTK的MtkCam3架构等 Camx架构: MtkCam3: 新版HAL3从 Android 8.0 开始,相机 HAL 实现必须使用https://notes.z-dd.online/2023/11/

2023-11-23 09:29:12 66

原创 Linux之摄像头简述

Linux之摄像头简述 | DD'NotesLinux之摄像头简述Linux下与摄像头相关的部分主要分有以下几类: V4L2/Media框架,包括UVC MPP框架 ISP V4L2/Meida框架 V4L2 This driver emulates video4linux hardware of various types: video capture, video output, vbi capture and output,

2023-11-23 09:25:39 131

原创 USB Gadget 与 Configfs

USB Gadget 与 Configfs | DD'NotesUSB Gadget 与 Configfs USB Gadget 与 Configfs USB Gadget Configfs 使用configfs配置usb gadget 配置UAC 配置adb功能 参考 USB Gadget A USB Linux Gadget is a device which has a UDC (USB Device Controller) an。

2023-11-01 16:16:30 181

原创 OpenHarmony之HDI

HDI(Hardware Device Interface,硬件设备接口)是HDF驱动框架为开发者提供的硬件规范化描述性接口。通过规范化的设备接口标准,为系统提供统一、稳定的硬件设备操作接口。HDI支持“IPC模式”及“直通模式”两种调用方式。IPC模式即跨进程通信模式,基于binder机制实现,调用端通过Proxy代理库调用HDI接口,具备良好的解耦性和安全性,是标准系统的默认部署方式。

2023-11-01 16:11:29 121

原创 OpenHarmony之hdc

OpenHarmony之hdc | DD'NotesOpenHarmony之hdc简介 hdc(OpenHarmony Device Connector)是 OpenHarmony 为开发人员提供的用于调试的命令行工具,通过该工具可以在Windows/Linux/MacOS等系统上与开发机或者模拟器进行交互。类似于Android的adb,和adb类似,使用hdc的前提是开发机器hdc工具已安装好,设备端hdc已安装且已配置好。开发机HDC开发简介。

2023-11-01 16:10:08 236

原创 OpenHarmony之消息机制实现

OpenHarmony之消息机制实现 | DD'NotesOpenHarmony之消息机制实现背景在之前的介绍(OpenHarmony之HDF驱动框架)中,了解到OpenHarmony的消息机制主要有以下两种: 用户态应用发送消息到驱动。用户态应用接收驱动主动上报事件。下面我们分别来看看两种机制用户态的流程及实现 用户态应用发送消息到驱动用户态主要代码struct HdfIoService *serv = HdfIoServiceBind(SAM。

2023-11-01 16:08:04 34

原创 OpenHarmony之HDF驱动框架

HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载、驱动服务管理、驱动消息机制和配置管理。并以组件化驱动模型作为核心设计思路,让驱动开发和部署更加规范,旨在构建统一的驱动架构平台,为驱动开发者提供更精准、更高效的驱动管理的开发环境,力求做到一次开发,多系统部署。驱动加载HDF驱动框架提供把和配置的设备列表匹配成功的驱动程序加载起来的功能驱动服务管理。

2023-11-01 16:05:52 161

原创 OpenHarmony之内核层

OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。OpenHarmony技术架构如下所示:技术特性硬件互助,资源共享主要通过下列模块达成分布式软总线分布式软总线是多设备终端的统一基座,为设备间的无缝互联提供了统一的分布式通信能力,能够快速发现并连接设备,高效地传输任务和数据。分布式数据管理。

2023-11-01 16:02:37 23

原创 初识鸿蒙系统

初识鸿蒙系统 | DD'Notes初识鸿蒙系统目录 初识鸿蒙系统 目录 概要 OpenHarmony 与 HarmonyOS HarmonyOS Next HarmonyOS 应用开发 ArkCompiler 设备开发 OpenHarmony 思考 参考 概要初识鸿蒙系统系列: 初识鸿蒙系统 OpenHarmony之内核层(内核、驱动子系统) OpenHarmony之HDF驱动框架 Open大家听到的鸿蒙系统有两个:HarmonyOS 和 OpenHarmony,但这两个系统是不同的概念。

2023-11-01 15:54:16 66

原创 Kconfig相关

。。。。Kconfig相关 | DD'NotesKconfig相关背景以前准备写一下Linux内核里的Kconfig,但一直迟迟没有动手,最近在看 Openharmony 相关的东西,发现它也可以通过Kconfig和Kconfiglib进行可视化配置,所以想借此机会在这一起记录一下 作用#define配置宏主要用来使能/关闭代码,如下面: #define CONFIG_TEST_ENABLE #ifdef CONFIG_TEST_ENABLEt=N7T8。

2023-08-30 21:10:25 47

原创 OpenHarmony基于HDF简单驱动开发实例

OpenHarmony基于HDF简单驱动开发实例背景 OpenHarmony-3.0-LTS qemu_small_system_demo liteos_a qemu 添加配置device/qemu/arm_virt/liteos_a/hdf_config/device_info/device_info.hcs device_info 新增: sample_host :: host。OpenHarmony基于HDF简单驱动开发实例 | DD'Notes。

2023-08-30 21:08:47 55

原创 Linux之IR驱动

红外遥控成本很低,以前广泛应用在电视,空调等电器的控制上面,现在随着蓝牙遥控器慢慢普及,红外遥控越来越少,但在某些场景,还保留着红外通信 红外属于media子系统里面的rc(remote control)模块,所以相关驱动代码目录为 drivers/media/rc/ 相关内核文档: Docume。红外遥控成本很低,以前广泛应用在电视,空调等电器的控制上面,现在随着蓝牙遥控器慢慢普及,红外遥控越来越少,但在某些场景,还保留着红外通信。下面就从红外的接收、发送和编解码协议简单记录下。

2023-08-30 21:04:13 330

原创 Linux之PWM风扇驱动

Linux之PWM风扇驱动背景该驱动主要是用于PWM模块去驱动散热风扇,使用通用的PWM接口,只要主控Soc的PWM模块使用的是标准通用的PWM框架,则可以适用于任何主控Soc,与具体的硬件无关。该驱动主要是用于PWM模块去驱动散热风扇,使用通用的PWM接口,只要主控Soc的PWM模块使用的是标准通用的PWM框架,则可以适用于任何主控Soc,与具体的硬件无关。Linux之PWM风扇驱动 | DD'Notes。

2023-08-30 21:02:07 571

原创 USB转串口CH343驱动

USB转串口CH343驱动背景在网上用9.9淘的一块ESP32-C3(RISC-V)的小开发板上,用的CH343的USB转串口。最近打算学习用Rust开发ESP32-C3,在Ubuntu上搭建开发环境的时候发现,Ubuntu20.04上默认使用的是 CDC-ACM 驱动,即生成的节点为/dev/ttyACM0,但是用Rust开发ESP32-C3,需要使用 VCP 驱动,于是在网上找到了官方(WCH。在网上用9.9淘的一块ESP32-C3(RISC-V)的小开发板上,用的CH343的USB转串口。

2023-08-30 20:59:52 824

原创 Rust简单开发环境搭建

Rust简单开发环境搭建整个环境搭建默认在X86的Linux环境(Ubuntu)下进行 环境搭建首先,要熟悉下 Rust 的几个基本东东: rustup: Rust 版本管理器 cargo: Rust 包管理器 rustc: Rust 编译器 安装使用官方推荐的rustup方式进行安装,使用下面的一条命令即可: curl --proto '=https' --tlsv1.2 -sSf http。整个环境搭建默认在X86的Linux环境(Ubuntu)下进行。Rust简单开发环境搭建 | DD'Notes。

2023-05-23 15:28:06 227

原创 Rust之cargo简单熟悉

为什么需要这个cargo?cargo是Rust的包管理器,Rust的包分为2种,一种是二进制可执行的包,一种是库的包,默认情况下就是第一种binary包 在Rust里,一个库或者可执行程序叫做一个crate,一般简单情况。在Rust里,一个库或者可执行程序叫做一个crate,一般简单情况下,我们可以直接使用Rust的编译器rustc来编译这个crate,但如果编译这个crate需要许多编译参数,包含许多依赖,或者需要其他构建工具,手动去操作就会很麻烦,而且也很难管理,这样包管理器cargo就应运而生了。

2023-05-23 15:26:59 134

原创 fb的notifier

最后发现是CONFIG_FB=y配置没打开,导致hall传感器驱动里的fb的notifier没起作用,从而使获取的 suspend/resume 的状态异常,具体的细节不在这详述了,这里主要想扩展并记录下这个fb的notifier。最后发现是CONFIG_FB=y配置没打开,导致hall传感器驱动里的fb的notifier没起作用,从而使获取的 suspend/resume 的状态异常,具体的细节不在这详述了,这里主要想扩展并记录下这个fb的notifier。fb的notifier | DD'Notes。

2023-05-08 14:19:42 112

原创 spidev相关

spidev相关背景有时候会发现,一些外挂的spi的flash或者外设用了spidev这个驱动,没有适配特定的驱动,到底spidev是个啥呢?链接: https://notes.z-dd.online/2023/04/17/spidev%E7%9B%B8%E5%85%B3/有时候会发现,一些外挂的spi的flash或者外设用了spidev这个驱动,没有适配特定的驱动,到底spidev是个啥呢?商业转载请联系作者获得授权,非商业转载请注明出处。spidev相关 | DD'Notes。

2023-04-23 17:13:32 144

多变量卡诺图化简的算法实现

多变量卡诺图化简的算法实现,网上淘的。。。

2011-03-30

JS实现在一个按钮上动态显示文字的效果

JS实现在一个按钮上动态显示文字的效果,在网上摘的,,有点用哦

2011-03-30

c51写的日历时钟程序

用C写的51程序,日历时钟的,也是在网上淘的,和大家分享分享。

2011-03-12

华为硬件工程师手册()

华为硬件工程师手册,里面收录很多经验,,也是网上淘到的。。和大家分享哈

2010-09-22

空空如也

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

TA关注的人

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