自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

原创 分析“uboot加载内核过程”

uboot 启动linux 内核过程分析

2022-07-15 11:11:07 1944 2

原创 C语言的可变参数函数

open函数有两种声明:int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);疑问:C语言不支持函数重载,怎么可以一个函数名字有两种参数列表呢?在<fcntl.h>中,这样声明:int open (const c...

2019-04-19 14:29:34 178

原创 内存节点初始化

内存节点结构体的定义typedef struct pglist_data { struct zone node_zones[MAX_NR_ZONES]; struct zonelist node_zonelists[MAX_ZONELISTS]; int nr_zones;#ifndef CONFIG_NO_BOOTMEM struct bootmem_data *bdata;#en...

2018-12-27 17:47:29 292

原创 mem_map 分析

文章目录mem_map的作用mem_map的定义dump_stack的输出alloc_node_mem_map源码分析mem_map的作用mem_map的定义/* \linux\mm\memory.c */#ifndef CONFIG_NEED_MULTIPLE_NODES/* use the per-pgdat data instead for discontigmem - mbli...

2018-12-27 17:30:00 2781

原创 nr_free_buffer_pages 算法分析

基本概念数据结构代码分析

2018-12-27 10:54:41 364

原创 min_free_kbytes 的初始化

min_free_kbytes的初始化欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出...

2018-12-27 09:13:20 2589 1

原创 linux 系统启动内存初始化

linux version: 4.9.51 build_all_zonelists_init(void){ __build_all_zonelists(NULL); mminit_verify_zonelist(); cpuset_init_current_mems_allowed();}1 __build_all_zonelists 

2018-12-22 19:30:11 373

原创 fork 的内核实现

linux/kernel/fork.c#ifdef CONFIG_CLONE_BACKWARDSSYSCALL_DEFINE5(clone, unsigned long, clone_flags, unsigned long, newsp, int __user *, parent_tidptr, unsigned long, tls, int __user *, chi...

2018-12-13 18:23:51 184

原创 getpid的内核实现

APP:int main(){ int pid; pid = getpid(); printf("[%s %d] pid: %d.\n", __func__, __LINE__, pid); return 0;} 内核入口:\linux\kernel\sys.cSYSCALL_DEFINE0(getpid){ return ...

2018-12-13 08:21:57 954

原创 sk_rcvbuff 的设定

sk-&gt;rcvbuf          :当前sock 的读写buf的最大限制(这个值是可以变化的)sk-&gt;rmem_alloc :当前sock占据的内存(这个值随着出入队skbuff的出入而变化)sk_forward_alloc:这个值表示一个预分配值,也就是整个tcp协议栈的内存cache,第一次为一个缓冲区分配 buf的时候,我们不会直接分配精确的大小,而是按页来分配,而...

2018-12-06 08:35:21 645

原创 TCP ACK报文中window_size的设定

ACK的调用流程:SyS_recv -- SyS_recvfrom -- inet_recvmsg -- tcp_recvmsg -- release_sock -- __release_sock -- tcp_v4_do_rcv -- tcp_send_ack tcp_select_window 计算window_sizeSyS_recv -- SyS_recvfrom -- i...

2018-12-03 11:43:06 2841

原创 系统调用recv的实现

文件 linux\net\socket.cSYSCALL_DEFINE4(recv, int, fd, void __user *, ubuf, size_t, size,        unsigned int, flags)SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,        un...

2018-11-29 10:52:09 913

原创 linux启动过程中 totalram_pages 的计算过程

 1 释放bootmemstart_kernel -- mem_init -- free_all_bootmem/** * free_all_bootmem - release free pages to the buddy allocator * * Returns the number of pages actually released. */unsigned long ...

2018-11-28 10:59:57 2178

原创 linux 系统启动以后,执行脚本的顺序

1 首先是 rcS#! /bin/shexport PATH=/bin:/sbin:/usr/bin:/usr/sbin:.# 挂载虚拟文件系统echo "Mounting virtual filesystems"mkdir -p /sys /proc /devmount -t proc proc /procmount -t sysfs sys /sysif grep -q...

2018-11-26 18:35:19 908

原创 read(socket) 内核实现

 [ 18.043024] [&lt;c0856dfc&gt;] (tcp_recvmsg) from [&lt;c0880964&gt;] (inet_recvmsg+0xa4/0xcc)[ 18.050551] [&lt;c0880964&gt;] (inet_recvmsg) from [&lt;c07e3bcc&gt;] (sock_read_iter+0x9c/0xe0)...

2018-11-21 17:18:01 417

原创 tcp receive data 的三个队列

Prequeue queue: struct tcp_sock { /* Data for direct copy to user */ struct { struct sk_buff_head prequeue; struct task_struct *task; struct msghdr *msg; int memory; int len; } ...

2018-11-21 14:32:19 427

原创 sk->sk_lock.owned 的设定

read的实现[ 45.024721] [&lt;c07e8104&gt;] (lock_sock_nested) from [&lt;c07e8adc&gt;] (sk_wait_data+0xa0/0x120)[ 45.032827] [&lt;c07e8adc&gt;] (sk_wait_data) from [&lt;c085711c&gt;] (tcp_recvmsg+0...

2018-11-21 09:19:28 351

原创 几个重要数据结构的关系

这几个数据结构关联在一起:tcp_sock --&gt; inet_connection_sock --&gt; inet_sock --&gt; sock --&gt; sock_commonstruct tcp_sock { /* inet_connection_sock has to be the first member of tcp_sock */ struct inet...

2018-11-21 08:21:25 325

原创 prequeue 实现

struct tcp_sock { /* Data for direct copy to user */ struct { struct sk_buff_head prequeue; struct task_struct *task; struct msghdr *msg; int memory; int len; } ucopy;}; 

2018-11-21 08:13:18 151

原创 系统调用accept的实现

linux版本:4.9.51在APP中,connfd = accept(listenfd, (struct sockaddr*)&amp;cli_addr, &amp;clilen);SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,        int __user *, upee...

2018-11-19 09:07:00 493

原创 系统调用listen的实现

linux版本:4.9.51在APP中,listen(listenfd, BACKLOG_SIZE);//The backlog argument defines the maximum length to which the queue of pending connections for sockfd may grow. SYSCALL_DEFINE2(listen, int,...

2018-11-19 08:36:59 256 1

原创 系统调用bind的实现

linux版本:4.9.51在APP中,ret = bind(listenfd, (struct sockaddr*)&amp;serv_addr, sizeof(serv_addr) );int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);SYSCALL_DEFINE3(bind, int, fd,...

2018-11-18 18:37:14 374

原创 系统调用socket 的kernel实现

这个函数初始化socket的主要数据结构:socket --&gt; inodetcp_sock --&gt; inet_connection_sock --&gt; inet_sock --&gt; sock --&gt; sock_common linux版本:4.9.51在APP中, listenfd = socket(AF_INET, SOCK_STREAM, 0);...

2018-11-18 14:52:33 489

原创 sockaddr 套接字地址

内核通过 sockaddr 唯一标识一个socketstruct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */ // 该字段保存特定协议的相关字段。如果是PF_INET,则保存IP地址(struct in_addr)和端口号(port)。 char sa_data[14]; /* 14 bytes of...

2018-11-17 17:50:16 148

原创 inet_create 注释

协议类型,是一个枚举变量,为了看得清晰,我删掉了很多不熟悉的值:enum { IPPROTO_IP = 0, /* Dummy protocol for TCP */#define IPPROTO_IP IPPROTO_IP IPPROTO_ICMP = 1, /* Internet Control Message Protocol */#define IPPROTO_...

2018-11-17 16:10:47 289

原创 inet_protosw 结构

 /* This is used to register socket interfaces for IP protocols. */struct inet_protosw { struct list_head list; /* These two fields form the lookup key. */ unsigned short type; /*...

2018-11-17 15:53:14 760 2

原创 inet——proto基本数据结构图

结构体 inet_protosw ,代表了socket的类型(套接字类型和相应的协议):/* This is used to register socket interfaces for IP protocols. */struct inet_protosw { struct list_head list; /* These two fields form the l...

2018-11-17 15:21:14 1546

原创 ubuntu没声音

刚安装的ubuntu 14.04.02,声音正常。过了一会儿,系统所有的声音都没有了。回想自己刚才做的事情,安装了alsa-lib-1.1.2.tar.bz2, alsa-utils-1.1.2.tar.bz2另外的两个表现是:声音设置里面的输出选项:假输出aplay -l:   ××××××无效的参数又在网上查了ubuntu没有声音的解决方

2016-12-21 18:00:55 460

原创 Excel VBA 插入指定图片到单元格并只适应大小

Sub 插入图片()Dim filenames As StringDim filefilter1 As Stringfilefilter1 = ("所有图片文件(*.jpg;*.bmp;*.png;*.gif),*.jpg;*.bmp;*.png;*.gif")    '所有图片文件后面的括号为中文括号filenames = Application.GetOpenF

2015-10-14 09:44:30 18773 3

原创 Makefile宏定义

起因:阅读linux0.11代码时,发现RAMDISK这个宏定义在makefile中。以前没有接触过这种用法,练习一下。目的:在Makefile中定义的宏,在C语言代码里面使用。Makefile的内容:CC=gccRAMDISK = -DRAMDISK=512all:$(CC) $(RAMDISK)  hello.cclean:

2014-12-26 12:13:17 923

原创 Bochs入门

Host操作系统是window xp1 在bochs官网下载最新的bochs安装包,安装bochs软件。第二步 制作img文件。1 安装nasm软件2 写代码boot.asmorg 07c00h ; 告诉编译器程序加载到 7c00 处mov ax, csmov ds, axmov es, axcall DispStr ; 调用显示

2014-09-26 10:41:09 688

原创 订阅Linux maillist

用了好几个邮箱,只有139邮箱成功了。公司的邮箱也可以,可是不想用,因为不能一直用。、

2014-09-14 09:16:12 689

原创 DeviceIoControl的返回结果判断

DeviceIoControl的使用不应该以ret来判断DeviceIoControl的结果,而应该以lpBytesReturned。READ操作,lpBytesReturned返回实际读的字节数;WRITE操作,lpBytesReturned返回实际写的字节数。

2014-05-19 17:00:09 1688

原创 一个C语言宏定义错误

#include #include #include #define MACHINE_ID_LEN         30#define INT_SIZE    4#define CHAR_SIZE   1#define KEY_INFO_LEN    INT_SIZE + CHAR_SIZE + MACHINE_ID_LEN#define TOTAL_KEYS  1

2014-04-01 16:22:28 1195

原创 win7访问ext3

安装一个软件Ext2Fsd。

2014-03-18 18:43:07 2420

原创 uboot添加命令

添加一个简单的命令,yinming,打印helloworld1 common/yinming.c/* * Command for accessing DataFlash. * * Copyright (C) 2008 Atmel Corporation */#include static int do_yinming(cmd_tbl_t *cmdtp, int flag,

2014-02-28 10:10:28 619

原创 安装ltib时遇到的两个问题及解决方法

sudo visudo时,写错了。导致sudo不能使用。解决方法:        重启电脑,bootloader 菜单选择进入高级模式,root用户        此时,文件系统是只读的,不能够修改。mount -o remount rw 就把文件系统改变成了可读写的了。        visudo 把错误的地方删除掉,就OK了。sudo apt-get install l

2014-02-15 09:45:52 637

原创 ubuntu进不去了

ubuntu 桌面版 13.04问题:今天怎么也进不了系统,只能在用户输入密码的界面。解决方法: 进入命令行模式,拷贝了同时的/etc/profile,替换掉。进去了。原因:昨天修改了/etc/profile,不小心改怀了。

2013-09-17 14:39:36 909

原创 vim 安装过程记录

yinming:~/work/mplay$ sudo apt-get install vim [sudo] password for yinming: 正在读取软件包列表... 完成正在分析软件包的依赖关系树    正在读取状态信息... 完成    将会安装下列额外的软件包:  vim-runtime //这是依赖包建议安装的软件包:  ctags vim-doc

2013-09-14 11:09:14 888

原创 主机 虚拟机 互相ping不通

关闭防火墙,就可以互相ping通了。

2013-05-30 16:52:56 628

professional_windows_embedded_compact_7.pdf(2)

第一部分在这里 http://download.csdn.net/detail/yinming4u/5401157

2013-05-18

professional_windows_embedded_compact_7.pdf

Learn to program an array of customized devices and solutions As a compact, highly efficient, scalable operating system, Windows Embedded Compact 7 (WEC7) is one of the best options for developing a new generation of network-enabled, media-rich, and service-oriented devices. This in-depth resource takes you through the benefits and capabilities of WEC7 so that you can start using this performance development platform today. Divided into several major sections, the book begins with an introduction and then moves on to coverage of OS design, application development, advanced application development, how to deploy WEC7 devices, and more. Examines the benefits of Windows Embedded Compact 7 (WEC7) Reviews the various elements of OS design, including configuring and building a customized OS runtime image, using debugging and remote tools, and more Explains how to develop native code applications with Visual Studio 2010, develop database applications with SQL server compact, and use the application deployment option Discusses how to deploy a WEC device, use the boot loader, launch WEC using BIOSLoader, and deploy a WEC power toy If you're interested in learning more about embedded development or you're seeking a higher performance development platform, then this is the book for you.

2013-05-18

空空如也

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

TA关注的人

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