原创 安全必知 黑客網絡攻擊的一般過程

       寫在閱讀之前:由於本文涉及比較多的專業術語及互聯網工作原理,需要讀者具有一定的網絡基礎,適合於對網絡安全有一定研究的準專業人員。    目 前造成網絡不安全的主要因素是系統、協議及數據庫等的設計上存在缺陷。由於當今的計算機網

原创 Linux 字符設備驅動程序的編寫框架

一、Linux device driver 的概念 系統調用是操作系統內核和應用程序之間的接口,設備驅動程序是操作系統內核和機器硬件之間的接口。設備驅動程序爲應用程序屏蔽了硬件的細節,這樣在應用程 序看

原创 Linux下USB從設備使用gadget API

一、USB從設備驅動介紹 USB總線上主要有三類設備:主控制器(Host Controller, such as EHCI、UHCI、OHCI)、集線器(hub)和設備(device)。Host controller(HC)負責總線的管

原创 Linux NAND FLASH驅動代碼分析

FLASH驅動在嵌入式系統中有着舉足輕重的位置,而目前市場上NAND FLASH的價格又要便宜與NOR FLASH,隨着越來越多的平臺支持從NAND FLASH中啓動,掌握NAND flash的驅動編寫有着重要的現實意義,由於內核已經

原创 PCI總線系統體系結構

PCI (Peripheral Component Interconnect)總線是一種高性能局部總線,是爲了滿足外設間以及外設與主機間高速數據傳輸而提出來的。在數字圖形、圖像和語音處理,以及高速 實時數據採集與處理等對數據傳輸率要求較

原创 標準IO與文件IO 的區別

先來了解下什麼是標準IO以及文件IO。 標準IO:標準I/O是ANSI C建立的一個標準I/O模型,是一個標準函數包和stdio.h頭文件中的定義,具有一定的可移植性。標準IO庫處理很多細節。例如緩存分配,以優化長度 執行IO等。標準的

原创 mdev實現U盤或SD卡的自動掛載

mdev是busybox中的一個udev管理程序的一個精簡版,他也可以實現設備節點的自動創建和設備的自動掛載,只 是在實現的過程中有點差異,在發生熱插拔時間的時候,mdev是被hotplug直接調用,這時mdev通過環境變量中的 ACTI

原创 淺談malloc與 calloc、realloc、new 的區別

寫此文章,主要是讓初學者,能夠清楚的認識malloc,calloc, realloc,與new之間的區別 相關函數原型:   #include <stdlib.h> void *calloc(size_t nmemb, size_t s

原创 實例解析linux內核I2C體系結構

一、概述 談到在linux系統下編寫I2C驅動,目前主要有兩種方式,一種是把I2C設備當作一個 普通的字符設備來處理,另一種是利用linux I2C驅動體系結構來完成。下面比較下這兩種驅動。 第一種方法的好處(對應第二種方法的劣勢)有:

原创 嵌入式Linux交叉編譯環境的建立(基於 ubuntu 8.10)

在進行嵌入式開發之前,首先要建立一個交叉編譯環境,這是一套編譯器、連接器和libc庫等組成的開發環境。本文具體說明了嵌入式交叉編譯環境的建立過程 和具體的操作步驟,希望能夠對各位朋友搭建對應的交叉編譯環境有所幫助。 一、所需軟硬件環境

原创 基於Socket的UDP和TCP編程介紹

一、概述 TCP(傳輸控制協議)和UDP(用戶數據報協議是網絡體系結構TCP/IP模型中傳輸層一層中的兩個不同的通信協議。 TCP:傳輸控制協議,一種面向連接的協議,給用

原创 SDRAM工作原理及S3C2410 SDRAM控制器配置方法

SDRAM的工作原理、控制時序、及相關控制器的配置方法一直是嵌入式系統學習、開發過程中的一個難點。掌握SDRAM 的知識對硬件設計、編寫系統啓動代碼、提高系統存取效率、電源管理都有一定的意義。本文想通過: 1.SDRAM的工作原理。   

原创 Linux啓動過程剖析

Linux啓動過程的剖析能幫助那些想深入學習Linux用戶建立一個相關Linux啓動過程的清晰概念,進而可以進一步研究Linux接下來是如何工作的。 Linux啓動過程如下:當用戶打開PC的電源,BIOS

原创 異步串行通訊和同步串行通訊對比

在計算機系統中,CPU和外部通信有兩種通信方式:並行通信和串行通信。而按照串行數據的時鐘控制方式,串行通信又可分爲同步通信和異步通信兩種方式。 1、異步串行方式的特點 所謂異步通信,是指數據傳送以字符爲單位,字符與字符間的傳送是

原创 一個通用Makefile的編寫

我們在Linux環境下開發程序,少不了要自己編寫Makefile,一個稍微大一些的工程下面都會包含很多.c的源文 件。如果我們用gcc去一個一個編譯每一個源文件的話,效率會低很多,但是如果我們可以寫一個Makefile,那麼只需要執行一個