自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

skdkjxy的专栏

好好工作,努力挣钱~柱子

  • 博客(39)
  • 资源 (22)
  • 收藏
  • 关注

转载 嵌入式 linux下cp带进度条的实现示例代码

实现Linux下带进度显示的cp命令 - xcpLinux下复制文件的命令cp非常强大,就是有一点不是很好:没有进度提示。尤其是在复制很多大文件时,控制台仅仅停在那里什么信息都没有让人非常不爽。当然可以通过shell脚本实现进度提示,不过我喜欢直接一点的方式:用C程序解决。1.遍历想要知道进度首先要统计源文件的个数和大小,然后再复制,所以需要对源文件做两次遍历。当然也可以只遍历

2014-08-30 15:35:15 1479

转载 嵌入式 Linux 虚拟系统文件交换器剖析

Linux 最显著特征是灵活性和扩展性,例如它的虚拟文件系统交换器(VFS)。您可以在各种设备上创建文件系统,包括传统的磁盘、USB flash 驱动、内存以及其他储存设备。您还可以在另一个文件系统环境中嵌入文件系统。探索导致 VFS 如此强大的因素,并了解 VFS 的主要接口和进程。    Linux 文件系统的灵活性和扩展性支持直接源于一组抽象接口。这组接口的核心就是虚拟文件系统交

2014-08-29 23:14:10 765

转载 嵌入式 nand flash坏块管理OOB,BBT,ECC

0.NAND的操作管理方式NAND FLASH的管理方式:以三星FLASH为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 (Block) = xxxx (Pages),1(Page) =528 (Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes,除OOB第六字节外,通常至少把OOB的前3

2014-08-29 23:13:25 1055

转载 嵌入式 Linux消息队列之命令行相关

消息队列 (也叫做报文队列)是Unix系统V版本中3种进程间通信机制之一。另外两种是信号灯和共享内存。这些IPC机制使用共同的授权方法。只有通过系统调用将标志符传递给核心之后,进程才能存取这些资源。这种系统IPC对象使用的控制方法和文件系统非常类似。使用对象的引用标志符作为资源表中的索引。消息队列就是一个消息的链表。就是把消息看作一个记录,并且这个记录具有特定的格式以及特定的优先级。对消息队列

2014-08-29 17:54:21 684

转载 嵌入式 Linux 进程间通信之信号灯的几点注意事项

1. 关于union semun结构体的定义和头文件的包含在用信号灯进行通信时,包含头文件:#include #include #include 但是,在编译程序的时候提示错误,提示union semun对应的类型不存在看到有加头文件:#include (不便于程序移植,如果包含该头文件,则不能移到UNIX系统下)但在加上该头文件之后,又会提示,说有些数据结构被重

2014-08-29 17:53:19 705

转载 嵌入式 Linux 进程间通信之消息队列的几点注意事项

1. 由于消息队列是属于内核的,因此在执行时,必须有Root权限才可以,否则会在访问消息队列时,出现EACCES错误,即访问权限的问题2. msgbuf.mtype的设置int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);msgp指向结构体:struct msgbuf {           

2014-08-29 17:52:42 2086

转载 嵌入式 Linux环境进程间通信(五): 共享内存(上)

共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是:同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管

2014-08-29 17:50:57 1249

转载 嵌入式 Linux环境进程间通信(四):信号灯

一、信号灯概述信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。信号灯有以下两种类型:二值信号灯:最简单的信号灯形式,信号灯的值只能取0或1,类似于互斥锁。注:二值信号灯能够实现互斥锁的功能,但两者的关注内容不同。信号灯强调共享

2014-08-29 17:26:16 1258

转载 嵌入式 Linux环境进程间通信(三):消息队列

概念解释:IPC随进程持续、随内核持续以及随文件系统持续的定义:随进程持续:IPC一直存在到打开IPC对象的最后一个进程关闭该对象为止。如管道和有名管道;随内核持续:IPC一直持续到内核重新自举或者显示删除该对象为止。如消息队列、信号灯以及共享内存等;随文件系统持续:IPC一直持续到显示删除该对象为止。消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作

2014-08-29 17:23:54 833

转载 嵌入式 Linux环境进程间通信(二):有名管道(FIFO)

1 有名管道相关的关键概念管道应用的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(named pipe或FIFO)提出后,该限制得到了克服。FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及F

2014-08-29 17:22:46 779

转载 嵌入式 Linux 进程间通信几种方式小结

一、进程间通信概述进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。D、资源共享:多个进程之间共享同样的资源。为

2014-08-29 17:21:23 2128

转载 嵌入式 Linux环境进程间通信(一):管道

1 管道相关的关键概念管道是Linux支持的最初Unix IPC( Inter process commuication )形式之一,具有以下特点:1> 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;2> 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);3> 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文

