自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

铁头小哥的博客

学习笔记

  • 博客(15)
  • 资源 (2)
  • 收藏
  • 关注

原创 设备树reg-shift属性

16550 UART设备节点中的reg-shift属性记录。

2023-05-09 11:18:53 463

原创 Linux内核启动流程head.S文件中ENTRY(_start)/END(_start)指令

查看arch/riscv/kernel/vmlinux.lds链接脚本,第二行就是ENTRY(_start),故_start本是Linux内核入口函数,ENTRY(_start)常见于链接脚本文件,何故出现在此.S文件中,查找以后发现,本质一样只是在封了一层。END(_start)分析和上面一样,可在include/linux/linkage.h文件中找到。见Linux5.4/arch/riscv/kernel/head.S,"…"表示省略部分代码。

2023-03-29 16:59:48 576

原创 word(字)等于多少字节?

word等于多少字节?

2022-10-12 10:39:51 2315

原创 波特率和比特率

波特率和比特率

2022-08-03 10:43:51 1193

原创 Linux regmap机制(一)

Linux regmap机制在Linux下开发WDT驱动时候参考某源代码时候发现devm_regmap_init_mmio_clk()函数的使用,故深入探究一下。什么是 RegmapLinux 下大部分设备的驱动开发都是操作其内部寄存器,比如 I2C/SPI 器件的本质都是一样的,通过 I2C/SPI 接口读写器件内部寄存器。芯片内部寄存器也是同样的道理,比如STM32的 PWM、TIM 等外设初始化,最终都是要落到寄存器的设置上。例如,Linux 下使用 i2c_transfer 来读写 I2

2022-03-08 10:19:33 1931

原创 module_platform_driver()

在Linux设备驱动开发过程中,在定义且初始化好platform_driver结构体变量以后,我们需要向 Linux 内核注册一个 platform 驱动。下面介绍两种方法。方法一:/*** 在驱动入口函数里面调用platform_driver_register函数,platform_driver_register函数* 原型如下所示:*/int platform_driver_register(struct platform_driver *driver)// driver:要注册的 p.

2022-03-02 15:33:43 6051

原创 DMA Engines之Scatter-Gather DMA

DMA Engines之Scatter-Gather DMA在实现PCIe总线传输时看到有Scatter-Gather DMA运输方式,特此记录一下。首先对常规的DMA基本知识进行简单描述DMA(Direct Memory Access)即直接内存访问,无需CPU干预情况下即可直接由DMA模块硬件实现数据的快速传输。由于DMA传输方式不需要CPU参与,没有取指令、取数据等CPU操作,因而传输数据更快。早在8086的应用中就已经有了Intel的8237这种典型的DMA控制器。微控制器的硬件系统一般

2022-02-17 16:53:02 1326

原创 RAM Type——Register file(寄存器堆)

RAM Type——Register file(寄存器堆)经常在一些芯片内部模块参考手册中对于其中用到的一些Buffer或FIFO的RAM Type描述为Register file,下面一些总结仅从软件角度来说,不涉及IC设计角度。寄存器堆(register file)是CPU中多个寄存器组成的阵列,通常由快速的静态随机读写存储器(SRAM)实现。这种RAM具有专门的读端口与写端口,可以多路并发访问不同的寄存器。通常的设计布局是一个简单的阵列,在水平方向的一行就是寄存器的全字长宽度,一行的每一位

2022-02-14 11:02:14 3837

原创 C语言switch case语句的case后面不能接范围?

C语言switch case语句的case后面不能接范围?

2022-01-25 17:19:53 15164 3

原创 make savedefconfig命令

make savedefconfig命令

2022-01-14 09:16:33 3618

转载 雷军:这样的程序员创业有戏

雷军曾经写的文章

2022-01-13 17:16:21 183

原创 汇编文件大写.S后缀和小写.s后缀的区别

汇编文件大写.S后缀和小写.s后缀的区别

2022-01-13 13:11:21 3641

原创 CAN总线之理论篇(一)

CAN总线是啥,CAN总线协议分析,CAN总线报文分类,CAN数据帧各段分析

2022-01-10 18:08:49 3069

原创 platform_get_resource

platform_get_resource函数在后续Linux设备驱动开发中会用到此函数,且在后续文章中会跳转过来,提前埋下种子。文中提到的《设备树如何转换成platform_device》和《Linux设备树解析》,后续会更新。platform_get_resource函数原型/** * platform_get_resource - get a resource for a device * @dev: platform device * @type: resource type *

2022-01-04 10:40:56 5820 1

原创 解剖RISC-V架构(一)

解剖RISC-V架构(一)CPU基本知识介绍:请注意区分“处理器”和“处理器核”,以及“CPU”和“Core”的概念。“处理器核”和“Core”是指处理器内部最核心的部分,是真正的处理器内核。“处理器”和“CPU”往往是一个完整的 SoC,包含了处理器内核和其他的设备或者存储器。在现实中大多数文章往往不会严格地遵循两者的差别,时常混用。CPU 的灵魂 — 指令集架构(Instruction Set Architecture,ISA)。指令集,顾名思义是一组指令的集合,而指令是指处理器进行操作

2021-12-29 11:51:08 17527 2

RISC-V官方手册和相关资料(特权架构 & 非特权架构 & 中文资料)

包含三份资料:RISC-V特权架构规范 & RISC-V非特权架构规范 & 中文手册

2022-01-20

CAN资料(CAN总线入门书(瑞萨),博世CAN总线协议官方手册).rar

CAN总线入门书(瑞萨),博世CAN总线协议官方手册

2022-01-14

空空如也

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

TA关注的人

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