自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

轮子工厂

物有本末,事有终始,知所先后,则近道矣。

  • 博客(27)
  • 资源 (9)
  • 收藏
  • 关注

原创 Linux 信 号 机 制

前面介绍了信号的基本概念,在这一节中,我们将介绍内核如何实现信号机制。即内核如何向一个进程发送信号、进程如何接收一个信号、进程怎样控制自己对信 号的反应、内核在什么时机处理和怎样处理进程收到的信号。还要介绍一下setjmp和longjmp在信号中起到的作用。 1、内核对信号的基本处理方法 内核给一个进程发送软中断信号的方法,是在进程所在的进程表项的信号域设置对应于该信号的位。这

2017-03-31 23:06:05 434

原创 C语言--字符串常量存贮

字符串常量,我们经常用到,但是它到底放在哪个存储区呢?是“自动存储区”还是“静态存储区”中?比如:char *pstr="hello world!";这里,"hello world!"是一个字符串常量,pstr是在栈中的变量。我想问,字符串常量,在哪个内存区域分配空间呢?好像应该不是在“栈区“分配空间吧!一、预备知识—程序的内存分配一个由C/C++编译的程...

2017-03-31 22:36:51 983

原创 linux-signal 信号基本概念和类型

信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念。信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。本节先介绍信号的一些基本概念,然后给出一些基本的信号类型和信号对应的事件。基本概念对于理解和使用信号,对于理解信号机制都特别重要。下面就来看看

2017-03-30 23:03:06 646

原创 C语言--typedef 和 #define 的区别

typedef 在表现上有时候类似于 #define,但它和宏替换之间存在一个关键性的区别。正确思考这个问题的方法就是把 typedef 看成一种彻底的“封装”类型,声明之后不能再往里面增加别的东西。1.可以使用其他类型说明符对宏类型名进行扩展,但对 typedef 所定义的类型名却不能这样做。如下所示:#define INTERGE intunsigned INTER...

2017-03-23 22:27:03 2564

原创 C语言typedef的理解

C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是 stu,要想定义一个结构体变量就得这样写:struct stu stu1;struct 看起来就是多余的,但不写又会报错。如果为 struct stu 起了一个别名 STU,书写起来就简单了:STU stu1;这种写法更加

2017-03-23 22:14:47 1150

原创 C语言结构体

结构体在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:struct 结构体名{ 结构体所包含的变量或数组};结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。请看下面的一个例子:struct stu{ char *name; /...

2017-03-23 21:57:59 407

转载 职场“29岁现象”:是继续打工还是创业?

最近流行一种说法,即29岁以前,属于青春“保质期”,29岁以后,就Timeout(过期)了,所谓的29岁现象。因此,如要在青春岁月里有所突破,创出一翻事业来,就宜赶在青春“过期”之前。张爱玲说:“成名要趁早。”当你站在二十几岁的尾巴上,当身边又一位朋友宣布结束自己的职业生涯,开始创业了。你是否内心也开始焦虑,是否开始夜不能寐,是否心里的那颗创业的心亦开始蠢蠢欲动?职场中“29岁

2017-03-20 23:34:56 1045

转载 Linux 删除和替换文件中某一行的方法

如果有一个abc.txt文件,内容是:aaabbbBATBUSINESSTYPE, INSIDEID--) ONLINE;INSIDEID--) ONLINEcccdddeeefff如果要删除ddd,那么脚本可以这样写:sed -i '/ddd/d' abc.txt如果删除的是一个变量的值,假如变量是var,应该写成:sed -i '/'"$

2017-03-17 23:03:36 19259

原创 C语言函数--strcpy和memcpy的比较

strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制,即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。memcpy提供了一般内存的复制,即memcpy对于需要复制的内容没有限制,因此用途更广。下面就是它们的类似库函数:已知strcpy函数的原型是:char* strcpy(char*

2017-03-15 22:55:21 382

转载 Linux进程间通信——使用消息队列

下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。Linu

2017-03-14 22:37:30 432

转载 最适合程序员转行的10大职业

“三十而立”,源自《论语·为政》,说的是人到了30岁就应该去面对生活中的一切困难。而对于软件开发领域的从业者来说,30岁,却是一道槛。30岁以后,适合程序员的工作到底是什么?专家和大家一起分解:  No.1 程序员  适合程序员30岁以后的工作,排名第一的,当然还是程序员。随着经验的增长,也许你每天产出代码的行数会不如以前,但你解决问题的能力却是无人能及的。同时,如果你可以一直保持

2017-03-13 22:43:35 67239 2

转载 linux中select函数分析.socket

Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式

2017-03-13 07:31:56 580

转载 Linux的select IO复用机制

#include int FD_ZERO(int fd, fd_set *fdset); int FD_CLR(int fd, fd_set *fdset); int FD_SET(int fd, fd_set *fd_set); int FD_ISSET(int fd, fd_set *fdset);在Linux中,我们可以使用select函数实现I/O端口的复用,

2017-03-09 22:28:18 344

原创 用Eclipse完成C语言编程的几个简单步骤

Eclipse是一款被广泛应用的开发工具,最初它是为编写Java程序而设计的,但由于它良好的架构并作为开源软件来发行,有很多的公司和个人以它为基础开发了插件,使得Eclipse有了越来越丰富的功能。CDT (C/C++ Development Tooling)是Eclipse的一个插件,它为Eclipse提供了开发C/C++项目的支持,大家可以用它来编写自己的程序。下面简单介绍一下

2017-03-07 21:49:46 96780 2

转载 Linux 数据流重定向

一、什么是数据流重定向在说数据流重定向之前,先来说说数据流的概念吧。数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr)。简单来说,标准输出指的是命令执行所回传的正确信息,而标准错误输出指的是命令执行失败后,所回传的错误信息。这些信息默认是打印在屏幕上的。那么什么时数据流重定向呢?从字面上理解就是改变数据流的流向,使之流

2017-03-06 22:28:35 636

原创 Linux下UART串口的测试小程序

Linux下关于关于UART方面的东西,其实很多芯片厂家已经帮我们把内核驱动模块给做好并加载进去了,这个代码是我参考IBM上的应用测试代码:#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <termios.h>#include <stdio.h>#define BAUDRATE B11

2017-03-06 21:50:33 8809 1

转载 Linux串口(serial、uart)驱动程序设计

一、核心数据结构 串口驱动有3个核心数据结构,它们都定义在<#include linux/serial_core.h> 1.uart_driver uart_driver包含了串口设备名、串口驱动名、主次设备号、串口控制台(可选)等信息,还封装了tty_driver(底层串口驱动无需关心tty_driver)。struct uart_driver { struct module

2017-03-05 18:19:12 5876 5

转载 如何在Linux检查并使用串口

如何根据不同的需求(如modem,连接空的module或连接到一个dumb终端)在Linux下检查并配置串口呢?Linux 提供了各种工具, Linux 使用 ttySx 作为一个串口设备的名称。例如,COM1 (DOS/Windows 名字) 是 ttyS0, COM2 是 ttyS1 等等。任务: 显示检测到的系统串口支持简单的运行 dmesg 命令$ dmesg | gr

2017-03-05 17:49:19 2628

原创 海思芯片.通用GPIO 使用篇

在一个嵌入式系统中使用最多的莫过于 通用输入输出 GPIO口。看到经常有朋友问海思为什么没有提供GPIO驱动。其实不然。在海思SDK  xxx/osdrv/tools/board_tools/reg-tools-1.0.0/source/tools/下 提供了himm的读写工具源码。你也可以根据himm的源码来写一个文件设备操作的驱动。毕竟轮子已经有了,我们就没必要再去造轮子了。这个工具是

2017-03-05 17:23:36 11582

转载 Linux探秘之用户态与内核态

一、 Unix/Linux的体系架构  如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核必须为上层应用提供

2017-03-04 23:45:56 413

原创 一般硬件通信的分类方式

我们知道硬件通讯主要就是两个设备之间的交流,这里就做下简单的介绍。 而通信可以分为并行通信和串行通信并行通信,在同一时刻发送多位数据(可以是多根线)。优点是发送速度快;缺点是传输距离短 资源占用多。串行通信,用一根线 在不同的时刻发送8位数据。优点是传输距离远 占用资源少;缺点是发送速度慢。通信的方式可以分为:全双工、半双工、单工 - 单工通信 只能接受或者发送 收音机 遥

2017-03-04 12:25:08 6969

原创 海思芯片上GPIO操作步骤的整理

