原创 Linux GPIO驅動 - 硬件及硬件抽象層

在很多的SOC芯片裏,GPIO硬件接口都是和其它硬件接口共用Pin腳,然後通過特定的寄存器去設置Pin使用時的類型。比如目前手上的項目使用的是Mar

原创 linux內核之鏈表操作解析

耐心品味本文章對於Linux內核中list的使用會有很深入的瞭解,獲益良多 本文只是對linux內核中的鏈表進行分析。內核版本是linux-2.6.32.63。文件在:linux內核/linux-2.6.32.63/include/l

原创 內存文件系統之--ramfs

本文檔作在XCU平臺上實現內存文件系統啓動的記錄文件,具體記錄如下: 平臺:ubuntu 14.04  硬件:XCU A樣 編譯器:gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu 編譯器安裝

原创 Writing a Resource Manager -- Chapter 1:What Is a Resource Manager?

Chapter 1:What Is a Resource Manager? 一般而言,資源管理器是向文件系統命名空間中註冊名稱的過程。其他進程使用該路徑與資源管理器進行通信。 爲了使QNX Neutrino RTOS具有很大的靈活性,最大

原创 linux gpio接口

一.相關結構體 1.gpio_chip代表一個芯片的一個gpio bank [cpp] view plain copy struct gpio_chip {  //gpio bank      const char  *labe

原创 Writing a Resource Manager -- Chapter 4 :POSIX-Layer Data Structures

Chapter 4 :POSIX-Layer Data Structures 資源管理器庫定義了(在<sys / iofunc.h>中)與POSIX層支持例程相關的幾個關鍵結構: iofunc_ocb_t (Open Control Bl

原创 內核模塊參數

模塊參數 引導模塊時,可以向它傳遞參數。要使用模塊參數加載模塊,這樣寫: insmod module.ko [param1=value param2=value ...] 爲了使用這些參數的值,要在模塊中聲明變量來保存它們,並在所有

原创 IO多路複用之select總結

1、基本概念   IO多路複用是指內核一旦發現進程指定的一個或者多個IO條件準備讀取,它就通知該進程。IO多路複用適用如下場合:   (1)當客戶處理多個描述字時(一般是交互式輸入和網絡套接口),必須使用I/O複用。   (2)當一個客

原创 關於Linux下內核編程函數使用頭文件包含的問題解決方案

  在進行內核編程時候,其不再像C編程那樣,函數的使用,我們可以通過man 查詢;所以對於內核編程函數的使用往往會給編程人員帶來很頭疼的問題,古人云工慾善其事必先利其器,所以一個好的工具對於我們編程人員來說也很重要,由於個人也是進過很多的

原创 GPIO的驅動模型

一、概述 GPIO是嵌入式系統最簡單、最常用的資源了,比如點亮LED,控制蜂鳴器,輸出高低電平,檢測按鍵,等等。GPIO分輸入和輸出,在davinci linux中,有關GPIO的最底層的寄存器驅動,\arch\arm\m

原创 CAN總線基礎知識(一)

1.CAN總線是什麼?     CAN(Controller Area Network)是ISO國際標準化的串行通信協議。廣泛應用於汽車、船舶等。具有已經被大家認可的高性能和可靠性。     CAN控制器通過組成總線的2根線(CAN-H和

原创 CAN總線基礎知識(二)

CAN協議和標準規範 1 由ISO標準化的CAN協議     CAN協議已經由ISO標準化,有2個版本,如ISO11898和ISO11519-2,它們之間在數據鏈路層沒什麼不同,但是在物理層有些區別。     (1)   關於ISO118

原创 sudo apt-get update error

修改源地址: deb https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse deb-src https://mirrors.ustc

原创 Linux GPIO驅動 - GPIO通用層

如果在內核配置的時候有打開CONFIG_GPIO_SYSFS標誌,內核就會在/sys目錄下導出GPIO的用戶空間操作接口。gpiolib_sysfs

原创 Linux 內核GPIO的學習

GPIO是嵌入式開發中最常見的接口,之前自己就有寫過小的GPIO驅動,提供ioctl接口給用戶空間操作。但直到最近才發現Linux自身就有完善的GP