自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘星燎

从零开始学习,有问题还请大家多多指教

  • 博客(278)
  • 资源 (7)
  • 问答 (2)
  • 收藏
  • 关注

转载 linux内核虚拟内存和物理内存的映射

内存访问分为两种体系结构:一致性内存访问(UMA)和非一致性内存访问(NUMA)。NUMA指CPU对不同内存单元的访问时间可能不一样,因而这些物理内存被划分为几个节点,每个节点里的内存访问时间一致,NUMA体系结构主要存在大型机器、alpha等,嵌入式的基本都是UMA。UMA也使用了节点概念,只是永远都只有1个节点。本文讲的是UMA模型的嵌入式平台。每个节点又将物理内存划分为3个管理区,在x8...

2018-08-24 15:06:16 7770

转载 使用/dev/random和/dev/urandom产生随机数

一、介绍/dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。二、区别这两个设备的差异在于:/dev/random的random依赖于系统中断,因此在系统的中断数不足时,/dev/random设备会一直封...

2018-08-23 14:12:22 27055 2

原创 传统的网络编程(分三步一步一步的写)

server#include <sys/types.h>#include <sys/socket.h>#include <ctype.h>#include <netinet/in.h>#include <arpa/inet.h

2018-08-23 13:27:39 338

转载 mtd和mtdblock的区别

原文地址:http://my.oschina.net/shelllife/blog/123482做升级方案用到了mtd-utils中的flash_eraseall和flash_cp两个工具,在进行方案验证的时候,遭遇到各种不解和疑惑,因对MTD的原理不熟悉,所以只能多次尝试,虽然最后把方案搞定了,不过觉得MTD中的mtd和mtdblock区别这块还是值得总结学习一下。这里先说明一下问题现象,...

2018-07-11 20:23:52 2120

原创 rcS脚本文件

Linux在启动的时候最先调用该脚本文件,该文件具体执行什么工作完全由自己决定,但是为了规范将各个模块分开到不同的文件中,然后在该文件中执行这些脚本#必须含有这个第一行,表明是bash脚本#! /bin/sh #挂载fstab文件下的所有分区/bin/mount -a echo " _ _ _ _ _ _ _ _ _ _ _ _ ...

2018-07-09 15:23:02 853

原创 shell脚本编程for in

简介是一种字符串枚举遍历方法,for in格式中对字符串按照空格的方式进行切分格式for 变量 in 字符串do $变量done举例TOPEX= $(PWD) #获取当前路径#下面为定义for in循环中字符串的内容,不同名之间用空格隔开#“\”为续行符DIRS= \ gpio \ softi2c \ ds32...

2018-07-09 15:22:27 7513

转载 Linux下如何挂载磁盘

一、添加磁盘添加新硬盘重启服务器,添加完之后就可以重启机器了,如果你机器是开启的,进入系统并不能看见你刚添加的那块磁盘,只有等系统重启,重新加载之后才会显示安装的那块磁盘二、进入系统使用root用户进入系统三、 查看硬盘信息fdisk -l[root@localhost ~]# fdisk -l //磁盘命令1Disk /dev/sda: 2...

2018-07-09 15:21:38 733

原创 在linux使用命令配置串口

1. 获取串口号在Linux系统中一切皆为文件,所以串口端口号也不例外,都是以设备文件的形式出现。也就是说我们可以用访问文本文件的命令来访问它们。 a. 一般串口都是以/dev/ttyS#的格式显示,所以第一个连接的串口就是/dev/ttyS0,第二个连接的串口就是/dev/ttyS1…以此类推。b. USB转串口适配,没有额外驱动,它们会显示为/dev/ttyUSB#,如/dev/tt...

2018-07-09 15:21:02 7884

原创 海思寄存器操作

如何查看和修改寄存器 在程序中可以使用HI_SYS_ReadRegister,HI_SYS_WriteRegister接口进行寄存器的读写操作。l在单板命令行下,使用工具。单板/usr/sbin目录下,有一系列寄存器操作相关的工具,分别介绍如下:工具参数功能备注himd参数1:address,必选参数2:length,可选从address开始,以大端方式打印length字节长度的内容。如果没有输入...

2018-06-29 14:52:41 4417 2

原创 如何查看MPP的日志信息

如何查看 MPP 的日志信息【现象】需要查看日志和调整 log 日志的等级。【分析】Log 日志记录 SDK 运行时错误的原因、大致位置以及一些系统运行状态等信息。因此可通过查看 log 日志,辅助错误定位。目前日志分为7个等级,默认设置为等级 3。等级设置的越高,表示记录到日志中的信息量就越多,当等级为7时,系统的整个运行状态实时的被记录到日志中,此时的信息量非常庞...

