随笔分类 - linux
摘要:LK是什么 LK 是 Little Kernel 它是 appsbl (Applications ARM Boot Loader)流程代码 ,little kernel 是小内核小操作系统。 LK 代码 在 bootable/bootloadler/lk 目录下 LK 代码结构 +app // 应用
阅读全文
摘要:因为项目需要,我们需要在开发板上使用QT开发平台,因此需要编译一个arm版的QT. 在网上找了一些资料,费了几天时间,终于成功了。 第一步,准备源码 先下载QT 源码,在http://qt-project.org/downloads页面,找到Qt libraries 4.8.6 for embedd
阅读全文
摘要:Linux上的静态库,其实是目标文件的归档文件。 在Linux上创建静态库的步骤如下: 下面通过实例具体讲解。 写源文件,生成目标文件。 第一个源文件 my_print.c 源文件2: my_math.c 使用gcc,为这两个源文件生成目标文件: 我们就得到了 my_print.o 和 my_mat
阅读全文
摘要:Linux下动态库文件的文件名形如 libxxx.so,其中so是 Shared Object 的缩写,即可以共享的目标文件。 在链接动态库生成可执行文件时,并不会把动态库的代码复制到执行文件中,而是在执行文件中记录对动态库的引用。 程序执行时,再去加载动态库文件。如果动态库已经加载,则不必重复加载
阅读全文
摘要:前言 使用文件进行进程间通信应该是最先学会的一种IPC方式。任何编程语言中,文件IO都是很重要的知识,所以使用文件进行进程间通信就成了很自然被学会的一种手段。考虑到系统对文件本身存在缓存机制,使用文件进行IPC的效率在某些多读少写的情况下并不低下。但是大家似乎经常忘记IPC的机制可以包括“文件”这一
阅读全文
摘要:i++ :先引用后增加++i :先增加后引用i++ :先在i所在的表达式中使用i的当前值,后让i加1++i :让i先加1,然后在i所在的表达式中使用i的新值 一、c语言中i++和++i的运行效果是不一样的,下面的都是摘自网上各地方的资料: 1.后置运算:k++表示先运算,后自加。 意思是遇到k++了
阅读全文
摘要:双向循环链表是基于双向链表的基础上实现的,和双向链表的操作差不多,唯一的区别就是它是个循环的链表,通过每个节点的两个指针把它们扣在一起组成一个环状。所以呢,每个节点都有前驱节点和后继节点(包括头节点和尾节点)这是和双向链表不同的地方。我们看下双向循环链表的示意图(我在网上找了张图片,自己画的实在难看
阅读全文
摘要:并发: 多个执行单元同时被执行. 竞态: 并发的执行单元对资源 ( 硬件资源和软件上的全局变量等 ) 的访问导致的竞争状态. 并发的处理: 处理并发的常用技术是加锁或者互斥,即保证在任何时间只有一个执行单元可以操作共享资源. 在 Linux 内核中主要通过 semaphore 机制 (信号量)和sp
阅读全文
摘要:1:linux字符设备及udev 1.1字符设备 字符设备就是:一个一个字节来进行访问的,不能对字符设备进行随机读写。简单字符设备创建实例如下: [cpp] view plain copy print? #include <linux/module.h> #include <linux/kernel
阅读全文
摘要:Make Menuconfig简介 make menuconfig 图形化的内核配置make mrproper 删除不必要的文件和目录. #make config(基于文本的最为传统的配置界面,不推荐使用) #make menuconfig(基于文本选单的配置界面,字符终端下推荐使用) #make
阅读全文
摘要:异常体系比较复杂,但是linux已经准备了很多的函数和框架,但是因为中断是和具体的开发板相关,所以中断需要我们自己来处理一些方面,但是这也是很少的一部分,很多公用的处理函数内核已经实现,linux内核搭建了一个非常容易扩充的中断处理体系。 中 断系统结构涉及的方面很多,而且分布在很多的函数中,这里我
阅读全文
摘要:内核态和用户态通讯知识收集 在一台运行 Linux 的计算机中,CPU 在任何时候只会有如下四种状态: 【1】 在处理一个硬中断。 【2】 在处理一个软中断,如 softirq、tasklet 和 bh。 【3】 运行于内核态,但有进程上下文,即与一个进程相关。 【4】 运行一个用户态进程。 1.
阅读全文
摘要:为什么需要内核锁? 多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是可以访问所有内核数据的,因此要对共享数据进行保护,即互斥处理 有哪些内核锁机制? (1)原子操作 atomic_t数据类型,atomic_inc(atomic_t *v)将v加1 原子操作比普通操作效率要低,因此必
阅读全文
摘要:在SMDK210.C中添加如下beeper_device 结构体 static struct platform_device beeper_device = { .name = "pwm_buzzer", .id = 1, .dev = { .parent = &s3c_device_timer[1
阅读全文
摘要:Title: 位操作基础篇之位操作全面总结Author: MoreWindowsE-mail: morewindows@126.comKeyWord: C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试 位操作篇共分为基础篇
阅读全文
摘要:阅读目录 系统调用 虚拟文件系统 I/O 缓冲区 Page Cache Address Space 文件读写基本流程 阅读目录 系统调用 虚拟文件系统 I/O 缓冲区 Page Cache Address Space 文件读写基本流程 回到顶部 系统调用 操作系统的主要功能是为管理硬件资源和为应用程
阅读全文
摘要:第一部分--进程调度 进程调度:操作系统规定下的进程选取模式 面临问题:多任务选择问题 多任务操作系统就是能同时并发地交互执行多个进程的操作系统,在单处理器机器上这会产生多个进程在同时运行的幻觉,在多处理器机器上,这会使多个进程在不同的处理机上真正同时、并行地运行。无论在单处理器或者多处理器机器上,
阅读全文
摘要:一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分 用户空间和内核空间,大小分别为0~3G,3~4G。 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间。 每个进程的用户空间都是完全独立、互不相干的,用户进程各自有不同的页表。而内核空间是由内核负责映射,它并不会跟
阅读全文
摘要:一 overview 1 table of contents -*** 2 product overview -*** 芯片概述 3 feature *** 每一个功能的特点 4 block diagram -****** 芯片的内部组织结构框图 4.1 arm core 芯片所选用的arm内核版本
阅读全文
摘要:mmap在linux哪里? 什么是mmap? 上图说了,mmap是操作这些设备的一种方法,所谓操作设备,比如IO端口(点亮一个LED)、LCD控制器、磁盘控制器,实际上就是往设备的物理地址读写数据。 但是,由于应用程序不能直接操作设备硬件地址,所以操作系统提供了这样的一种机制——内存映射,把设备地址
阅读全文