自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 libevent HTTP server源码详解 以及TCP server 编写

最近在项目中设备需要作为http服务端,这里采用了libevent,来分析一下其源码,先提供示例程序int main(int argc, char **argv){ struct evhttp *http_server = NULL; short http_port = 8081; char *http_addr = "0.0.0.0"; event_init(); //事件初始化 http_server = evhttp_start(http...

2021-06-30 15:22:23 746

原创 Linux源码解析——可执行文件从生成到加载

首先我们拿一个很简单的程序test1.c为例#include"test1.h"//#include<stdio.h>int del(){ return 0;}int main(void){ int a = DIV; const char* p =(char*)del; // printf("del 0x%lx\n",(u_int64_t)p); while(1); return 0;} 将这么一个程序编译成可执...

2021-04-13 18:30:14 338

原创 ISO14443A读卡流程

RFID有很多种协议,我们这里要讲的是ISO/IEC14443A。 读卡流程我们可以从两个角度进行分析,一个是读卡器(PCD),另一个是卡片(PICC) 上述是卡片状态变化图(参考《射频卡协议ISO14443》)POWER OFF : 卡片缺少载波能量,简单的说卡片没有进入到天线发射的范围内。在有足够多能量后,卡片就会进入...

2020-04-14 16:59:24 7963 1

原创 Arm Linux 内存管理(一)————开启MMU

首先我们根据vmlinux.lds可以找到内核入口函数为stext,我们就直接从stext开始,主要干了几件事情1.safe_svcmode_maskall r9 //设置CPU运行模式为SVC,并关中断 2.bl __vet_atags //验证atags或者dtb是否有效 3.bl __create_page_tables ...

2020-04-08 16:00:03 1260

原创 Linux驱动 I2C总线

这里以rk3288为例子,使用的是linux4.14,根据设备树节点i2c与rk3x_i2c_driver,match之后,就会调用对应的probe(rk3x_i2c_probe),这里主要就是注册一个adapt(i2c_add_adapter),也就是i2c控制器,或者说是i2c主设备,既然是主设备,就需要提供读写的能力,以及SCL的时钟:1.i2c->adap....

2020-03-31 16:35:46 419

原创 基于Freertos Heap4的Realloc的编写

由于发现FreeRTOS(v9.0.0)中并没有对realloc进行支持,所以就自己写了pvPortRealloc函数。 首先先谈谈Heap4内存管理机制,由xStart为头结点,pxEnd为尾节点构成的一条链表。用来描述ucheap数组中尚未分配的地址块。这些地址块按照地址从小到大插入到链表中。 当使用pvPortMalloc 申请N个字节数据时,首先会...

2018-10-26 16:13:40 3392 3

空空如也

空空如也

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

TA关注的人

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