自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 内核符号表及模块层叠技术

公共内核符号表中包含了所有的全局内核项(即函数和变量)的地址,这是实现模块化驱动程序所必须的。如需获取文中的测试程序源码,可通过后台回复获取!在hello.ko模块中引用hello_print_comm.ko模块所导出的符号。本文将简单介绍驱动模块之间如何互动,调用其他模块的接口资源 ......当模块被装入内核后,它所导出的任何符号也会变成内核符号表的一部分。insmod会使用公共内核符号表来解析模块中未定义的符号。内核符号表及模块层叠技术。

2023-07-16 12:38:53 445

原创 简单的驱动模块及参数传递

简单的驱动模块及参数传递本文将简单介绍如何编写一个简单的驱动模块,并介绍如何向驱动模块传递参数的方法。在进行驱动模块设计时,可通过参数传递动态配置驱动模块,以达到灵活配置的目的。如需要设计一个复杂的驱动模块,有些参数需要软件动态配置。那么就可以定义一个配置文件,把这个配置文件的路径传递给模块。在驱动模块加载时,根据配置文件定义的参数,配置当前的驱动模块,以达到灵活配置的目的。如何向模块传递参数?Linux kernel 提供了一个简单的框架。val,参数名。

2023-07-16 12:36:09 390

原创 关于驱动模块你需要知道的事情

公共内核符号表用于解释模块内未定义的符号,它包含了所有的全局内核项(函数和变量)的地址;导出内核符号表加以使用,可以建立模块间的依赖关系(模块层叠技术);驱动提供机制,应用实现策略模块运行于内核空间,应用程序运行于用户空间模块运行时,分配的栈很小,注意栈溢出具有。具有两个下划线前缀(__)的函数,通常是底层组件的接口,需要谨慎使用。模块运行于内核空间,应用程序运行于用户空间。模块运行时,分配的栈很小,注意栈溢出。

2023-07-16 12:26:39 387

原创 反汇编调试-从寄存器级看程序运行

当子函数返回时,恢复保存在栈中的寄存器的值(通过直接修改pc寄存器的方式(在恢复现场的时候,把原lr保存的值赋值给pc实现),实现子函数返回。当子函数返回时,恢复保存在栈中的寄存器的值(通过直接修改pc寄存器的方式(在恢复现场的时候,把原lr保存的值赋值给pc实现),实现子函数返回。说明主函数在调用子函数保存下一条指令的地址到lr寄存器中;跳转到子函数保存pc、lr、ip、fp四个寄存器的。保存pc、lr、ip、fp四个寄存器的值到内存中;保存pc、lr、ip、fp四个寄存器的值到内存中;

2023-07-08 00:07:45 538

原创 反汇编调试之分析OOPS

反汇编调试之分析OOPS。希望本文可以帮助到大家!

2023-07-07 23:40:21 545

原创 Linux系统之Platform设备驱动

当我们把platform驱动注册到platform总线时,platform总线会根据platform驱动的参数,查找与之匹配的设备。当存在与驱动匹配的设备时,总线将会把设备和驱动绑定。其中resource结构体就是用于登记相关的硬件资源信息,如资源的类型、资源的地址空间等等,这里将不展开叙述,有兴趣的朋友可以查阅注册platform设备的相关代码。当我们的platform驱动注册后,platform总线将驱动与总线上的设备进行匹配,当匹配属性一致时,驱动将与该设备进行绑定,并执行。

2023-07-06 00:56:04 1450

原创 I2C总线及协议解析

https://mp.weixin.qq.com/s?__biz=Mzg3NDkwMjc2NA==&mid=2247483698&idx=1&sn=ab2f2094e0bd53052226fff8737389c6&chksm=cec8e4b1f9bf6da7424588c12ca140bbc2becefab123792c0b9d82cd472173b1bb9cadb5411f#rd

2023-07-05 10:58:34 662

原创 SPI总线及协议分析

在常规的四线模式下,SPI通过MOSI和MISO完成数据的双向传输(全双工)。定义SCK信号的第1个边沿,对应的MISO的电平为从机输出到主机的第1个有效数据,对应的MOSI的电平为主机输出到从机的第1个有效数据。定义SCK信号的第2个边沿,对应的MISO的电平为从机输出到主机的第1个有效数据,对应的MOSI的电平为主机输出到从机的第1个有效数据。完成数据传输后,最后1个时钟周期的第2个边沿需要维持(tT),才能取消片选。完成数据传输后,最后1个时钟周期的第2个边沿需要维持(tT),才能取消片选。

2023-07-05 10:56:26 668

原创 AM335x系统启动分析

对于片上执行设备,可以直接运行程序,不需要借助芯片内部的SRAM,跑完ROM Code直接跳转到XIP运行uboot.bin,完成bootloader的过程。这个头部信息的作用与MLO的头部信息相似,其作用是记录当前镜像的一些基本信息,帮助MLO完成把boot.img加载到内存的任务。镜像的格式定义如下,MLO镜像的头部需包含4个字节的长度信息、4个字节的目标地址信息,这里的目标地址就是加载地址和入口地址。这是芯片内置的一段启动代码,这段代码会根据启动引脚的配置,完成芯片运行所必须的一些组件的初始化。

2023-07-05 10:54:13 785 1

空空如也

空空如也

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

TA关注的人

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