自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

钻研技术,积极进取,热爱生活!

天行健,君子以自强不息;地势坤,君子以厚德载物

  • 博客(20)
  • 收藏
  • 关注

原创 进程之间通讯-------------UNIX域通信

进程之间的通讯使用很频繁,在本地主机上两个不同的进程之间需要通讯时,我们可以采用unix域套接字来通讯,虽然因特网域套接字也可以达到同一目的,但是unix域套接字效率更高,主要体现如下:(1)UNIX域套接字仅仅复制数据(2)不像因特网域的套接字,它不需要处理协议,不需要产生顺序号,不需要发送确认报文,不需要添加或者删除网络头部,无需计算校验和。UNIX域套接字用于同一台主机上的进程间通讯时,提供...

2018-07-13 16:46:15 214

原创 进程之间通讯------------有名管道

上篇博客写到了无名管道,但是仅限于父进程和子进程之间;本片文章介绍有名管道,有名管道和无名管道使用类似,使用的API如下创建好有名管道后,在使用之前都必须打开管道,在linux中一切都是文件的哲理思想在这里又出现了,打开的时候可以设置阻塞或者非阻塞,但是有一点需要,当管道两端读写之中有任何一个设置为非阻塞时,必须保证阻塞的那个进程先运行,否则程序会崩溃,这一点也是有名管道使用的难点。本示例演示的是...

2018-07-13 16:45:31 182

原创 进程之间通讯------无名管道

进程之间常用的通讯方式有:(1)无名管道(具有亲缘关系的父子进程)(2)有名管道(任意两个进程)(3)信号(4)消息队列(5)内存共享(6)信号量(一般是进程之间同步的手段,一般配合互斥锁、条件变量一起使用)(7)socket套接字现在介绍最简单的无名管道,用到的API函数如下:比较简单,我们可以定义一个数组pipe_fd[2]来表示管道的两端,其中pipe_fd[0]是从管道读取数据,pipe_...

2018-07-13 16:44:54 180

原创 openwrt下的ikg包的制作

把nmap移植好之后,拷贝到开发板,测试也可以使用,但是有个问题,每次使用时,都需要把可执行文件和相关的依赖库拷贝到目标板,这样有点麻烦,有没有更好的方法呢?在查阅资料之后,发现可以把nmap执行文件和相关的库制作成ipk包,这样只需要在openwrt下使用opkg命令安装ipk就可以了,ipk包的制作方法可以参考下面的这位网友openwrt下ipk生成过程及原理 https://blog.csd...

2018-07-13 16:44:07 422

原创 ubus库包使用

上一篇文章介绍了移植ubus相关的库包,本篇文章来验证移植的库包是否正确。编译平台:Ubuntu 14.04目标板平台:mt7688代码的主要目录如下:include、libs、Makefile、src其中,include存放的是所移植的库包的头文件libs存放的是移植的库包的动态库src下存放的测试源码.c/.cpp,我这里比较简单,主要是为了测试ubus的功能,所以就2个源文件Makefile...

2018-07-13 16:43:15 439

原创 ubus移植到openwrt

最近在研究openwrt下的ubus的使用,在使用之前,需要进行相关软件包的移植,在移植过程中遇到了一些问题,在此记录下,有需要的朋友可以参考下。本文主要移植的软件包有libjson-c,libubox,libuv,ubus,下面依次来进行移植。系统环境:Ubuntu 14.04 LTS软件包源码:json-c-0.12.1-nodoc.tar.gz交叉编译环境:misel-openwrt-lin...

2018-07-13 16:42:20 1047

转载 linux知识梳理

学习linux有段时间了,其中涉及的知识点很多,将学习中记录下的知识整理下;1、Makefile相关知识,这是一个连载的文章,感觉很不错!参考链接:http://blog.csdn.net/haoel/article/details/28862、公司用的产品是基于openwrt开发的,要增加相应的软件包,参考链接:http://blog.csdn.net/sevenjoin/article

2017-07-17 17:18:18 210

转载 linux的中断机制

1、中断的基本知识点每个cpu都有若干个中断向量,中断向量按照类型分类,可以分为:异常和中断。异常又可以分为故障和陷阱,它们的特点是不采用中断控制器,也不能被屏蔽;中断可分为:可屏蔽和不可屏蔽,由I/O设备引起的中断属于可屏蔽中断,cpu内部硬件引起的中断属于非屏蔽中断。2、外部可屏蔽中断以Intel x86平台为例,是采用2片8259A中断控制器来响应外部中断源。每一片控制8个中断源

2017-06-22 09:37:49 335

原创 内核源码--------mm_init_cpumask(&init_mm);

