原创 snprintf和sprintf區別分析

今天在項目中使用snprintf時遇到一個比較迷惑的問題,追根溯源了一下,在此對sprintf和snprintf進行一下對比分析。 因爲sprintf可能導致緩衝區溢出問題而不被推薦使用,所以在項目中我一直優先選擇使用snprintf

原创 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_o

原创 Linux驅動開發之使用dev_dbg調試設備驅動

原創作品,轉載時請務必以超鏈接形式標明文章原始出處:http://blog.csdn.net/gqb666/article/details/8789807,作者:gqb666 1、最近在寫I2C下EEPROM的驅動程序,但發現使

原创 Zynq平臺下linux的I2C驅動(RTC+EEPROM)

現在ARM下對SoC開發板的硬件描述都是採用devicetree文件,使用linux自帶的dtc程序將dts編譯成dtb之後,由u-boot將dtb導入給linux內核,linux內核讀取dtb,然後註冊設備的resource,linux

原创 Linux設備驅動安裝的基本過程

在windows系統裏面,如果發現新的硬件設備但是系統沒有可以用的自帶驅動程序,那用戶就得自己安裝驅動。Linux內核的設計也是一樣,下面就以marvelPHY設備的發現和驅動安裝(即模塊插入)爲例說明一

原创 Linux下查看和添加PATH環境變量

$PATH:決定了shell將到哪些目錄中尋找命令或程序,PATH的值是一系列目錄,當您運行一個程序時,Linux在這些目錄下進行搜尋編譯鏈接。 編輯 PATH 聲明,其格式爲:   PATH=$PATH:<PATH1>:<PATH

原创 Linux系統下如何掛載FAT32的U盤

Linux掛載U盤步驟如下 1:將U盤插入USB接口,檢查是否插好 2:用fdisk命令檢查分區和USB設備信息 [root@wgods ~]# fdisk -l Disk /dev/sda: 1000.2 GB, 10002048860

原创 Linux 的殭屍(zombie)進程

原文地址:  http://coolshell.cn/articles/656.html 可能很少有人意識到,在一個進程調用了exit之後,該進程 並非馬上就消失掉,而是留下一個稱爲殭屍進程(Zombie)的數據結構。在Linux進

原创 Linux下使用system()函數一定要謹慎

曾經的曾經,被system()函數折磨過,之所以這樣,是因爲對system()函數了解不夠深入。只是簡單的知道用這個函數執行一個系統命令,這遠遠不夠,它的返回值、它所執行命令的返回值以及命令執行失敗原因如何定位,這纔是重點。當初因爲這個

原创 linux 中斷處理子系統分析

從最早的0.96c版本開始,linux網絡部分一直採取TCP/IP協議族實現,這是最爲廣泛應用的網絡協議,整個架構就是經典的OSI七層模型的描述,其中dev.c是屬於鏈路層實現。從功能上看,其位於網絡設備驅動程序和網絡層協議實現模塊之間

原创 讓ubuntu開機快一點:記開機出現Waiting for network configuration...

在Ubuntu操作系統下,如果開機啓動的時候網絡沒有連接,則會出現Waiting for network configuration....時間長達60s,難以接受 有兩個解決辦法 1、 修改/etc/network/interf

原创 Ubuntu修改bash

ubuntu下/bin/sh的指向 ubuntu 下 /bin/sh 默認是dash,用ll /bin/sh就可以看出來sh是指向dash的鏈接,有時候會導致使用bash腳本的時候出問題。 如果遇到這個問題了,就要把sh指向bash。 用

原创 linux獲取進程執行時間方法

linux獲取進程執行時間有兩種方法可以獲取,第一種是用time命令,time 進程。第二種是通過在程序中進行記錄,首先利用sysconf函數獲取時鐘滴答數,再用times獲取tms結構,詳細看下面的示例代碼 1、前言 測試一個程序

原创 /drivers/net/phy/phy.c的狀態機phy_state_machine分析

       本文分析基於PHY不採用中斷方式,而且是固定速率模式,不採用自適應。       在mii總線初始化過程中,mdio總線會通過mdiobus_scan()掃描掛載在該總線上的所有phy設備,並且通過phy_device_c

原创 Ubuntu 12.04登錄root賬戶

Ubuntu 12.04默認是不允許root登錄的,在登錄窗口只能看到普通用戶和訪客登錄。以普通身份登陸Ubuntu後我們需要做一些修改,普通用戶登錄後,修改系統配置文件需要切換到超級用戶模式,在終端窗口裏面輸入: sudo  -s.然