自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

linyangspring的专栏

静心锤炼

  • 博客(52)
  • 资源 (3)
  • 收藏
  • 关注

原创 Zynq平台下linux的I2C驱动(RTC+EEPROM)

现在ARM下对SoC开发板的硬件描述都是采用devicetree文件,使用linux自带的dtc程序将dts编译成dtb之后,由u-boot将dtb导入给linux内核,linux内核读取dtb,然后注册设备的resource,linux内核使用of_系列函数API读取硬件资源。具体的说明可以看下宋宝华的bloghttp://blog.csdn.net/21cnbao/articl

2014-04-03 08:49:05 5316

原创 linux访问windows共享文件夹的两种方法

有时需要在linux下需要访问windows的共享文件夹,可以使用mount挂载或者使用samba连接。1、mount挂载首先创建被挂载的目录:$ mkdir windows将共享文件夹挂载到windows文件夹:$ sudo mount -t cifs -o username=share,password=share //192.168.66.198/share

2017-03-03 16:32:05 12459

原创 C语言配置文件解析库——iniparser

C语言配置文件解析库——iniparser前言:在对项目的优化时,发现Linux下没有专门的供给C语言使用的配置文件函数,于是搜索到了iniparser库,可以像那些面向对象语言一样,使用ini文件进行参数配置。介绍iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。基本语法Iniparser库的API可以对in

2017-03-03 16:30:54 713

原创 snprintf和sprintf区别分析

今天在项目中使用snprintf时遇到一个比较迷惑的问题,追根溯源了一下,在此对sprintf和snprintf进行一下对比分析。因为sprintf可能导致缓冲区溢出问题而不被推荐使用,所以在项目中我一直优先选择使用snprintf函数,虽然会稍微麻烦那么一点点。这里就是sprintf和snprintf最主要的区别:snprintf通过提供缓冲区的可用大小传入参数来保证缓冲区的不溢出,如果

2015-12-24 15:04:17 1481

原创 Linux下使用system()函数一定要谨慎

曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入。只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值、它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点。当初因为这个函数风险较多,故抛弃不用,改用其他的方法。这里先不说我用了什么方法,这里必须要搞懂system()函数,因为还是有很多人用了system()函数,有时你不得不面对它

2015-12-24 13:46:27 509

原创 linux获取进程执行时间方法

linux获取进程执行时间有两种方法可以获取,第一种是用time命令,time 进程。第二种是通过在程序中进行记录,首先利用sysconf函数获取时钟滴答数,再用times获取tms结构,详细看下面的示例代码1、前言测试一个程序的执行时间,时间包括用户CPU时间、系统CPU时间、时钟时间。之前获取之前时间都是在程序的main函数用time函数实现,这个只能粗略的计算程序的执行时

2015-12-24 08:58:40 1796

原创 Linux系统下如何挂载FAT32的U盘

Linux挂载U盘步骤如下1:将U盘插入USB接口,检查是否插好2:用fdisk命令检查分区和USB设备信息[root@wgods ~]# fdisk -lDisk /dev/sda: 1000.2 GB, 1000204886016 bytes255 heads, 63 sectors/track, 121601 cylindersUnits = cylinders of

2015-12-10 08:49:59 754

原创 Linux系统下如何挂载FAT32的U盘

Linux挂载U盘步骤如下1:将U盘插入USB接口,检查是否插好2:用fdisk命令检查分区和USB设备信息[root@wgods ~]# fdisk -lDisk /dev/sda: 1000.2 GB, 1000204886016 bytes255 heads, 63 sectors/track, 121601 cylindersUnits = cylinders of

2015-12-10 08:46:10 17632 1

原创 linux -- 环境变量的设置方法

linux -- 环境变量的设置方法一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来设置环境变量:1、直接用export命令:#export PATH=$PATH:/opt

2015-12-09 09:50:17 484

原创 Ubuntu 12.04登录root账户

Ubuntu 12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录。以普通身份登陆Ubuntu后我们需要做一些修改,普通用户登录后,修改系统配置文件需要切换到超级用户模式,在终端窗口里面输入: sudo  -s.然后输入普通用户登陆的密码,回车即可进入 root用户权限模式。然后执行: vi /etc/lightdm/lightdm.conf.增加 gre

2015-12-09 08:22:28 419

原创 让ubuntu开机快一点:记开机出现Waiting for network configuration...

在Ubuntu操作系统下,如果开机启动的时候网络没有连接,则会出现Waiting for network configuration....时间长达60s,难以接受有两个解决办法1、修改/etc/network/interfaces文件只保留以下:auto loiface lo inet loopback说明:设置静态IP不在此文范围这样做的

2015-12-09 08:18:57 677

原创 Ubuntu修改bash

