自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 I2C (六) linux I2C 用户空间驱动

read write /************************************************************************* > File Name: i2c-user.c > Author: Sues > ...

2019-04-30 15:07:59

阅读数 61

评论数 0

原创 SPI (四) linux SPI 调试

SPIDEV 用户空间spi驱动 驱动配置 // 注意 ,spidev.c 中的 spidev_probe函数 一定要执行 spidev.c 修改 static const struct of_device_id spidev_dt_ids[] = { { .compatible ...

2019-04-30 13:13:28

阅读数 238

评论数 0

原创 安卓与C代码 (一) 安卓中添加C可执行程序源码

安卓中添加C可执行程序源码 参考 frameworks 中 添加 testing 目录 frameworks/testing$ ls -R .: Android.mk hello ./hello: Android.mk hello_test.c $ cat Android.mk in...

2019-04-30 11:43:43

阅读数 250

评论数 0

原创 内核模块 (一) 杂谈

初衷 为什么要添加内核模块功能 宏内核微内核 模块与模块之间的交互 EXPORT_SYMBOL() EXPORT_SYMBOL_GPL() 内核导出的符号表可以通过 cat /proc/kallsyms 查看 如果一个文件是由多个文件组成,文件之间的交互不需要 export 模块参...

2019-04-29 12:40:56

阅读数 100

评论数 0

原创 内核模块 (二) LKM加载

open("printk_test.ko", O_RDONLY|O_LARGEFILE) = 3 // 打开二进制文件,文件描述符为3 read(3, "\177E", 2) = 2 // 打开并读取两个字节, &...

2019-04-28 23:32:52

阅读数 72

评论数 0

原创 内核模块 (三) 安卓环境下编译ko文件

Makefile ifneq ($(KERNELRELEASE),) # ko 文件名 不能与 目标文件名 相同 MODULE_NAME = lkm_test obj-m := $(MODULE_NAME).o #目标文件名 # file1.o file2.o dir1/file3.o $...

2019-04-28 19:22:30

阅读数 274

评论数 0

原创 示波器 (一) 杂谈

1/开机 2/打开通道,并显示 3/设置电压幅度,设置时间幅度(取决于你量的信号) 4/接线 5/ 先跑一下信号,看一下情况 6/ 设置触发

2019-04-27 15:59:11

阅读数 188

评论数 0

原创 驱动 (3.1) 在kernel中申请内存

kmalloc kzalloc kcalloc Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别 kzalloc()_kcalloc 内核中申请内存的函数 p = kzalloc(GFP_KERNEL); kfree(p); #define mallo...

2019-04-25 22:56:16

阅读数 182

评论数 0

原创 进程

进程 进程诞生 为了充分利用系统资源 主要进程 idle 内核线程 init 内核线程 init 用户线程 kthreadd 内核线程 进程控制块 0.进程属性相关 state : 进程状态 pid : 进程位移的进程标识符 .int类型 flag : 进程属性标志位,...

2019-04-21 20:15:08

阅读数 29

评论数 0

原创 驱动中私有数据的存放

bdd struct device { void *platform_data; /* Platform specific data, device core doesn't touch it */ void *driver_data; /...

2019-04-21 10:17:34

阅读数 149

评论数 0

原创 总线设备驱动模型之platform

platform 设备 匹配 drivers/base/platform.c platform_match 函数 static int platform_match(struct device *dev, struct device_driver *drv); struct platform_...

2019-04-21 09:03:28

阅读数 37

评论数 0

原创 总线设备驱动模型之i2c

i2c 设备 匹配 drivers/i2c/i2c-core.c static int i2c_device_match(struct device *dev, struct device_driver *drv); struct i2c_client *client = i2c_ver...

2019-04-20 22:37:49

阅读数 47

评论数 0

原创 驱动 (5) 并发与同步

内核并发1.0 并发分为真并发和伪并发 真并发 1. 多cpu(SMP) 伪并发 2. 进程调度(进程与进程) 3. 中断与进程 内核并发2.0 归根接地就是这三种原因 中断 调度 SMP 但是 1. 解决 中断 矛盾问题引入了软中断,也就引入了 软中断 产生的竞态 2. 在...