2014-08-29 17:20:02 727

转载 嵌入式 Linux 通过信号机制在进程间传递参数中的几个主要函数解析

1. sigqueue() 用于信号的发送函数功能:发送信号给特定的某个进程使用头文件:#include 函数原型: int sigqueue(pid_t pid, int sig, const union sigval value);参数:pid是指定接收信号的进程号;sig确定即将发送的信号;value是一个联合数据结构union sigval,

2014-08-29 17:19:06 675

原创 嵌入式 linux下进程间通过信号进行通信的KILL小结

kill函数用来发送信号给指定的进程,在Shell下输入man 2 kill可获取其函数原型如下:#include #include int kill(pid_t pid,int sig);该函数的行为与第一个参数pid的取值有关,第二个参数sig表示信号编号。如果pid是正数,则发送信号sig给进程号为pid的进程;如果pid为0,则发送信号sig给当前进程所属进程组里的

2014-08-29 17:17:10 1024

转载 嵌入式 Linux信号详解经典啊

一 信号的种类可靠信号与不可靠信号, 实时信号与非实时信号可靠信号就是实时信号, 那些从UNIX系统继承过来的信号都是非可靠信号, 表现在信号不支持排队,信号可能会丢失, 比如发送多次相同的信号, 进程只能收到一次. 信号值小于SIGRTMIN的都是非可靠信号.非可靠信号就是非实时信号, 后来, Linux改进了信号机制, 增加了32种新的信号, 这些信号都是可靠信号, 表

2014-08-29 17:15:41 702

转载 嵌入式 linux下bus、devices和platform的基础模型

一、kobject的定义:kobject是Linux2.6引入的设备管理机制,在内核中由struct kobject结构表示,这个结构使所有设备在底层都具有统一的接口.kobject提供了基本的对象管理能力,是构成Linux2.6设备模型的核心结构,它与sysfs文件系统紧密联系,每个在内核中注册kobject对象都对应与sysfs文件系统中的一个目录;kobject--->sysfs.dir

2014-08-29 16:51:37 1057

转载 嵌入式 linux下MMC/SD/SDIO识别与操作

从上篇文章的最后,我们知道host在扫描卡的过程中,其识别的顺序为SDIO  SD MMC,并且从它的注释可以看出,这个顺序是很重要的。那这篇文章,我们就看看SDIO的识别过程,它对应的函数就是mmc_attach_sdio(host) (函数位于文件drivers/mmc/core/sdio.c)                这个函数大概来说做了如下的工作             

2014-08-29 16:50:30 4840

转载 嵌入式 分析platform_get_resource