ubuntu下/bin/sh的指向 ubuntu 下 /bin/sh 默认是dash,用ll /bin/sh就可以看出来sh是指向dash的链接,有时候会导致使用bash脚本的时候出问题。 如果遇到这个问题了,就要把sh指向bash。 用下面的命令把dash修改为bash用sudo dpkg-reconfigure dash 选择否或者使用 chsh在提示后输入/bin/bash

2015-12-08 17:56:09 1090

原创 Linux下查看和添加PATH环境变量

$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。编辑 PATH 声明,其格式为:  PATH=$PATH::::------:  你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$source .bash

2015-12-02 10:48:13 389

原创 linux 中断处理子系统分析

从最早的0.96c版本开始,linux网络部分一直采取TCP/IP协议族实现,这是最为广泛应用的网络协议,整个架构就是经典的OSI七层模型的描述,其中dev.c是属于链路层实现。从功能上看,其位于网络设备驱动程序和网络层协议实现模块之间,作为二者之间的数据包传输通道,一种接口模块而存在——对驱动层的接口函数netif_rx, 以及对网络层的接口函数net_bh。前者提供给驱动模块的中断例程调用,用

2015-05-28 14:39:49 490

转载 Linux 的僵尸(zombie)进程

原文地址:  http://coolshell.cn/articles/656.html可能很少有人意识到,在一个进程调用了exit之后,该进程 并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程的5种状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所 有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的

2015-05-28 11:43:14 541

转载 Linux驱动开发之使用dev_dbg调试设备驱动

原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8789807,作者:gqb6661、最近在写I2C下EEPROM的驱动程序,但发现使用i2c_new_probed_device函数无法枚举到设备,于是想调试该函数(位于driver/i2c/i2c-core.c内),看到其中有些调试信息如下:

2015-04-27 15:57:38 940

原创 zynq linux 3.15 ARM Device Tree 的初始化

arch\arm\mach-zynq\common.c完成设备树初始化DT_MACHINE_START(XILINX_EP107, "Xilinx Zynq Platform") .smp = smp_ops(zynq_smp_ops), .map_io = zynq_map_io, .init_irq = zynq_irq_init, .init_machine = zynq_i

2015-04-21 11:07:31 1209

原创 TM4C129X ARM芯片的EPI接口总线的uDMA操作解析

有关TM4C129X的uDMA操作,技术文档中解释的比较清楚,也提供了实用的ROM驱动函数。下面主要讲一下EPI总线。

2014-12-23 09:20:08 2465

原创 /drivers/net/phy/phy.c的状态机phy_state_machine分析

在mii总线初始化过程中,

2014-11-25 10:45:17 3419

转载 Linux设备驱动安装的基本过程

在windows系统里面,如果发现新的硬件设备但是系统没有可以用的自带驱动程序,那用户就得自己安装驱动。Linux内核的设计也是一样,下面就以marvelPHY设备的发现和驱动安装(即模块插入)为例说明一般嵌入式里设备的发现和安装过程。假如某个小系统里面,soc上集成了MAC,然后外面通过MDIOBUS接了一个PHY芯片,那么在定制内核的时候肯定会选择libphy以及相应的SOC MDIO B

2014-11-20 12:04:19 875

原创 linux时间函数

time(取得目前的时间)表头文件#include定义函数time_t time(time_t *t);函数说明此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t 并非空指针的话,此函数也会将返回值存到t指针所指的内存。返回值成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于errno中。范例#inc

2014-11-18 17:20:13 808

原创 dmaengine driver for linux

只是linux文档的翻译而已:3.4 什么时候异步操作会被执行async_函数返回后,提交的操作不会被马上执行。直到达到驱动满足的临界点后,之前挂起的操作才会被执行。可以通过async_tx_issue_pending_all函数强迫执行所有挂起的操作。3.5异步操作什么时候结束1、调用dma_wait_for_async_tx循环查询操作是否结束2、调用async_时

2014-09-30 11:24:33 1478

原创 ARM的irq和fiq中断以及中断嵌套

几天前一个学生问我ARM中断嵌套的问题,我才发现原在我心中理所当然的事对学生来说理解实属不易。     ARM有七种模式,我们这里只讨论SVC、IRQ和FIQ模式。     我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一根叫 irq pin, 一根叫fiq pin.     在ARM的cpsr中,有一个I位和一个F位,分别用来禁止IRQ和FIQ的。     先不说中断

2014-09-29 15:19:47 8599 2

原创 Linux如何及时响应外部中断

FPGA每隔100us给运行linux的ARM一个中断,要求在20us

2014-08-21 11:42:31 3594

原创 Zynq7000的MIO和EMIO之区别

Zynq7000系列芯片有5

2014-07-23 11:51:03 4601

原创 U-Boot启动过程分析

uboot包括stage1和stage2两个阶段。

2014-07-09 08:57:46 564

原创 深入理解计算机系统_读书笔记

开始阅读《深入理解计算机系统》

2014-06-16 10:30:08 753