2019-04-20 12:08:15

阅读数 47

评论数 0

原创 网卡 (一) 硬件 wifi芯片

wifi芯片导读 厂商 代表芯片 标准 频段 速率 功能 应用 博通(Broadcom) BCM4334 802.11b/g/n 2.4/5GHz 150Mbps WiFi+BT4.0+FM 智能手机,平板电脑 高通(Qualcomm) QCA4004 802.11n 2.4...

2019-04-14 16:01:43

阅读数 246

评论数 0

原创 硬件上电时序

上电时序关注点 是 毫米级还是微秒级 5M hz 是 0.2 * 10^-6 s, 0.2 微秒, 200 纳秒 50M hz 是 0.02 * 10^-6 s, 0.02 微秒, 20 纳秒 500M hz 是 0.002 * 10^-6 s, ...

2019-04-13 20:28:37

阅读数 850

评论数 0

原创 ps命令

综述 ps 命令用来查看 进程信息 help ps --help all man ps cheat ps ps 功能 基础选项 -A -a a -d x 过滤 -C <command> command name -p, p, --pid <...

2019-04-13 10:45:18

阅读数 30

评论数 0

原创 查看进程的相关信息

整体信息 ps -e |grep xxx // 显示全部进程 pe -ef |grep xxx // 显示全部进程及 父进程及命令行 ps -e |grep xxx | awk '{print $1}' // 显示 进程的id ps -ef |grep krfcomm...

2019-04-12 08:11:58

阅读数 65

评论数 0

原创 网卡 (八) 前几篇中介绍的协议存在的问题以及解决方案

如果tcp ip 协议 只包括 udp ip arp 看来也能通信 但是为什么 tcp ip 协议 搞这么复杂呢? 我们先看一下 前几篇中介绍的协议存在的问题 1. 目标主机网络是否可用 2. ip层及udp层默默丢包,但发数据一方想要知道ip丢了包,以及为什么丢包 3. 包的顺序 4....

2019-04-07 22:33:30

阅读数 43

评论数 0

原创 网卡 (十四) LWIP 应用层 dhcp

dncp 动态主机设置协议(英语:Dynamic Host Configuration Protocol 协议 第一次上电 1. 客户端寻找 Server DHCP discover   当 DHCP 客户端第一次登录网络的时候,也就是客户发现本机上没有任何 IP 数据设定,它会向网络...

2019-04-07 15:23:55

阅读数 74

评论数 0

原创 网卡 (十三) LWIP 应用层MQTT

mqtt协议 推送,订阅协议 LWIP2.0.2 & FreeRTOS & MQTT 客户端的 使用 订阅流程 main struct mqtt_connect_client_info_t ci; memset(&ci, 0, sizeof(ci)); ...

2019-04-07 14:01:55

阅读数 381

评论数 1

原创 网卡 (十二) LWIP 应用层 HTTP

一个基于lwip netconn的HTTP Client // 地址,方法,recv buff WebClient("http://ticks.applinzi.com/lwip/get.php?origin_price=2&real_price=6", NULL, ...

2019-04-07 12:20:14

阅读数 259

评论数 1

原创 命令时间

显示命令执行时刻 export HISTTIMEFORMAT='%F %T' history 显示命令执行过程时间 time cmd real 0m0.016s user 0m0.002s sys 0m0.003s

2019-04-05 16:36:20

阅读数 65

评论数 0

原创 SPI (三) linux SPI

spi platform drvier 匹配 _probe 中 devm_spi_register_master spi_register_master of_spi_register_master of_register_spi_devices ...

2019-04-05 00:28:18

阅读数 132

评论数 0

原创 GPIO (二) linux gpio

gpio硬件 gpio硬件部分 无非就是上拉下拉,电平,gpio功能,寄存器设置 gpio 功能 可能是普通的gpio ,也可能是 串口, pwm 功能,中断,中的一个或者复用. 每个gpio 都通过几种寄存器来配置, 第一个配置的寄存器一般是 CON寄存器,用来选择一个功能. 上下拉 芯...

2019-04-05 00:16:13

阅读数 131

评论数 0

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