上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 43 下一页
摘要: linux内核开发基础linux体系结构用户空间(user space) user application gnu c library(blibc)内核空间(kernel space) system call interface kernel archlitecture-dependent kernel codelinux内核架构system call interface (SCI)系统调用接口process management (PM)进程管理 virtual file system(VFS)虚拟文件系统memory management(MM)内存管理 network stack网... 阅读全文
posted @ 2013-02-25 18:57 retacn_yue 阅读(215) 评论(0) 推荐(0) 编辑
摘要: arm 协处理器协处理器是一种芯片,减轻系统微处理器的某些任务支持多达16个协处理器,例如cp15寄存器来控制cache和存储器管理协处理器操作指令cdp:数据操作指令,初始化协处理器ldc:数据加载指令,存储器到协处理器寄存器的数据传送stc:数据存储指令,协处理寄存器到存储器的数据传送mcr:arm处理器寄存器到协处理器寄存器的数据传送mrc:协处理器寄存器到arm处理器寄存器的数据传送访问cp15寄存器的指令编码格式31 28 27 24 23 21 20 19 16 15 12 11 8 7 5 4 3 0cond 1110 opcode_... 阅读全文
posted @ 2013-02-22 21:53 retacn_yue 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-02-21 21:54 retacn_yue 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 混合编程常见方式:1 在c/c++程序中嵌入汇编指令 语法格式:__asm{ 汇编语言程序 }2 在汇编程序中访问c/c++定义的全局变量 示例代码如下: test.c #include int gVar_1=12; extern asmDouble(void) int main(void){printf("original value of gVar_1 is %d",gVar_1); admDouble();printf("modified value of gVar_1 is %d",gVar_1);return 0; } test.s AREA 阅读全文
posted @ 2013-02-21 21:47 retacn_yue 阅读(371) 评论(0) 推荐(0) 编辑
摘要: arm伪指令符号定义伪指令定义arm汇编程序中的变量、对变量赋值以及定义寄存器的别名定义全局变量gbla(全局数字变量,初始化值为0)GBLA 全局变量名 示例代码如下:GBLA Test1;定义全局数字变量test1Test1 SETA 0x123;将该变量赋值为0x123gbll(全局逻辑变量,初始化为F) GBLL 全局变量名 示例代码如下:GBLL Test2;定义全局逻辑变量test2Test2 SETL {TRUE};将变量赋值为真bgls(全局字符串变量,初始化为空) GBLS 全局变量名 示例代码如下:GBLS Test3;定义全局字符串变量test3Test3 SETS &q 阅读全文
posted @ 2013-02-21 21:46 retacn_yue 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 画个草图也挺过瘾 阅读全文
posted @ 2013-02-17 22:24 retacn_yue 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 多线程程序设计头文件:pthread.h连接时需要用到的库文件:libpthread.a创建线程函数原型#include int pthread_creat(pthread_t *tidp,const pthread_attr_t *attr,void *(*start_rtn)(void),void *arg)tidp:线程idattr:线程属性start_trn:线程要执行的函数arg: start_rtn的参数编译由于pthread库不是linux系统的库,编译时要加上-lpthread示例代码如下:gcc filename -lthread示例代码如下:thread_create.c 阅读全文
posted @ 2013-02-16 21:42 retacn_yue 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 信号量又名信号灯,保护临界资源,进程可以根据它判断是否能够访问某些共享资源除了用于访问控制外,还用于进程同步分类:二值信号量 值只能取0或1,有点像互斥锁计数信号量 信号量的值可以取任意非负值创建/打开#include #include #include int semget(key_t key,int nsems,int semflg)key:键值,由ftok取得nsems:指定信号灯的数目semflg:标识,同消息队列对信号量进行控制int semop(int semid,struct sembuf *sops,unsigned nsops)semid:信号量集的idsops:是一个操作数 阅读全文
posted @ 2013-02-16 21:41 retacn_yue 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 消息队列信号能够传送的信息量有限管道只能传送无格式的字节流消息队列就是一个消息链表,消息可以看作是一个记录,具有特定的格式消息队列的分类:posix(可移植的操作系统接口)消息队列系统v消息队列:是随内核持续的,只有在内核重起或者人工删除时,该消息队列才会被删除键值每个消息队列都在系统范围内对应唯一的键值,也是获得消息队列描述字的方法返回文件名对应的键值#include #include key_t ftok(char *pathname,char proj)pathname:文件名proj:项目名(不为0即可)打开、创建#include #include #include int msgge 阅读全文
posted @ 2013-02-16 21:40 retacn_yue 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 共享内存通信被多个进程共享的一部分物理内存,是进程间共享数据的一种最快的方法一个进程向共享内存区域写入数据,共享这个内存区域的所有进程都可以立刻看到其中的内容实现共享内存分为两个步骤:1 创建共享内存,使用shmget函数 函数原型:int shmget(key_t key,int size,int shmflg)key:标识共享内存的键值 0 如果shmflg设置为IPC_PRIVATE,同样会创建一块新的共享内存 IPC_PRIVATE 创建一块新的共享内存 如果成功返回共享内存标识符,失败返回-1 2 映射共享内存,将这段创建的共享内存映射到具体的进程空间中,... 阅读全文
posted @ 2013-02-16 21:40 retacn_yue 阅读(199) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 43 下一页