原创 led.S:12: Error: invalid constant -- `mov r0,#300000'

led.S:12: Error: invalid constant -- `mov r0,#300000' 300000超過了立即數範圍,改爲ldr r0, =300000就行了,關於立即數範圍請看下面這篇文章: http://bbs.c

原创 嵌入式系統上memcpy的性能優化

http://blog.sina.com.cn/s/blog_7062b7420101lmq5.html

原创 百度雲

最近用百度雲,上傳pdf格式書籍,這書籍百度服務器有,但是我上傳的pdf書籍添加了很多註釋,上傳113M的時間才幾秒,不是秒傳,如果沒添加註釋,肯定

原创 結構體初始化

結構體 成員開始只初始化了一部分,其它成員賦值可以後面進行 #include<stdio.h> struct stu { int num; char *name; int age; }

原创 linux 內核分析之list_head

點擊打開鏈接 本文詳細分析了 2.6.x 內核中鏈表結構的實現,並通過實例對每個鏈表操作接口進行了詳盡的講解。 一、 鏈表數據結構簡介 鏈表是一種常用的組織有序數據的數據結構,它通過指針將一系列數據節點連接成一條數據鏈,是線性表

原创 按鍵驅動深化-異步通知機制

在以前的實驗中獲得按鍵值的方法有: ①查詢方式:此類方式耗CPU資源高達98% ②中斷方式:應用調用read後進而調用驅動的drv_read,在執行wait_event_interruptible(buttons_waitq, condi

原创 內核中的 likely() 與 unlikely()

轉載自:http://blog.csdn.net/rstevens/article/details/1798561 內核中的 likely() 與 unlikely() 在 2.6 內核中,隨處可以見到 likely() 和 unlik

原创 中斷處理體系結構

在裸板程序按鍵中斷工程int下interrupt.c包含中斷處理函數EINT_Handle( )的實現: #include "s3c24xx.h" void EINT_Handle() { unsigned long oft

原创 linux內核input子系統解析

1、爲何引入input system?        以前我們寫一些輸入設備(鍵盤、鼠標等)的驅動都是採用字符設備、混雜設備處理的。問題由此而來,Linux開源社區的大神們看到了這大量輸入設備如此分散不堪,有木有可以實現一種機制,可以

原创 定時器去抖動

前面程序按鍵速度較快時出現按下打印幾個相同值的情況,這個和機械的抖動有關,現在使用定時器去抖動 #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs

原创 linux機制之IDR

http://blog.chinaunix.net/uid-24517893-id-761446.html linux機制之IDR 一.前言 在linux中有idr,關於idr的用處並不是清楚。查看網上所述知所謂IDR,其實就是和身份證的

原创 關於list_entry

[cpp] view plaincopy #define list_entry(ptr, type, member) \ ((type *)((char *)(ptr)-(unsigned long)(&((type *

原创 jiffies溢出與時間先後比較 + linux的HZ, Tick, Jiffies

Linux核心幾個重要跟時間有關的名詞或變數,底下將介紹HZ、tick與jiffies。 (1)HZ Linux核心每隔固定週期會發出timer interrupt (IRQ 0),HZ是用來定義每一秒有幾次timer interr

原创 同步互斥阻塞

同一時刻許多進程均可以打開中斷/poll/異步通知 的驅動設備,如果想在同一時刻只有一個進程可以打開設備,就要用到原子操作或者信號量 先看不是原子操作的後果: /*************************************

原创 關於__init、__initdata和__exit、__exitdata的學習筆記

轉載自:http://blog.chinaunix.net/uid-20543672-id-2985620.html 由於4年前對於C語言和Linux的知識貧乏,所以當時對於模塊中的函數定義沒有細看。這次在溫習《LDD3》的時候,重新看了