kernel hexdump分析 (2.0)】的更多相关文章

有的时候print_hex_dump_bytes循环打印很多信息的时候(大于1K) 用UART串口打印的信息总是会有丢失,估计是printk缓冲区的问题把,具体原因不是太清楚 于是自己写了个比较笨的dump函数,问题得到解决: //每次打印128个字节(当然你也可以打印更多),只调用一次printk , // 而 print_hex_dump_bytes 则 最多32个字节 就调用一次printk static void dumpBuf(void * buf) { unsigned char *…
驱动调试中,很多时候是二进制的,这个时候hexdump就是个非常有用的工具了. 不要再自己去实现类似的功能,kernel代码里面就有: 参考: kernel/lib/hexdump.c // 0Xxx转换成 ASCII ,实现简单巧妙 const char hex_asc[] = "0123456789abcdef"; #define hex_asc_lo(x) hex_asc[((x) & 0x0f)] #define hex_asc_hi(x) hex_asc[((x) &…
u-boot 加载 kernel 的流程分析. image重要结构体头文件 // include/image.h * * Legacy and FIT format headers used by do_bootm() and do_bootm_<os>() * routines. */ // 这是正bootm 头部结构体 typedef struct bootm_headers { /* * Legacy os image header, if it is a multi component…
详细分析  MINIX消息机制的核心: mpx386.s start.c proc.c 保护模式分析: src/kernel/exception.c src/kernel/protect.c src/kernel/klib386.s src/kernel/klib.s src/kernel/main.c src/kernel/misc.c src/kernel/i8259.c 含了一些debug下的dump机制: src/kernel/dmp.c 驱动相关代码分析: src/kernel/dri…
转自:https://zohead.com/archives/linux-kernel-kfifo/ 本文同步自(如浏览不正常请点击跳转):https://zohead.com/archives/linux-kernel-kfifo/ kfifo 是 Linux kernel 中的一个通用队列实现,对于 kernel 中常见的 FIFO 队列应用还是很有用的,本文主要简单介绍分析下 Linux kernel kfifo.实际上 ChinaUnix 上有个 kfifo 的分析文章,但已经比较老(基…
绝大多数 iOS 开发者在学习 runtime 时都阅读过 runtime.h 文件中的这段代码: struct objc_class { Class isa  OBJC_ISA_AVAILABILITY; #if !__OBJC2__ Class super_class                                        OBJC2_UNAVAILABLE; const char *name                                       …
连接池的含义,很多都知道,比如mysql的数据库连接是有限的,一开始连接mysql创建N个连接,放到一个容器里,每次有请求去容器中取出,取出用完再放回去. es3demo里,有mysql的连接池. EasySwooleEvent::30行,执行initialize方法会注册一个MysqlPool::class MysqlPool是继承于AbstractPool的只实现了createObject方法来创建mysql连接对象 AbstractPool这个抽象类,里我们分析下2个函数getObj和re…
demo在手,总得去试试看效果吧.我们先把默认的服务改成webserver,并且添加数据库的配置. 建立数据库,github里面有相关内容 CREATE TABLE `user_list` ( `userId` int(11) NOT NULL AUTO_INCREMENT, `account` varchar(45) NOT NULL, `password` varchar(45) NOT NULL, `session` varchar(45) DEFAULT NULL, `addTime`…
以下内容需要结合es的源码,不然可能会觉得跳跃.先描述下es启动的大致流程.es启动的时候注册异常处理函数以及加载配置文件.根据位置文件的设置选择启动哪种swoole服务.然后用一个事件注册类,注册swoole服务需要的回调函数handler. 在启动前根据配置文件是否启动consoleTcpserver子服务.其他服务可以在EasySwooleEvent::mainServerCreate中注册.es3和es2的区别,es3支持协程以及更加组件化.分为了http组件rpc组件等 根路径的执行路…
swoole已经升级到4了,主要的特性是更好的支持协程,easyswoole也为了更好支持协程推出了es3.我本地环境是php7.2.9 centos7 在github下载最新的3.0的demo.地址为:https://github.com/easy-swoole/demo git下载demo注意分支要是3.x  在xshell中选择执行路径输入:git clone -b 3.x https://github.com/easy-swoole/demo.git demo 安装依赖    cd de…