2018-06-28 18:39:47 2844

转载 uboot操作指令

指令:bootm作用:用于将内核镜像加载到内存的指定地址处举例:bootm 0x82000000查看和修改环境变量指令常用环境变量列表:bootdelay 执行自动启动(bootcmd中的命令)的等候秒数 baudrate 串口控制台的波特率 bootfile 默认的下载文件名 bootargs 传递给Linux内核的启动参数 boo...

2018-06-28 10:17:41 643

转载 sched.h

#ifndef _LINUX_SCHED_H#define _LINUX_SCHED_H#include <uapi/linux/sched.h>struct sched_param { int sched_priority;};#include <asm/param.h> /* for HZ */#include <linux/cap...

2018-06-26 15:52:17 1731

原创 线程在linux中的实现

线程在linux中的实现线程机制提供了在同一程序内共享内存地址空间运行的一组线程,这些线程还可以共享打开的文件和其他资源。从linux内核的角度来说,并没有线程这个概念,linux把所有的线程都当做进程来实现,内核并没有准备特别的调度算法或是定义特别的数据结构来表示线程,而是将线程仅仅视为一个与其他进程共享某些资源的进程,每个线程都拥有唯一隶属于自己的task_struct,所以在内核中,...

2018-06-26 15:50:05 367

原创 进程终结

进程终结当一个进程终结的时候,内核必须释放所有的资源并通知父进程。通常这个任务是靠do_exit()来完成的,下面是所做的工作: 将test_struct中的标志程序设置为PF_EXITING调用del_timer_sync删除任一内核定时器,根据返回的结果,确保没有定时器在排队,也没有定时器处理程序在运行如果BSD的进程记账功能是开启的,do_exit调用acct_update_in...

2018-06-26 15:49:42 311

原创 进程描述符和任务结构

进程描述符和任务结构进程的列表存放在任务队列中,任务队列是一个双向的循环链表。链表中的每一项都是类型为task_struct的结构,称为进程描述符。进程描述符中包含有进程运行的所有信息,比如状态,标识符,优先级等等具体的介绍见https://blog.csdn.net/bit_clearoff/article/details/54292300 描述信息 说明 ...

2018-06-26 15:49:17 389

原创 进程家族树

进程家族树所有的进程都是PID为1的init进程的后代。内核在系统启动的最后阶段启动init进程init进程读取系统的初始化脚本(initscript)并执行其他的相关程序,最终完成系统启动的整个过程。系统中的每个进程必有一个父进程。拥有同一个父进程的所有进程被称为兄弟。进程间的关系存放在进程描述符中。每个task_struct都包含一个指向其父进程tact_struct、叫做par...

2018-06-26 15:48:53 4189

原创 进程的创建

进程的创建linux创建子进程是通过fork和exec来实现的,fork出的子进程与父进程的区别紧紧在于PID(进程ID),PPID(父进程ID)和某些资源和统计量不同。写时拷贝传统的forkO不统阅用直接把所有的资派复创给断创垃的进程。这种实现过于简单井且效率低下,因为它拷贝的数据也许井不共享.更糟的情况是,如果新进程打算立即执行一个新的映像.那么所有的烤贝都将前功尽弃。l...

2018-06-26 15:48:20 260

原创 进程

进程进程就是处于执行器的程序执行线程,简称线程(thread).是在进程中活动的对象。每个线程都拥有一个独立的程序计数器、进程栈和一组进程寄存器。内核调度的对象是线程.而不是进程。在现代操作系统中.进程提供两种虚拟机制:虚拟处理器和虚拟内存。虽然实际上可能是许多进程正在分享一个处理器,但虚拟处理器给进程一种假象,让这些进程觉得自己在独享处理器。而虚拟内存让进程在分配和苦理内存时觉得自己拥...

2018-06-26 15:47:56 169

转载 UID PID PPID 分别是什么

UID是用户ID,PID是进程ID,PPID是父进程ID。UIDUID 用户身份证明(User Identification)的缩写。UID用户在注册会员后,系统会自动的给你一个UID的数值。意思就是给这名用户编个号。 比如,甲在论坛注册后获得UID23 那其后乙注册应该是UID24 但是也有可能是其他,这个是整个论坛系统自动分配的。还有一个可能,比如,甲注册了论坛,UID...

2018-06-26 13:47:54 7247

原创 内核开发特点

