- 博客(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.youkuaiyun.com/21cnbao/articl
2014-04-03 08:49:05
5646
原创 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
14325
原创 C语言配置文件解析库——iniparser
C语言配置文件解析库——iniparser前言:在对项目的优化时,发现Linux下没有专门的供给C语言使用的配置文件函数,于是搜索到了iniparser库,可以像那些面向对象语言一样,使用ini文件进行参数配置。介绍iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。基本语法Iniparser库的API可以对in
2017-03-03 16:30:54
765
原创 snprintf和sprintf区别分析
今天在项目中使用snprintf时遇到一个比较迷惑的问题,追根溯源了一下,在此对sprintf和snprintf进行一下对比分析。因为sprintf可能导致缓冲区溢出问题而不被推荐使用,所以在项目中我一直优先选择使用snprintf函数,虽然会稍微麻烦那么一点点。这里就是sprintf和snprintf最主要的区别:snprintf通过提供缓冲区的可用大小传入参数来保证缓冲区的不溢出,如果
2015-12-24 15:04:17
1737
原创 Linux下使用system()函数一定要谨慎
曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入。只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值、它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点。当初因为这个函数风险较多,故抛弃不用,改用其他的方法。这里先不说我用了什么方法,这里必须要搞懂system()函数,因为还是有很多人用了system()函数,有时你不得不面对它
2015-12-24 13:46:27
561
原创 linux获取进程执行时间方法
linux获取进程执行时间有两种方法可以获取,第一种是用time命令,time 进程。第二种是通过在程序中进行记录,首先利用sysconf函数获取时钟滴答数,再用times获取tms结构,详细看下面的示例代码1、前言测试一个程序的执行时间,时间包括用户CPU时间、系统CPU时间、时钟时间。之前获取之前时间都是在程序的main函数用time函数实现,这个只能粗略的计算程序的执行时
2015-12-24 08:58:40
1886
原创 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
842
原创 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
19042
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
518
原创 Ubuntu 12.04登录root账户
Ubuntu 12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录。以普通身份登陆Ubuntu后我们需要做一些修改,普通用户登录后,修改系统配置文件需要切换到超级用户模式,在终端窗口里面输入: sudo -s.然后输入普通用户登陆的密码,回车即可进入 root用户权限模式。然后执行: vi /etc/lightdm/lightdm.conf.增加 gre
2015-12-09 08:22:28
454
原创 让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
774
原创 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
1208
原创 Linux下查看和添加PATH环境变量
$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。编辑 PATH 声明,其格式为: PATH=$PATH::::------: 你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$source .bash
2015-12-02 10:48:13
438
原创 linux 中断处理子系统分析
从最早的0.96c版本开始,linux网络部分一直采取TCP/IP协议族实现,这是最为广泛应用的网络协议,整个架构就是经典的OSI七层模型的描述,其中dev.c是属于链路层实现。从功能上看,其位于网络设备驱动程序和网络层协议实现模块之间,作为二者之间的数据包传输通道,一种接口模块而存在——对驱动层的接口函数netif_rx, 以及对网络层的接口函数net_bh。前者提供给驱动模块的中断例程调用,用
2015-05-28 14:39:49
533
转载 Linux 的僵尸(zombie)进程
原文地址: http://coolshell.cn/articles/656.html可能很少有人意识到,在一个进程调用了exit之后,该进程 并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构。在Linux进程的5种状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所 有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的
2015-05-28 11:43:14
606
转载 Linux驱动开发之使用dev_dbg调试设备驱动
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.youkuaiyun.com/gqb666/article/details/8789807,作者:gqb6661、最近在写I2C下EEPROM的驱动程序,但发现使用i2c_new_probed_device函数无法枚举到设备,于是想调试该函数(位于driver/i2c/i2c-core.c内),看到其中有些调试信息如下:
2015-04-27 15:57:38
1009
原创 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
1281
原创 TM4C129X ARM芯片的EPI接口总线的uDMA操作解析
有关TM4C129X的uDMA操作,技术文档中解释的比较清楚,也提供了实用的ROM驱动函数。下面主要讲一下EPI总线。
2014-12-23 09:20:08
2602
转载 Linux设备驱动安装的基本过程
在windows系统里面,如果发现新的硬件设备但是系统没有可以用的自带驱动程序,那用户就得自己安装驱动。Linux内核的设计也是一样,下面就以marvelPHY设备的发现和驱动安装(即模块插入)为例说明一般嵌入式里设备的发现和安装过程。假如某个小系统里面,soc上集成了MAC,然后外面通过MDIOBUS接了一个PHY芯片,那么在定制内核的时候肯定会选择libphy以及相应的SOC MDIO B
2014-11-20 12:04:19
920
原创 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
1270
原创 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
1546
原创 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
9274
1
原创 volatile 与 cache 的疑惑
有一段DDR内存区,我用一个volatile变量指向起始位置。因为这段内存区会被一个FPGA以DMA的方式修改数据,请问我用volatile变量能否读取到FPGA修改后的内存数据,还是说我应该在读取volatile变量前使无效这段内存对应的cache?哪位大牛帮忙解疑,不胜感激。我使用的是ARM cortex-A9,读取volatile变量对应的汇编语言是ldr r0 [r1]。这个语句会不
2014-05-08 17:53:44
2818
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
1053
转载 Linux下时间/时区的设置以及gettimeofday()函数的使用方法
Linux下时间/时区的设置Linux机器上的时间比较复杂,有各式各样的时钟和选项等等。机器里有两个时钟,硬件时钟从根本上讲是CMOS时钟,而系统时钟是由内核维护的。1. 修改硬件时钟(1)更新机器的硬件时间。命令为:hwclock --adjust硬件时钟通常被设置成全球标准时间(UTC),而将时区信息保存在/usr/share/lib/timezone (或者在某些系统
2014-04-03 14:50:04
4403
原创 一个小并发服务器的代码优化
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
550
stc89c51的详细介绍
2009-03-07
蔬菜大棚环境实时监控系统
2009-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人