摘要:bootloader: bootloader是系统上的后最初加载运行的代码。 简单的说,bootloader就是在操作系统内核运行前就运行的一段小程序。这段小程序可以初始化必要的硬件设备,将系统的软硬件环境带到一个合适的状态,并从外部存储器或通过网络等通信方式加载内核,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,最终调用操作系统内核。 一个嵌入式Linux系统从软件的角度看通常可以分为四个部分:bootloader、Linux内核、跟文件系统及用户的应用程序。bootloader处于系统的最底层,运行于系统启动的最初阶段。 bootloader的启动过程可以是单阶段的,也可以是多
阅读全文
随笔分类 - 嵌入式学习笔记
摘要:.串口概述常见数据通信方式:并行通信,串行通信UART的主要操作: >数据发送及接受 >产生中断 >产生波特率 >Loopback模式 >红外模式 >自动流控模式 串口参数的配置主要包括:波特率、数据位、停止位、流控协议。linux中的串口设备文件放于/de/目录下,串口一,串口二分别为"/dev/ttyS0","/dev/ttyS1".在linux下操作串口与操作文件相同..串口详细配置包括:波特率、数据位、校验位、停止位等。串口设置由下面的结构体实现: struct termios {tcflag_t c_ifla
阅读全文
摘要:fcntl函数,可以改变已经打开文件的性质。#include <sys/types.h>#include <unistd.h>#include <fcntl.h>int fcntl(int filedes,int cmd,...);返回:若成功则依赖于cmd,若出错则为-1.用fcntl给文件加锁:当多个用户共同使用、操作一个文件的时候,linux通常采用的方法是给文件上锁,来避免共享资源产生竞 争的状态. 文件锁包括建议锁和强制性锁。建议性锁要求上锁文件的进程都要检测是否有锁存在,并尊重已有的锁。强制性锁由内核和系统执行的锁。fcntl不仅可以实现建议性锁
阅读全文
摘要:read函数:#include <unistd.h>ssize_t read(int feledes,void *buff,size_t nbytes);返回: 读到的字节数,若已到文件末尾则为0,若出错为-1write函数:#include <unistd.h>ssize_t write(int filedes,const void *buff,size_t nbytes);返回: 若成功为已写的字节数,若出错为-1对于普通文件,写操作从文件的当前位移量处开始。如果打开时制定了O_APPEND选择项,则在每次写操作之 前将文件位移量设置在文件的当前结尾处。在一次成功写
阅读全文
摘要:Linux系统调用:是指操作系统提供给用户程序的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操 作系统内核提供的特殊服务,最直接的就是API调用,比如fork函数,exit函数等。 内核是一个很神秘很特别的程序,它不允许用户程序直接访问内核提供的服务,为了更好的保护内核空间,将程序的运行空间分为内核空间和用户空间,他们运行在不同的级别上,在逻辑上是相互隔离的,在linux中用户编程接口(API)遵循了在UNIX中最流行的应用编程界面标准---POSIX标准,这些系统调用编程 接口主要是通过C库来实现的(libc). 文件I/O:大多数linux文件I/O只需用到5个函数:open、
阅读全文
摘要:共享内存: 共享内存区域是被多个进程共享的一部分物理内存. 不同的进程可以通过共享内存通信,是进程间共享数据的一种最快的方法.一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容 (比如你把你家的保险箱密码告诉我,那我们就可以通过保险箱共享money,你一放进去money,我就可以 立马收到你的money了!!!!) 实现: ->创建共享内存,使用shmget函数 ->映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数当一个进程不再需要共享的内存段时,它将会把内存段从其地址空间中脱离,调用shmdt函数Example: sh
阅读全文
摘要:守护进程:生存期长,在系统引导装入时启动,在系统关闭时终止,没有控制终端,只在后台运行 所有守护进程的父进程都是init进程一个或多个进程构成进程组,一个或多个进程组构成会话组守护进程编程规则:1.创建子进程,父进程退出(使得子进程成为孤儿进程,孤儿进程运行一段时间后,由init进程统一接管)2.调用setsid创建一个新的会话,并担任该会话组的组长setsid作用:a>成为新会话组的首进程 b>成为一个新进程组的首进程 c>脱离控制终端3.改变当前目录为根目录---chdir("/");4.重设文件权限掩码---umask(0);----对所有权限都开放
阅读全文
浙公网安备 33010602011771号