- 博客(27)
- 资源 (9)
- 收藏
- 关注
原创 Linux 网络唤醒
网络唤醒流程:1. BIOS下使能wakeup on online.2. 配置ip为同一网段 S_ip = 192.168.1.11 记录对应网卡的MAC地址: 假设是00:01:02:03:04:053. 检查网卡是否启动wakeonline功能 3.1 执行ethtool enp3s0 [ ... ... Support Wake-on: pumbg Wake-on: d ... ] Wake-On: d = disable 3.2 设置使
2022-04-06 14:28:32
2598
原创 ACPI 计算热区温度方法
通过ACPI计算热区温度: 1. 由于部分批次的cpu的温度传感器读取出来的值比实际的高(10摄氏度) 只有一个版本的读出来的温度是正常的. 而如何判断批次? 通过SMRAM值: Sram值存储的在0x430寄存器中: +++ b/LsRefCodePkg/Core/SecMain/Asm/Start.S @@ -311,6 +311,11 @@ bsp_start: bl suspend_to_ram locate: +
2022-03-30 12:35:08
1331
原创 .vimrc 配置
vim ~/.vimrc" >>>>>>>> 功能相关 <<<<<<<<set nu"set mouse=a"允许backspace和光标键跨越行边界set whichwrap+=<,>,h,l" 通过使用: commands命令,告诉我们文件的哪一行被改变过set report=0"在被分割的窗口间显示空白,便于阅读set fillchars=vert:\ ,stl:\ ,stl
2022-03-29 11:03:38
170
原创 Platform 总线驱动程序
1.找出内核中自带的按键驱动程序代码make menuconfig Device Drivers ---> Input device support ---> [*] Keyboards ---> < > SLsiAP push Keypad support //内核中自带的按键驱动程序不再参与编译影响变量: CONFIG_KEYBOARD_NXP_KEY路径: drivers/input/keyboard/Kconfig
2022-03-28 17:21:26
1397
原创 浅谈UEFI中VFR文件开发
废话不谈,通过三个实际的开发项目,分享一下VFR开发过程中的心得和应该注意的问题:1.Set Data And Time龙芯4000上的实现的原理: 之前4000上是在BdsDxe中实现的,熟悉Loongson平台的4000的话,我们不难看的出来:设置时间和日期的功能是在BdsDxe/BootMaint/BootMaint.c中调用BootMaintCallback实现的。在BootMaintCallback,会通过检测相关的QuestionId来进行不同的动作,比如说: case FORM
2022-03-24 17:02:20
2847
3
原创 g-sensor驱动在linux的实现
g-sensor 驱动裸板: i2c 控制器驱动 g-snesor 驱动程序 linux: i2c 控制器驱动程序 在内核中已经写好了 1.总线 i2c-core.c __init i2c_init(void) bus_register(&i2c_bus_type); struct bus_type i2c_bus_type = { .name = "i2c", .match = i2c_device_match, .
2022-03-23 10:48:22
2311
原创 linux 中的中断处理
谈谈对中断的理解1.裸板中断处理过程中断属于异常的一种它是计算机中处理异步事件的重要机制1.1 中断的触发 中断源级 配置中断的触发方式 上升沿 下降沿 高 低触发 中断使能 (监测到中断信号之后,能不能报上去) 中断控制器级 配置中断的优先级 中断使能 配置以irq frq 形式上报 配置报给哪个核 ARM core 中断的使能 I=01.2 中断的处理过程 中断异常产生硬件自动做4件事 1) 备份CPSR 2) 修改CPSR
2022-03-18 15:54:23
2896
原创 Linux 内核驱动开发--字符设备驱动
1.字符设备编程框架实现一个硬件字符设备的驱动程序实则就是实例化一个struct cdev类型的对象include/linux/cdev.h struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops;//操作函数集合 struct list_head list;
2022-03-17 14:35:07
1434
原创 Linux 内核驱动开发基础
1.裸板驱动和linux驱动的异同点 裸板驱动: uart驱动程序: uart_init uart_puts uart_gets i2c控制器驱动: i2c_start i2c_stop i2c_tx i2c_rx g-sensor驱动 mma8653_read_id mma8653_read_acc linux下驱动:英语的完型填空 需要的知识: 1) 硬件的知识 读懂电路原理图 阅读芯片的数据手册 熟
2022-03-15 12:26:28
2241
原创 优秀网站推荐
1.在线画图 https://app.diagrams.net2.获取linux内核源代码 www.kernel.org3.arm 官网 www.arm.com
2022-03-09 13:24:34
217
原创 ARM Porting
一. 什么叫移植 shell 框架 ----> x6818 (s5p6818) ----> mmmm (s5p6818) 根据硬件平台的差异,将代码进行少量的修改 就能使得该代码在目标平台上正常运行起来,该过程称作移植二. 移植内容: 2.1 移植uboot uboot 属于bootloader 的一种 它是硬件上电执行的第一个代码 类似于PC机上的BIOS 它负责为操作系统启动初始化硬件 负责加载操作系统 启动操作系统 2.2
2022-03-02 13:31:50
1105
原创 UEFI下的Gmac驱动实现
1.mac的分类:mac按照传输的速率可以分为 emac 和 gmac.mac: 它是一个controller,它的主要的作用有两个方面: 帧发送: 接受来自协议层的数据,加上控制信息,然后以位数据流的形式传到物理层. 帧接受: 接受物理层的数据流,检查是否有效,然后发送给上层协议,或者丢弃. 所以从上述描述来看,gmac控制器主要完成的工作是数据流的过滤phy: gmac 有对应的phy, 而phy是实际上操作数据的收发的.2. mac的工作模式:工作模式可以分为半双工和全双工
2022-02-26 15:42:42
2156
原创 龙芯平台切换设备状态方法
PCI & PCIE设备的电源管理一.关于PCI和PCIE设备的电源管理,有兴趣的可以阅读: PCI Express 3.0.pdf PCI_Power_Management_12.pdf 这两个文档讲述PCI电源管理的内容都比较详细,但是侧重点略有不同. 1. 在PCI_Power_Management_12里面首先讲解了ASPM系统: 主动状态电源管理(ASPM)是一种基于硬件的自主主动状态机制,它定义了Link电源管理状态, 该状态允许PCI Express物理Link
2022-02-23 13:01:58
722
原创 UEFI中USB相关驱动的实现
UEFI 中 USB相关驱动调试总结USB控制的分类: ohci uhci ehci xhci Ohci:(open host controller interface)是支持USB1.1协议标准的,但是它不仅仅针对USB设备, 还支持Apple的火线(firewire IEEE1394)接口。主要用于非x86的USB设备,如嵌入式设备的USB控制器。 Uhci:(Universall host controller interface)是Intel主导的对USB1.0 1
2022-01-25 16:11:31
1331
原创 IIC驱动程序开发
加速度传感器驱动mma86531.关于I2C (IIC) 1). I2C的定义 由飞利浦公司开发的两线式串行同步总线 通信使用两条线 一个时钟周期占一个bit位 SCL:时钟线 (区别于异步通信) SDA:数据线 2). I2C的特点 a) 互联时只有两根线,硬件互联的成本低 b) 一条IIC总线上可以接多个IIC设备, 有主从之分, 每次通信的发起和结束都有主设备决定 c) 每个从设备都有特定的从设备地址 (7bit) d) 总线上可以有多个主
2022-01-18 16:12:36
704
原创 UART驱动程序开发
UART 驱动程序开发1.基本概念UART, Universal Asynchronous Reciver and Transmitter 串行异步收发器串行通信和并行通信串行通信传输效率低,但是硬件互联成本低.并行通信并行通信传输效率高,硬件互联成本高.异步通信 同步通信的区别?串行通信**按传输方向来定义传输**的方式单工任何时候数据只能朝一个方向传输半双工数据可以朝两个方向传输,但任何一个时刻只能朝一个方向传输全双工数据可以同时两个方向传输串行接口标准: R
2022-01-12 14:45:12
570
原创 GPIO / LED驱动编程开发
GPIO ---- 驱动开发C语言回顾:1.指针:int a;a = 100;*(&a) = 100;*((int *) 0x10000000) = 100;
2022-01-11 10:22:14
862
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人