![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式linux笔记
kevintangyc
这个作者很懒,什么都没留下…
展开
-
linux进程控制
1.进程基本概念进程:程序的运行状态。具有独立功能的程序的一次运行活动。进程三态:就绪态、执行态和阻塞态,相互关系如下图:进程互斥:当有若干进程都要使用某共享资源,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,知道占用该资源者释放了该资源。一次只允许一个进程访问的资源称为临界资源。进程中访问临界资源的程序代码称为临界区。实现对临界资源的互斥访问的关键原创 2013-10-16 10:48:18 · 751 阅读 · 0 评论 -
编译linux内核linux-2.6.22出错
当配置完内核后,生成.config后(隐藏文件,在内核根目录下),在终端输入make,出现如下错误:make: arm-linux-gcc: Command not foundscripts/kconfig/conf -s arch/arm/Kconfigmake: arm-linux-gcc: Command not found CHK include/linux/ver原创 2013-10-25 21:12:18 · 1463 阅读 · 0 评论 -
vmlinuz、zImage和uImage的区别
一、简介对于Linux内核,编译可以生成不同格式的映像文件,例如:# make zImage# make uImagezImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0转载 2013-10-26 09:27:59 · 1362 阅读 · 0 评论 -
linux多线程
多线程比多进程“节俭”,同一进程的线程之间共享数据段、代码段、堆栈段。运行于一个进程中的多个线程,使用相同的地址空间,线程之间的切换时间远小于进程之间的切换。多线程更利于数据的共享。linux系统下的多线程遵循POSIX线程接口,称为pthread。编写linux下的多线程程序,需要使用头文件pthread.h,还需要连接libpthread.a程序库。原创 2013-10-19 12:52:07 · 558 阅读 · 0 评论 -
linux消息队列
消息队列就是一个消息的链表,可以把消息看做一个记录,具有特定的格式。进程可以向其中按照一定的规则添加新消息,另一些进程可以从消息队列中读走消息。目前主要有POSIX消息队列和系统V消息队列,系统V消息队列被大量使用。系统V消息队列是随内核持续的,只有在内核重启或者人工删除时,该消息队列才会被删除(内核持续性)。消息队列的内核持续性要求每个消息队列在系统内有唯一对应的键值,要获得消息队列的描原创 2013-10-18 10:59:04 · 705 阅读 · 0 评论 -
linux中的代码段、数据段、堆栈说明
进 程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。一、Linux进程的五个段下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么转载 2013-10-18 13:46:28 · 1158 阅读 · 0 评论 -
Nand Flash与Nor Flash启动的区别——s3c2440
S3C2440启动时读取的第一条指令是在0x00000000地址上的,分为Nand Flash与Nor Flash两种启动方式。S3C2440总共有8个内存banks: 6个内存bank可以当作ROM或者SRAM来使用; 留下的2个bank除了当作ROM 或者SRAM,还可以用SDRAM(各种内存的读写方式不一样); 7个bank的起始地址是固定的,还有一个灵活的bank原创 2013-10-11 12:42:37 · 1367 阅读 · 0 评论 -
linux vi使用小结
文本编辑器(vi)有三种模式:命令行模式:最初进入的一般模式,该模式下可以移动光标进行浏览,正行删除,但无法编辑文字。插入模式:只有在该模式下,用户才能进行文字的编辑输入,用户可以使用ESC键回到命令行模式。底行模式:该模式下,光标位于屏幕底行,用户可以进行文件的保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号。文本编辑器的一般使用步骤:1.在root下:vi原创 2013-10-12 15:33:22 · 501 阅读 · 0 评论 -
linux管道通信
1.进程间通信的作用:数据传输:一个进程将数据发送给另一个进程;资源共享:不同进程间共享同样的资源;通知事件:一个进程向另一个或一组进程发送消息;进程控制:一个进程可以完全控制另一个进程的所有操作,并能及时知道它的状态改变。2.进程通信的分类:管道(pipe)和命名管道(FIFO)信号信号量消息队列共享内存套接字3.管道通信管道是原创 2013-10-16 21:09:07 · 682 阅读 · 0 评论 -
linux信号通信
1.信号是unix系统中最基础的进程间通信机制,有以下情况可以产生信号:1.1.当用户按某些按键时产生信号;1.2.硬件异常产生信号(除数为零,无效的存储访问等等);1.3.进程用kill函数将信号发送给另一个进程1.4.用户用kill命令将信号发送给其他进程2常见信号类型:SIGHUP:从终端上发出的结束信号SIGINT:来自键盘的中断信号(Ctrl-C)原创 2013-10-17 14:10:18 · 500 阅读 · 0 评论 -
linux共享内存通信
共享内存是被多个进程共享一部分物理内存。共享内存是进程间共享数据的最快的方法,一个进程向共享内存区写入数据,共享这个内存区的所有进程可以立刻看到其中的内容。共享内存的实现步骤:1.创建共享内存,使用shmget函数。int shmget(key_t key,int size,int shmflg)key为共享内存的键值,一般取IPC_PRIVATE。创建成功则返回内存标原创 2013-10-17 15:17:04 · 848 阅读 · 0 评论 -
GCC程序编译
Gcc编译器能将C、C++语言源程序、汇编程序编译、链接成可执行文件。在linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。GCC编译过程可以分为四个阶段:预处理编译(头文件)汇编链接(库)gcc基本用法:gcc [options] [filename]options:编译器所需要的编译选项;filen原创 2013-10-13 20:18:03 · 676 阅读 · 0 评论 -
Makefile小结
make能够使整个软件工程的编译、链接只需要一个命令就可以完成,其中makefile文件是make命令的默认文件,它相当于一系列gcc编译命令的集合。makefile文件描述了整个工程的编译连接规则:工程中的哪些源文件需要编译以及如何编译;需要创建哪些库文件以及如何创建这些库文件;如何产生我们想要得到的可执行文件。1.规则:用于说明如何生成一个或多个目标文件targets:原创 2013-10-14 09:43:09 · 603 阅读 · 0 评论 -
linux目录结构
/root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。home --- 存储普通用户的个人文件ftp --- 用户所有服务httpdsambauser1user2bin --- 系统启动时需要的执行文件(二进制)sbin --- 可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行proc --- 虚拟,存在linux内转载 2013-10-11 17:01:32 · 795 阅读 · 0 评论 -
linux文件编程
linux文件编程可以使用两种方法:Linux系统调用和C语言库函数。前者依赖于linux系统,后者与操作系统是独立的,在任何操作系统中的调用方法都是一致的。1.linux系统调用:需加入头文件#include #include #include1.1文件创建:int creat(const char *filename,mode_t mode原创 2013-10-15 14:43:09 · 598 阅读 · 0 评论 -
linux驱动程序安装
linux下的驱动程序安装有模块方式与直接编译进内核。1.模块方式linux内核包含的组件很多,把所有的组件都编译进内核文件(zImage或者bzImage)会导致内核过大。使用内核模块可以让内核文件(zImage或者bzImage)本身并不包含某组件,而是在该组件需要被使用的时候,动态的添加到正在运行的内核。1.1内核模块的程序结构:模块加载函数(必需):安装模块时被系统自动原创 2013-11-12 21:32:14 · 681 阅读 · 0 评论