- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 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
原创 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
原创 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人