1、内联函数(inline)使用内联函数时,该函数会在它所调用的位置上展开,这样做的原因是可以消除函数调用和返回带来的开销,不过代码会变长。在使用内联函数的时候通常会吧那些对时间要求比较高,而代码本身的长度比较短的函数定义为内联函数。定义内联函数的时候通常使用static作为关键字,并用inline来限定: static inline void eolf(insigned long t...

2018-06-22 17:48:11 544

原创 内核配置

理论内核中提供了许多的功能,支持了许多的硬件,因而有许多的东西需要配置,对于这些可以配置的选项,在配置文件中都是以CONFIG为前缀的,例如对SMP的配置选项是CONFIG_SMP,设置了该选项就启动SMP,否则SMP不起作用,编译的时候不会被编译。如下图为一个配置文件的部分截图: 对于这些配置选项中,有的是两个选项,有的是三个选项,三个选项的分别是Y,N,M。M的意思就是模块,选择该选...

2018-06-22 17:47:32 654

原创 内核源码树

目录 描述 arch 包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。 block 部分块设备驱动程序。...

2018-06-22 17:46:59 654

转载 设备树中ranges属性理解

作者 彭东林 pengdonglin137@163.com文章来源http://www.cnblogs.com/pengdonglin137/p/7401049.html正文一、设备树下面是我们将要实验的设备树的例子:/ { #address-cells = <1>; #size-cells = <1&g...

2018-06-20 16:26:16 7819

转载 设备树中#address-cells和#size-cells作用

#address-cells表示用几个cell表示地址,#size-cells表示用几个cell表示地址长度Example1/ { #address-cells = <0x1>; //在 root node下使用1个u32来代表address。 #size-cells = <0x0>; // 在root node下使用0个u32来代表size。...

2018-06-20 13:44:18 13615 2

转载 设备树

本文将介绍如何为一个新机器编写设备树。我们准备提供一个有关设备树概念的概述和如何使用这些设备树来描述一个机器。完整的设备树数据格式的技术说明书请参考ePAPR规范。ePAPR规范涵盖了比本文基本主题更丰富的细节,要查阅本文没有涉及到的高级用法请参考该规范。目录  1. 基本数据格式 2. 基本概念  2.1 模型机  2.2 初始结构  2.3 中央处理器  2...

2018-06-20 11:47:47 667

转载 Linux内存映射--mmap函数

注意mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。mmap在用户空间映射调用系统中作用很大。函数介绍头文件#include <sys/mman.h>函数原型void* mmap(void* start,size_t length,int prot,int ...

2018-06-19 13:39:43 548

转载 open函数参数详情

头文件:#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>定义函数:int open(const char * pathname, int flags);int open(const char * pathname, int flags, mod...

2018-06-19 11:53:28 1021

转载 linux下的shm目录

作用linux中/dev目录下一般都是一些设备文件,例如磁盘、内存、摄像头等。 /dev/shm这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中,而不是磁盘上。其大小是非固定的,即不是预先分配好的内存来存储的。(shm == shared memory)简要说明/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。...

2018-06-19 11:33:50 4259

转载 常用头文件

#include <linux/***.h> 是在linux-2.6.29/include/linux下面寻找源文件。#include <asm/***.h> 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include <mach/***.h> 是在linux-2.6.29/arch/arm/mach-s3c241...

2018-05-21 16:47:59 245

原创 混杂设备

混杂设备#include <linux/miscdevice.h>概念 将不容易分类的设备,归纳为混杂设备可以简化编程可以省略设备号,cdev,设备文件的创建数据结构 struct miscdevice { int minor; //设备号const char *name; //名字const struct file_operations *fops; //...

2018-05-18 15:19:29 336

原创 printk 打印优先级/临时修改输出优先级的方法

printk 打印优先级1、与printf的异同点:printk的信息只能输出到控制台printk使用可以指定优先级 标准使用方式: printk(“<0>” “hello %s\n”, func); <0> :是优先级不加优先级是默认的优先级理论: linux内核中打印优先级分为8级:0~7值越小优先级越高printk输出时的优先级高于阈值的可...

2018-05-18 14:55:56 1372

原创 导出符号

导出符号解决的是模块之间的相互函数调用问题,使用导出符号可以在其他模块中使用该模块的变量或函数,可以形成模块依赖a.c int add(int a, int b){return a+b;} EXPORT_SYMBOL(add);或者 EXPORT_SYMBOL_GPL(add); a.h extern int add(int, int);b.c...

2018-05-18 14:50:35 1357

原创 最简单的内核模块编程

最简单的内核模块编程1、实验演示vi hello.c#include <linux/init.h>#include <linux/module.h>int __init hello_init(void){ printk("hello world!\n"); return 0;}void __

2018-05-18 14:37:49 271

原创 linux驱动开发简介

一、linux驱动开发简介1、linux驱动和裸板驱动的异同裸板驱动像写英语作文linux驱动程序像做英语完形填空2、linux下驱动程序开发需要具备的硬件基础 能看懂电路原理图阅读芯片的datasheet软件基础 内核态编程的基础(linux驱动程序运行在内核态) 内核模块框架如何动态申请内存如何解决竟态问题如何实现阻塞访问内核中关于驱动程序框架...

2018-05-18 14:06:27 1259

原创 交叉编译openssl

1、解压下载好的openssl-1.0.1c.tar.gztar xvf openssl-1.0.1c.tar.gz2、编写build配置安装目录,编译工具./config no-asm shared –prefix=$PREFIX 说明:config就是配置脚本,这里不多说了。no-asm是在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支...

2018-05-17 10:46:15 4297

原创 【C语言】【unix c】web服务器项目代码

【C语言】【unix c】web服务器项目代码

2017-10-16 23:27:50 691 3

原创 【C语言】【unix c】web服务器项目笔记

【C语言】【unix c】web服务器项目笔记

2017-10-16 23:26:59 743

原创 【C语言】【unix c】信号量集(system v ipc)

【C语言】【unix c】信号量集(system v ipc)

2017-10-16 23:26:03 512

原创 【C语言】【unix c】信号量

【C语言】【unix c】信号量

2017-10-16 23:25:04 2069

原创 【C语言】【unix c】条件变量线程同步

【C语言】【unix c】条件变量线程同步

2017-10-16 23:24:13 1542

disksim-4.0的扩展插件,可以用于模拟ssd

This package extends the DiskSim disk-simulation environment from Carnegie Mellon University to provide limited support for solid-state-disk (SSD) simulation. Last published: March 6, 2009.

2023-03-18

disksim-4.0 磁盘模拟

disksim-4.0 磁盘模拟

2023-03-18

disksim 磁盘模拟器3.0版本说明

disksim 磁盘模拟器3.0版本说明

2023-03-18

file-5.40.tar.gz

file-5.40.tar.gz

2021-07-27

cortex_a73_trm_100048_0002_05_en.pdf

ARM® Cortex®‑A73 MPCore Processor Technical Reference Manual Revision r0p2

2020-05-09

GD25Q32C存储器

GD25Q32C存储器

2018-12-06

TLV320AIC23BPW数据手册

TLV320AIC23B是一种高性能立体声音频编解码器,具有高度集成的模拟功能

2018-10-17

音频基本知识

第一部分 模拟声音-数字声音原理 一、模拟声音数字化原理 Ø 采样频率 二、问题 1、为什么要使用音频压缩技术? 2、频率与采样率的关系 3、流特征 第二部分 音频压缩编码 一.有损(lossy)/无损(lossless)/未压缩(uncompressed)音频格式 二、语音(Voice)编码和音频(Audio)编码 三、无线通信中常见语音编码 1、AMR编码 2、ADPCM编码 四、各种主流音频编码(或格式)的介绍 1、PCM编码 2、WAVE格式(铃声) 3、MP3编码(铃声) 4、OGG编码(铃声) 5、MPC编码 6、mp3PRO编码 7、WMA(铃声) 8、RA 9、APE 10、AMR(铃声) 11、AAC/AAC+ 第三部分和弦铃声格式 1、MIDI合成音乐 第四部分单声道、立体声和环绕声 一、单声道(Mono): 二、立体声(Stereo): 三、3D环绕声(3DSurround) 四、环绕声系统与虚拟环绕声(VirtualSurround): 第五部分3D环绕声技术 一、SRS音效 Ø WOW: Ø SRS: Ø TruBass: Ø FOCUS: 二、BBE音效 三、Spatializer3D 四、DVX技术 第六部分数字音频格式和数字音频接口 一、数字音频格式 1、PCM格式及其分类 2、DSD音频格式 二、数字音频接口

2018-09-07

openssl-1.0.1c.tar.gz

openssl-1.0.1c,openssl-1.0.1c,openssl-1.0.1c,openssl-1.0.1c 安装方法见https://blog.csdn.net/weixin_38239856/article/details/80347535

2018-05-17

系统程序员成长计划

系统程序员成长计划,系统程序员成长计划,系统程序员成长计划,系统程序员成长计划

2018-05-04

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除