- 浏览: 263796 次
- 性别:
- 来自: 济南
文章列表
进程间通信学习笔记四(消息队列)
- 博客分类:
- 嵌入式
消息队列 信号能够传送的信息量有限 管道只能传送无格式的字节流 消息队列就是一个消息链表,消息可以看作是一个记录,具有特定的格式 消息队列的分类: posix(可移植的操作系统接口)消息队列 系统v消息队列:是随内核持续的,只有在内核重起或者人工删除时,该消息队列才会被删除 键值 每个消息队列都在系统范围内对应唯一的键值,也是获得消息队列描述字的方法 返回文件名对应的键值 #include <sys/types.h> #include <sys/ipc.h> key_t ftok(char *pathname,char proj) pathname:文件名 proj:项目 ...
进程间通信学习笔记三(共享内存通信)
- 博客分类:
- 嵌入式
共享内存通信 被多个进程共享的一部分物理内存,是进程间共享数据的一种最快的方法 一个进程向共享内存区域写入数据,共享这个内存区域的所有进程都可以立刻看到 其中的内容 实现共享内存分为两个步骤: 1 创建共享内存,使用shmget函数 函数原型:int shmget(key_t key,int size,int shmflg)key:标识共享内存的键值 0 如果shmflg设置为IPC_PRIVATE,同样会创建一块新的共享内存 IPC_PRIVATE 创建一块新的共享内存如果成功返回共享内存标识符,失败返回-1 2 映射共享内存,将这段创建的共享内存映射到具体的进程空间中,使用shmat函数 ...
进程间通信学习笔记二(信号通信)
- 博客分类:
- 嵌入式
信号通信 用户按某些键时,产生信号 硬件异常产生信号 进程用kill函数将信号发送给另一个进程 可以用kill函数将信号发送给其他进程 信号的类型 1 sighup 从终端上发出的结束信号 2 sigint 来自键盘的中断信号(ctrl-c) 3 sigquit 4 sigill 5 sigtrap 6 sigiot 7 sigbus 8 sigfpe 9 sigkill 结束接收信号的进程 10 sigusr1 11 sigsegv 12 sigusr2 13 sigpipe 14 sigalrm 15 sigterm kill命令发出的信号 17 sigchld 标识子进程停止或结束的信号 ...
arm学习笔记三(arm指令集)
- 博客分类:
- arm体系结构
arm指令集 跳转指令 实现流程的跳转 专门的跳转指令 b 跳转指令 格式:B{条件}目标地址 示例代码如下:当cpsr寄存器中的z条件码置位时,程序跳转到标号label处执行CMP R1,#0BEQLable 指令条件 指令条件 标志位 含义 EQ Z置位 相等 NE Z清零 不相等 CS C置位 无符号数大于或等于 CC C清零 无符号数小于 MI N置位 负数 PL N清零 正数或零 VS V置位 溢出 VC V清零 未溢出 HI C置位Z清零 无符号数大于 LS C清零z置位 无符号数小于或等于 GE N等于V 带符号数大于或等于 LT N不等于V 带符号数小于 GT Z清零且(N等 ...
arm学习笔记二(arm寻址方式)
- 博客分类:
- arm体系结构
工作状态 arm状态 32位指令 thumb状态 16位指令 存储器的格式 最大寻址空间为4gb 大端格式:字数据的高字节存储在低地址中,低字节存放在高地址中 小端格式:与大端格式相反 axd查看寄存器 ================================================================= arm寻址方式(貌似计算机原理中学过) 处理器根据指令中给出的地址信息来寻找物理地址的方式 立即寻址 立即数寻址 示例代码如下: add r0,r0,#1; r0<--r0+1 add r0,r0,#0x3f; r0<--r0+0x3f 以十六进制表示的 ...
arm概述及其基本编程模型 arm体系结构的版本及命名方法 arm体系统构的6个版本的特点 arm体系的变种 1 thumb指令集(t变种) 2 长乘法指令(M变种) 3 增强型dsp指令(E变种) 4 java加速器jazelle(J变种) 5 arm媒体功能扩展(SIMD变种) arm/thumb体系版本的命名格式 1 字符串ARMv 2 ARM指令的版本号 1-6 3 表示变种的字符 版本4之后M变种成为标准功能,不需要列出来 4 使用x表示排除某种写功能 arm处理器系列 arm7 arm9 arm9e arm920T ARM922T ARM9440T arm10e securCore ...
进程间通信学习笔记一(管道通信)
- 博客分类:
- 嵌入式
进程间通信(ipc) 应用场景: 数据传输 资源共享 通知事件 进程控制 system v at&t system v posix(portable operating system interface)可移植操作系统接口 常用的进程间通信的方式: 管道(pipe)和有名管道(fifo) 信号(signal) 消息队列 共享内存 信号量 套接字(socket) 管道通信 半双工的,数据只能向一个方向流动 只能用于父子进程间或兄弟进程间 先进先出,一个进程在管道的尾部写入数据,另一个进程从管道的头部读出数据 无名管道 用于父子进程间的通信 创建管道 int pipe(int filedis ...
进程控制 进程的定义: 进程是一个程序的一次执行的过程,同时也是资源分配的最小单元 进程的特点:动态性、并发性、独立性、异步性 进程的状态: 1 就绪、阻塞、执行 2 TASK_RUNNING(运行) TASK_INTERRUPTIBLE(可中断) TASK_UNINTERRUPTIBLE(不可中断) TASK_ZOMBIE(僵死) TASK_STOPPED(停止) 进程id 进程id(pid) 标识进程的唯一数字 父进程id(ppid) 启动进程的用户id(uid) 进程开互斥 当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要 使用该资源的进程必须等待,直到占用该资源者 ...
linux 时间编程 时间类型 coordinated universal time世界标准时间 calendar time日历时间 时间获取 #include <time.h> time_t time(time_t *tloc) 从1970年1月1日0时到现在经历的秒数 时间转换 日历转化为格林威治标准时间 struct tm *gmtime(const time_t *timep) 日历时间转化为标准时间 struct tm *localtime(const time_t *timep) tm结构体 struct tm{int tm_sec;//秒值int tm_min;//分钟 ...
c语言库函数访问文件 库函数是独立于操作系统平台,可移植性强 文件的创建和打开 FILE *fopen(const char *filename,const char *mode) filename:文件名 mode:打开模式 常见的打开方式: r,rb 只读 w,wb 只写,如果文件不存在就创建 a,ab 追加,如果文件不存在就创建 r+,r+b,rb+ 读写方式打开 w+,w+b,wh+ 读写方式打开,文件不存在则创建 a+,a+b,ab+ 读和追加方式打开,文件不存在则创建 b表示二进制文件 读文件 size_t fread(void *ptr,size_t size,size_t n,F ...
文件I/O编程 1 基于linux系统的文件编程 创建文件 int creat(const char * filename,mode_t mode) filename:要创建的文件名 mode:创建模式 常见模式: S_IRUSR 可读 4 S_IWUSR 可写 2 S_IXUSR 可执行 1 S_IRWXU 可读、写、执行 示例代码如下: [retacn@localhost tmp]$ vi file_create.c #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #includ ...
makefile工程管理 makefile文件描述了整个工程的编译,连接等规则 规则 如何生成一个或多个目标文件 targets(目标):prerequisites(依赖) command(路径) 示例代码: test34:test34.o test33.o test31.o (tab) gcc$~ -o $@ 第一条语句为最终目标 make -f 指定makefile文件名 伪目标 .PHONY:clean #将clean目标声明为伪目标 clean: rm -f $@.$$$$ 变量 示例代码如下: obj=main.o func1.o func2.o func3.o hello:$(o ...
程序的编译与调试 gcc (gnu c compiler) gcc所支持的后缀名 .c c原始程序 .C/.cc/.cxx c++原始程序 .i 已经预处理的c原始程序 .ii 已经预处理的c++原始程序 .s/.S 汇编语言原始程序 .h 预处理文件 .o 目标文件 .a/.so 编译后的库文件 gcc的编译流程 预处理 编译 汇编 链接 gcc 的总体选项 -c 只编译不链接,生成目标文件.o -S 只编译不汇编,生成汇编代码 -E 只进行预编译 -g 在可执行程序中包含标准调试信息 -o file 把输出文件输出到file中 -v 打印出编译器内部编译各过程的命令行信息和编译器版本 -I ...
windows\linux环境下相关工具、命令的使用 windows环境下的工具 source insight代码阅读编辑工具,发现本人桌面上居然有3.5版本,这可能是在合肥MTK培 训时装的。 使用source insight3.5以内核源码为例 1 创建一个source insight工程 options-->document options-->document type选择c source file-->在file filter中 添加"*.S" 然后project-->new project--> 工程名为linux-2.6.35.7, ...
嵌入式linux开发环境搭建
硬件环境构建
主机与目标板结合的交叉开发模式
在主机编辑、编译软件,然后在目标板上运行和验证程序
目标板s3c6410(下周入手)
进行嵌入式linux开发时一般步骤
1 在主机上编译bootloader通过jtag烧入开发板
通常选用具有串口传输、网络传输、烧写flash功能的bootloader
2 在主机上编译嵌入式linux内核,通过bootlader烧入开发板或直接启动
内核应支持网络文件系统(nfs),即将应用程序放在主机上,单板启动嵌入
式linux内核后,通过网络来获取程序,然后运行
3 ...