原创 Linux的多进程与多线程编程

有一段服务器代码,之前使用

2014-06-06 08:02:48 511

原创 github版本控制

以前工作的时候所有的软件采用P4V软件进行版本控制,

2014-05-28 16:59:33 801

原创 linux的socket CAN驱动介绍

在linux中,CAN总线的驱动有两种实现

2014-05-27 13:17:06 8563 2

原创 PHY的MDIO/MDC简介

MDIO/MDC是在IEEE 802.3ae中加入的用来沟通MAC层

2014-05-27 10:22:08 13941

原创 为linux创建固化的qspi flash分区并进行升级

1、问题提出原因:

2014-05-26 17:08:59 2015

原创 volatile 与 cache 的疑惑

有一段DDR内存区,我用一个volatile变量指向起始位置。因为这段内存区会被一个FPGA以DMA的方式修改数据,请问我用volatile变量能否读取到FPGA修改后的内存数据,还是说我应该在读取volatile变量前使无效这段内存对应的cache?哪位大牛帮忙解疑,不胜感激。我使用的是ARM cortex-A9,读取volatile变量对应的汇编语言是ldr r0 [r1]。这个语句会不

2014-05-08 17:53:44 2601 1

转载 ARM协处理器详解

http://blog.sina.com.cn/s/blog_b90c3cdf0101i9rr.htmlARM指令集-协处理器指令详解 ARM可支持多达16个协处理器,主要的作用:ARM处理器初始化,ARM与协处理器的数据处理操作,ARM的寄存器与协处理器的寄存器之间传送数据,以及ARM协处理器的寄存器和存储器之间传送数据。共有5条:-CDP 协处理器数

2014-05-08 11:40:51 977

原创 linux下的多线程编程

linux下的多线程编程

2014-05-08 11:10:58 420

原创 ARM的MMU简介

MMU--操作系统必不可少的部件

2014-05-08 11:03:54 724

原创 ARM cortex-A9 的L2 Cache lockdown

在ARM

2014-04-29 16:00:11 6007 4

原创 IEC104规约简介

IEC104规约中的帧分为三种类型:

2014-04-15 14:36:28 4122

转载 Linux下时间/时区的设置以及gettimeofday()函数的使用方法

Linux下时间/时区的设置Linux机器上的时间比较复杂,有各式各样的时钟和选项等等。机器里有两个时钟,硬件时钟从根本上讲是CMOS时钟,而系统时钟是由内核维护的。1. 修改硬件时钟(1)更新机器的硬件时间。命令为:hwclock --adjust硬件时钟通常被设置成全球标准时间(UTC),而将时区信息保存在/usr/share/lib/timezone (或者在某些系统

2014-04-03 14:50:04 4178

原创 一个小并发服务器的代码优化

while(1){        //服务器阻塞,直到客户程序建立连接        sin_size=sizeof(struct sockaddr_in);        if ((new_fd=accept(sockfd,(struct sockaddr *)(&client_addr),(socklen_t *)&sin_size))==-1)        {

2014-03-26 15:19:30 509

嵌入式系统软件设计中的常用算法

嵌入式系统软件设计中的常用算法 嵌入式系统软件设计中的常用算法

2011-07-09

stc89c51的详细介绍

DIP-40,PLCC-44,PQFP-44 封装(RC/RD+系列PLCC、PQFP有P4 口地址E8H,AD 系列P4 口为C0H) RC/RD+系列PLCC、PQFP多两个外部中断P4.2/INT3,P4.3/INT2。 P4口均可位寻址 5V: 5.5V~3.8V乃至3.4V(24M以下) ;3V: 3.6V~2.4V乃至2.0V,仅针对RC/RD+系列 真正的看门狗,可放心省去外部看门狗,缺省为关闭,打开后无法关闭。单倍速和双倍速可反复设置 “6 时钟/ 机器周期”和“12 时钟/ 机器周期”可在ISP 编程时反复设置,新的设置冷启动后才生效 另 STC89LE516AD、58AD、54AD、52AD、51AD系列单片机,带高速A/D 转换

2009-03-07

蔬菜大棚环境实时监控系统

随着我国农业科技的发展,蔬菜大棚技术得到了广泛的应用,但如何对蔬菜大棚进行有效的管理,目前国内大多为人工进行,需要投入大量的人力、物力和财力,而且效率不高。 对于大棚内的管理人员,需要实时了解大棚内各种环境参数的变化,并据此在农科站技术人员的指导下进行相应的处理。而对于农科站的科技人员,要求能及时记录多个大棚内的环境参数,并以此进行技术指导。目前国内多为技术人员实地记录,人力投入多,而且不能同时指导多个大棚管理,实时性较差。急需一种高效实时的监控设备,能实现科技人员与大棚管理人员的互动,进行实时指导。

2009-03-07

空空如也

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

TA关注的人

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