嵌入式
文章平均质量分 69
寰宇C++
这个作者很懒,什么都没留下…
展开
-
cmake 交叉编译工具链
主機:Ubuntu10.04交叉編譯器:EABI-4.3.3CMake在ubuntu系統下預設使用系統的gcc、g++編譯器,編譯arm下的程式要使用arm-linux-gcc,需要對CMake進行設定(通過在CMakeLists.txt中指定交叉編譯器的方法)。在CMakeLists.txt一開始加入相關設定:#告知當前使用的是交叉編譯方式,必須配置SET(CMAKE_SYSTEM_NAME Linux) #指定C交叉編譯器,必須配置#或交叉編譯器使用絕對地址SET(CMAKE_C_C.原创 2021-05-12 16:14:34 · 1209 阅读 · 0 评论 -
选择寄存器
"select"中文翻译vt. 选;选择;挑选;选拔。 Her father l ... "register"中文翻译n. 1.记录,注册,登记,挂号。 2.(人口动态,户籍 ... "register select"中文翻译寄存器选择 "color select register"中文翻译彩色选择寄存器 "csr channel select register"中文翻译通道选择寄存器 "memory address select register"中文...原创 2021-04-25 09:56:47 · 632 阅读 · 0 评论 -
linux编程之pipe()函数
管道是一种把两个进程之间的标准输入和标准输出连接起来的机制,从而提供一种让多个进程间通信的方法,当进程创建管道时,每次都需要提供两个文件描述符来操作管道。其中一个对管道进行写操作,另一个对管道进行读操作。对管道的读写与一般的IO系统函数一致,使用write()函数写入数据,使用read()读出数据。#include<unistd.h>int pipe(int filedes[2]);返回值:成功,返回0,否则返回-1。参数数组包含pipe使用的两个文件的描述符。fd[0]原创 2021-04-25 09:47:52 · 453 阅读 · 0 评论 -
进程间通信 之 信号量
共享内存允许两个或多个进程访问给定的同一块存储区域。已知当一个进程被启动时,系统会为其创建一个0~4G的虚拟内存空间,根据虚拟地址与物理地址之间的映射关系,进程可以通过操作虚拟地址,实现对物理页面的操作。一般情况下,每个进程的虚拟地址空间会与不同的物理地址进行映射,但是当使用共享内存进行通信时,系统会将同一段物理内存映射给不同的进程。两个进程的虚拟地址空间与共享内存之间的映射关系如图1所示。图1 映射关系系统中的物理内存和虚拟内存都通过页面来管理,为多个进程分配共享内存,实际是为进程分配一个或多原创 2021-04-23 17:58:30 · 369 阅读 · 0 评论 -
fork的原理及实现
fork的原理先通过下面这段代码简单的介绍一下fork这个函数,了解一下它的功能#include <unistd.h>#include <stdio.h>int main(){ int pid = fork(); if (pid == -1) return -1; if (pid) { printf("I am father, my pid is %d\n", getpid()); ..原创 2021-04-23 16:25:20 · 1516 阅读 · 0 评论 -
进程间通信之 信号量
Linux系统采用多道程序设计技术,允许多个进程同时在内核中运行,但同一个系统中的多个进程之间,可能因为进程合作或资源共享,产生制约关系。制约关系分为直接相互制约关系和间接相互制约关系:(1)直接相互制约关系。利用管道机制实现进程间通信,当管道为空时,读进程由于无法从管道中读取数据而进入阻塞;当管道存满时,写进程由于无法向管道中写入数据而进入阻塞,类似于这种需要进程间协调合作导致的制约关系,称为直接相互制约关系。(2)间接相互制约关系。若当前系统中只有1台打印机,当进程A占用打印机时,进程B也申请使原创 2021-04-23 16:16:25 · 468 阅读 · 0 评论 -
进程间通信之 消息队列
消息队列的实质是一个存放消息的链表,该链表由内核维护;消息队列中的每个消息可以视为一条记录,消息包括一个长整型的类型字段和需要传递的数据。消息队列由消息队列标识符(queue ID)标识,对消息队列有读权限的进程可以从队列中读取消息,对消息队列有写权限的进程可以按照规则,向其中添加消息。与管道相比,消息队列的通信方式更为灵活:它提供有格式的字节流,无需通信双方额外约定数据传输格式;其中的消息设定为不同类型,又被分配了不同的优先级,新添加的消息总是在队尾,但接收消息的进程可以读取队列中间的数据。此外,消息原创 2021-04-23 15:21:28 · 1459 阅读 · 0 评论 -
Linux 开发环境与开发工具的建立
原创 2021-04-21 17:01:52 · 92 阅读 · 1 评论 -
Linux内核驱动之GPIO子系统(一)GPIO的使用
一概述Linux内核中gpio是最简单,最常用的资源(和interrupt,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0~MAX_INT之间的整数标识,不能使用负数,gpio与硬件体系密切相关的,不过linux有一个框架处理gpio,能够使用统一的接口来操作gpio.在讲gpio核心(gpiolib.c)之前先来看看gpio是怎么使用的二内核中gpio的使用1测试gpio端口是否合法intgpio_is_valid(int...原创 2021-04-20 17:48:53 · 641 阅读 · 0 评论 -
交叉编译工具链
1、嵌入式开发模型-交叉开发 在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。在宿主机执行编译的流程如下:2、交叉编译工具链详解参考:http://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html3、制作交叉编译工具参考:http://www.crifan.com/files/doc...原创 2021-04-19 11:24:14 · 354 阅读 · 0 评论