回到start_kernel,来看函数mm_init_cpumask(&init_mm),从表面意思,可以猜出是初始化内存的,先看看init_mm这个变量是怎么来的?,定位到init_mmstruct mm_struct init_mm = {.mm_rb = RB_ROOT,.pgd = swapper_pg_dir,.mm_users = ATOMIC_INIT(2),

2017-06-15 10:54:48 1892

原创 内核源码--------page_address_init();

回到start_kernel,进入到函数page_address_init();定位到该函数void __init page_address_init(void){int i;for (i = 0; i {INIT_LIST_HEAD(&page_address_htable[i].lh);spin_lock_init(&page_address_htable[i].l

2017-06-15 10:43:52 742

原创 内核源码--------boot_cpu_init();

继续回到start_kernel,来到函数boot_cpu_init();定位到该函数static void __init boot_cpu_init(void){int cpu = smp_processor_id();/* Mark the boot cpu "present", "online" etc for SMP and UP case */set_cpu_onli

2017-06-15 10:26:13 1984

原创 内核源码--------debug_objects_early_init()

回到start_kernel,进入到debug_objects_early_init()void __init debug_objects_early_init(void){int i;for (i = 0; i raw_spin_lock_init(&obj_hash[i].lock);for (i = 0; i hlist_add_head(&obj

2017-06-14 16:04:31 1527

原创 内核源码--------smp_setup_processor_id()

回到start_kernel函数,进入到smp_setup_processor_id()中,void __init smp_setup_processor_id(void){int i;u32 mpidr = is_smp() ? read_cpuid_mpidr() & MPIDR_HWID_BITMASK : 0;u32 cpu = MPIDR_AFFINITY_LEVEL

2017-06-14 15:41:56 2105

原创 内核源码--------set_task_stack_end_magic(&init_task)

经过bootloader的引导作用,进入到内核的入口,进入start_kernel函数之后,set_task_stack_end_magic(&init_task)函数设置整个系统的第一个进程。其中,init_task这个变量是在init/init_task.c中,从函数struct task_struct init_task = INIT_TASK(init_task)可知,init_task这

2017-06-14 15:12:52 2686

原创 2013.04-rc2uboot移植(建立编译模板)

学习了2个多月的uboot移植,期间经历了很多,移植的平台是飞凌的ok6410A开发板,再此记下移植过程中的笔记,供给网友参考。从uboot网站下载u-boot-2013.04-rc1.tar.bz21、解压源码文件,得到u-boot-2013.04-rc1文件夹2、精简uboot源码文件,删除无关的文件。进入根目录下的board目录,删除除了samsung目录以外的所有文件,仅保留sam

2017-04-11 12:23:53 589

原创 Python的继承和多态

在学习python,和其它语言类似,python也支持继承和多态。在OPP程序编程的时候,我们在定义一个class时,可以从一个现有的class继承,新定义的这个class称为子类,原来的class称为父类、基类、超类。class Father(object):def run(self):print ''Father is running"现在从Father继承一个类class

2017-03-29 10:09:58 631

原创 Python的面向对象编程

面向对象编程心得:1、面向对象编程的思想是把对象作为基本单元,一个对象包含数据和数据的操作方法2、编程时,要先定义类,并初始化实例,最后执行对象的操作方法就可以了例如,要打印学生的成绩单,可以先定义Stuent类,Stuent类包含两个属性,即name和score两个属性,再定义个操作方法,即print_score函数,即完成了编程。class Stuent (self,name,

2017-03-29 09:31:44 211

转载 深入浅出嵌入式底层软件开发

1.1 ARM CPU寄存器ARM的汇编编程,本质上就是针对CPU寄存器的编程,所以要搞清楚ARM有哪些寄存器;ARM寄存器分为两类:普通寄存器和状态寄存器;普通寄存器一共有16个,分别为R0——R15,状态寄存器有2个,分别为CPSR和SPSR。R15别名PC(program Counter),中文称程序计数器,它的值是当前正在执行的指令在内存中的位置,而当指令执行结束后,CPU

2017-02-23 09:26:23 7332

原创 u-boot源码下载地址和内核源码下载地址

最近在学习ok6410,总是要找u-boot源码,把他放到博客中来,就不用每次都找了,后面还会把内核源码链接也放进来,有需要的朋友可以参考下。u-boot源码链接:ftp://ftp.denx.de/pub/u-boot/

2017-02-14 15:45:12 484

转载 Linux网卡驱动-内核网络分层分析

Preface   Linux内核对网络驱动程序使用统一的接口,并且对于网络设备采用面向对象的思想设计。   Linux内核采用分层结构处理网络数据包。分层结构与网络协议的结构匹配,既能简化数据包处理流程,又便于扩展和维护。内核网络结构   在Linux内核中,对网络部分按照网络协议层、网络设备层、设备驱动功能层和网络媒介

2017-02-14 11:13:48 274

空空如也

空空如也

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

TA关注的人

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