有如下实例:static struct resource net_resources[] = {[0] = {        .start       = ETHERNET_BASE,        .end = ETHERNET_BASE + SZ_4K - 1,        .flags      = IORESOURCE_MEM,}, [1] = {  

2014-08-29 15:42:04 5943

原创 嵌入式 ubuntu开启SSH服务

SSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-serversudo apt-get install openssh-server

2014-08-29 14:07:30 1560

转载 嵌入式 NAND flash文件系统JFFS2和YAFFS比较

JFFS是由瑞典的Axis Communications Ab公司开发的(1999,以GNU发布),针对flash设备的特性为嵌入式设备开发的JFFS1和JFFS2的设计中都考虑到了FLASH的特性特别是满足了上述3个条件,包括了垃圾回收,坏块管理等功能. 这两种文件系统属于LFS(Log-structured File System).这种文件系统的特点是一旦数据出错,容易恢复,但是系统

2014-08-27 21:45:07 6413

转载 嵌入式 NAND Flash的坏块管理设计

NAND Flash的坏块管理设计 摘要:主要介绍了基于嵌入式Linux的NAND Flash坏块管理设计和实现方案,详细阐述了坏块映射表的建立、维护及其相关算法,同时分析了此坏块算法在Linux内核及Bootloader中的具体应用。测试结果表明该算法能够处理NANDFlash的相关坏块问题,具有较高的稳定性。关键词:NAND Flash;嵌入式IAnux;映射表;坏块管理

2014-08-27 21:38:24 2523

原创 嵌入式 C语言实现在0x1000地址处写入一个单字节的整数

char a=2;*(char *)0x1000=a;Memset((char *)0x1000,2,1);

2014-08-27 12:41:23 2255

转载 嵌入式 Linux驱动虚拟地址和物理地址的映射

一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G。 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间。 每个进程的用户空间都是完全独立、互不相干的,用户进程各自有不同的页表。而内核空间是由内核负责映射,它并不会跟着进程改变,是固定的。内核空间地址有自己对应的页表,内核的虚拟空间独立于其

2014-08-27 11:00:05 3286

转载 嵌入式 栈溢出的几种情况

导致堆栈溢出主要有以下几种情况:一、局部数组过大。当函数内部的数组过大时,有可能导致堆栈溢出。例如:stack.c[cpp] view plaincopy#include    #define SIZE 1 * 1024 * 1024    int main()  {      int b[SIZE];      int i;       

2014-08-27 10:47:13 2553

原创 嵌入式 linux下以及arm下sd卡mmc的自动挂载以及自动卸载小结

1、自动挂载与卸载脚本优化:放在目录/ect/下:root@u12d32:/opt/qy_test/qy_avserver/a3518_80/create_auto_start# cat sd_card_removing #!/usr/bin/env sh #Author : kj #Timer : 2014-08-22 #Function : mount mmc de

2014-08-22 22:39:58 7245

原创 嵌入式 指定网卡名称的信息以及网络连通状态以及重连机制代码示例

#include #include #include  #include #include #include #include  #include #include #include #include #include #include #include #include #include #include  

2014-08-19 21:22:51 1448

原创 嵌入式 获取指定网卡在路由表中的网关以及源地址和目的地址

承诺没有内存泄漏以及sockfd未关闭等bug,如f

2014-08-15 17:04:02 2184

原创 嵌入式 Linux下怎么设置禁止别人PING我的IP(ICMP报文)

Linux下怎么设置禁止别人PING我的IP

2014-08-14 16:40:52 1471

转载 嵌入式 嵌入式Linux驱动工程师/BSP开发工程师面试笔试题集锦

以下题目可能与原题目有差入,但力争使题目与原题目接近。【一、来自Q群友】1. linux内核里面,内存申请有哪几个函数,各自的区别?2. IRQ和FIQ有什么区别,在CPU里面是是怎么做的?3.int *a;char *b;a 和 b本身是什么类型?a、b里面本身存放的只是一个地址,难道是这两个地址有不同么?4. 中断的上半部

2014-08-08 21:50:49 2728

转载 嵌入式 Linux工作队列实现机制

工作项、工作队列和工作者线程把推后执行的任务叫做工作(work),描述它的数据结构为work_struct ,这些工作以队列结构组织成工作队列(workqueue),其数据结构为workqueue_struct ,而工作线程就是负责执行工作队列中的工作。系统默认的工作者线程为events。工作队列(work queue)是另外一种将工作推后执行的形式。工作队列可以把工作推后,交由一

2014-08-08 21:43:28 975

转载 嵌入式 tasklet使用workqueue示例

asklet的使用比较简单,只需要定义tasklet及其处理函数并将两者关联例子:Void my_tasklet_func(unsigned long)DECLARE_TASKLET(my_tasklet.my_tasklet_func,data)代码DECLARE_TASKLET实现了定义名称为my_tasklet的tasklet并将其与my_tasklet_fu

2014-08-08 21:39:46 753

转载 嵌入式 中断处理与【irqsoft】、【tasklet】和【work queue】使用实例

中断处理由于I/O操作的不确定因素,以及处理器和I/O设备之间速度的不匹配,设备往往通过某种硬件信号异步地唤起处理器的注意。这些硬件信号就是所谓的中断。每个中断设备都被分配给一个相关的标识符,被称为中断请求(IRQ)号。当处理器检测到某一IRQ号对应的中断产生时,它将停止它现在的工作,并引用该IRQ所对应的中断服务例程(ISR)。中断处理函数ISR在中断上下文执行。中断上下文ISR是与

2014-08-08 21:05:23 786

转载 嵌入式 softirq,tasklet和workqueue的分析

对Softirq,tasklet和workqueue做一个简单的总结和分析。其实softirq和taskled都属于软中断,而工作队列是和软中断无关,仅仅是内核中的一个内核线程在等待工作任务,工作队列可以发送工作任务。不过他们还是有个共同点,就是都有延后执行的作用。1.首先看 do_softirq如何被调用和如何处理。#ifdef __ARCH_IRQ_EXIT_IRQS_

2014-08-08 21:00:51 674

转载 嵌入式 最全面的linux信号量解析

信号量一.什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。二.信号量的分类在学习信号量之前,我们必须先知道——Linux提供两种信号量:(1) 内核信号量,由内核控制路径使用(2) 用户态进程

2014-08-08 20:50:09 1676

转载 嵌入式 自旋锁及其衍生锁

自旋锁自旋锁(spinlock)是用在多个CPU系统中的锁机制,当一个CPU正访问自旋锁保护的临界区时,临界区将被锁上,其他需要访问此临界区的CPU只能忙等待,直到前面的CPU已访问完临界区,将临界区开锁。自旋锁上锁后让等待线程进行忙等待而不是睡眠阻塞,而信号量是让等待线程睡眠阻塞。自旋锁的忙等待浪费了处理器的时间,但时间通常很短,在1毫秒以下。   自旋锁用于多个CPU系

2014-08-08 20:36:35 733

转载 嵌入式 自旋锁与信号量小结

自旋锁的功能是为实现保护共享资源,保护共享资源在Linux中主要有以下几种: 自旋锁(spin lock)、信号量(semaphore)、原子操作、中断屏蔽 、BKL(Big Kernel Lock)、rwlock、brlock(只包含在2.4内核中)、RCU和seqlock(只在2.6内核中).       (一)自旋锁(spin lock)         自旋锁(spin lock)

2014-08-08 20:35:33 992

原创 嵌入式 海思平台3518a开发音频小记

一直都没有找到海思平台音频这么差的原因,最后找到了,原因就是海思在标准g71

2014-08-04 15:08:11 2450

原创 嵌入式 uboot下tftp代码追踪

一、网卡驱动的添加 网络在uboot中的启动是在uboot的第二阶段启动代码中 /lib_arm/board.cvoid start_armboot (void){}里面有网络初始化函数eth_initialize(gd->bd);进入函数你会发现一系列的网卡初始化函数#if defined(CONFIG_MCFFEC) mcffec_

2014-08-03 18:09:34 1009

原创 嵌入式 setjmp和longjmp小结

C语言的setjmp:异常处理与构建协作式多任务系统int setjmp(jmp_buf envbuf)宏函数setjmp()在缓冲区envbuf中保存系统堆栈里的内容,供longjmp()以后使用,setjmp()必须使用头文件setjmp.h。调用setjmp()宏时,返回值为0,然而longjmp()把一个变原传递给setjmp(),该值(恒不为0)就是调用longjmp()

2014-08-02 21:45:03 637

osd bmp demo

我把部分代码摘到附件中了,FYI 多路码流添加osd的demo,可以下载,但请不要照搬代码,更不要随意传播,谢谢!

2015-06-25

boost中文手册C++

boost中文手册C++ boost库让我们更快、更好地使用C++进行大型系统或者服务器开发工作,提高工作效率,很值得一看!

2015-05-21

tracepoint_lttng使用详解

tracepoint_lttng使用详解,主要是对函数耗时进行定性的统计,对性能优化方案有着举足轻重的效果!LTTng 是一个 Linux 平台开源的跟踪工具,是一套软件组件,可允许跟踪 Linux 内核和用户程序,并控制跟踪会话(开始/停止跟踪、启动/停止事件 等等)。这些组件被绑定如下三个包: •LTTng-tools:库和用于跟踪会话的命令行接口 •LTTng-modules:允许用 LTTng 跟踪 Linux 的 Linux 内核模块 •LTTng-UST:用户空间跟踪库

2015-03-23

lz4-r127.tar.gz

这个源码很不好早,,在此提供给大家参考和使用

2015-03-10

oracle多实例创建和DataGuard配置DEMO

oracle多实例创建和DataGuard配置,欢迎下载,个人觉得还是很不错的哦

2015-03-05

多路径multipath配置文档和相关概念

一、什么是multipath 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。

2015-01-07

paxos 算法 分析

很不错的paxos算法分析文档,值得一看,虽不能深入研究,但是可以初步了解!

2014-12-17

ceph-fs-rpm-build

对于,在redhat或者centos上进行建立rpm,可以说是一个必备的技能,由于项目需求,需要进行rpm包建立,故记录了rpm建立过程,供大家参考!

2014-12-08

centos7 ceph0.87

编译0.87版本ceph源码,并在centos7上成功搭建集群,并测试存储,包括相关rpms以及codes和最新ceph.conf

2014-11-24

vimrc_best

很好,我的用的很舒服,给大家看看,虽然我也从别的地方收集的,但是觉得对大家有帮助,所以分享一下!

2014-11-20

vimrc 配置文件

vimrc配置文件,精华配置,不错!

2014-11-20

centos_netcard_bonding

给大家分享一下,我成功配置的双网卡聚合的示例demo,其实就是相关的配置文件,只要放在对应的目录下就可以了

2014-11-19

Apache2-http-conf

Apache2-http-conf,可以实现在x86以及Linux下实现http上传或者下载服务

2014-10-24

aac+h264封装MP4

aac+h264封装MP4,适用于我们项目的平台,需要使用的朋友可以修改相关参数,有问题可以反馈给我skdkjxy@163.com,谢谢

2014-10-23

uboot-hi3518c配置表

uboot-hi3518c配置表(适用本项目平台),这是仅适用RMII 网络模式!

2014-10-09

一眼看出NALU中SPS与PPS与SEI与IDR与P帧

一眼看出NALU中SPS与PPS与SEI与IDR与P帧

2014-09-30

使用 libevent 和 libev 提高网络应用性能

使用 libevent 和 libev 提高网络应用性能

2014-09-28

odb示例DEMO

odb示例DEMO,仅供大家参考交流……

2014-09-28

C/C++面试题

经典嵌入式、笔试面试题目大全,这里包含了面试笔试的程序题目,和一些关键字的解析

2013-01-10

空空如也

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

TA关注的人

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