最近在研究海思芯片,弄到GPIO这块时,一开始一头雾水,一番搜索加看文档,貌似搞明白怎么用了。特写此文,帮助自己理解。根据3516cv200手册(其它都一样),使用gpio只需要3步1 设置gpio端口复用所谓复用,就是指一个端口能同时干很多事,但是具体你要求他干啥,是需要设置的,这就是管脚复用寄存器的作用。举个例子,如果我们想设置GPIO6_7,需要首先找到对应的管脚复用

2017-03-03 23:20:30 26192 3

原创 ADS1.2和MDK兼容解决方法

报错如下:原因:ADS1.2与MDK不兼容 最近安装了Keil 4.73的最新版本,却莫名其妙的出现了与ADS 1.2软件不兼容的情况,弄了半天才弄好,为了大家少走点弯路,把网上论坛的解放方案分享一下(呵呵,原封不动抄周立功论坛的,内容如下;)/*****************************************************

2017-03-02 19:14:59 2350 2

原创 RVCT安装

一、(主要是三个软件安装)1.ActivePerl-5.8.8.822-MSWin32-x86-280952 右键安装2.PL-2303 Driver Installer 安装3.串口usb驱动->MTK6235->InstallDriver关机重启 二、(Windos经典XP桌面下)1.4554_ADS12_848_Windows    

2017-03-02 19:11:32 3793

原创 BDM的驱动安装(继续~~~)

使用TBDML无需安装其他驱动,直接用就行。使用USBDM需要安装额外的链接库和USB驱动:1.  解压文件夹USBDM_WIN43_4_6a.zip:(版本号:4.6/4.7) 2.  将USBDM插入电脑,无法自动识别安装驱动,打开硬件管理器: 3.  右击选择更新驱动: 4.  选择第二项在计算机中选择驱动程

2017-03-02 19:08:37 9489 1

原创 CodeWarrior安装步骤

CodeWarrior 的最新版可以在Freescale的官方网站下载到http://www.freescale.com/ Special Editions为免费版,有30K代码限制等一系列限制,但不会影响使用。  安装哪个版本都可以,安装后只要替换license.dat 文件就可以。有的人在Windows7下安装后运行会产生问题,可以先安装Visual Studio,再安装Cod

2017-03-02 19:06:33 17510 1

原创 gpio软件模拟IIC与硬件IIC驱动有什么区别

最近做一个项目,涉及到芯片级的通信方面的知识(IIC和SPI方面的通信)。但是方案选择的时候,发现自身对模拟IO口通信还是固件驱动通信一直没有一个很全面的认识,所以就在此记录一下。所谓硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的;软件I2C一般是用GPIO管脚,用软件控制管脚状态以模拟I2C通信波形。硬件I2C的效率要远高于软件的,而软件I2C由于不受管脚限

2017-03-01 21:11:53 11018 1

candictionary_v1_cn.pdf

本词典简要介绍 CAN 技术中使用的词汇和缩写。它并非用于代替任何标准或规范。借助CAN 词典,CAN 新用户可不必查阅标准和规范就能很方便地了解技术文章、手册等。

2020-05-05

字库生成器

字库生成器,可直接生成使用。 无需注册即可使用。。。

2017-11-01

用Eclipse和GDB构建ARM交叉编译和在线调试环境

用Eclipse和GDB构建ARM交叉编译和在线调试环境,很详细,可以参考

2017-05-02

Hi3515C H.264编解码处理器用户指南

Hi3520D/Hi3515A/Hi3515C H.264编解码处理器用户指南

2017-03-06

STM32与AVR的IIC通信例程

STM32F103作为主机,AVR的Mega8A作为从机惊醒通信,已验证没有问题,可以直接使用。

2017-03-04

H264文件查看器

查看H264文件结构层次的工具,可以很方面的查看文件的片组信息。

2017-02-28

AVS到MPEG-4的视频转码研究与实现

AVS到MPEG-4的视频转码研究与实现,随着多媒体技术的飞速发展,无线移动网、因特网等各种网络之间的融合已成为趋势,实现不同网络中视频编码方案之间的无缝连接变得越来越重要。

2017-02-23

h264中文协议(中英文对照)H264解码手册

h264中文协议(中英文对照)H264解码手册

2017-02-19

HEVC(H265)标准文档JCTVC-L1003-v9

HEVC(H265)标准文档JCTVC-L1003-v9,纯英文版

2017-02-19

空空如也

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

TA关注的人

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