Time of Update: 2018-12-03
最近在做Android項目,可是解壓根檔案系統以後,就警示說硬碟不夠。當初設定使用的大小為15G。不過擴充分區還是很方便的。當然首先你得設定添加使用的硬碟大小,這次我一下提高到了30G,看它還警示否。一、建立新分區首先查看已經有的分區:root@ubuntu:/# fdisk -lDisk /dev/sda: 32.2 GB, 32212254720 bytes255 heads, 63 sectors/track, 3916 cylindersUnits =
Time of Update: 2018-12-03
buttons_atomic.c#include <linux/fs.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/cdev.h>#include <linux/ioport.h>#include
Time of Update: 2018-12-03
中斷系統的運行過程分析:--------------------------------------------------------------------------------------------------硬體:--------------------------------------------------------------------------------------------------1. 按下/鬆開按鍵2.
Time of Update: 2018-12-03
一、核心目錄結構:linux-2.6.22.6$ lsarch COPYING drivers ipc MAINTAINERS net(網路協議) security vmlinuxblock[塊裝置訪問的通用介面] CREDITS fs (nfs, cramfs, jiffs2/ubifs, vfat,procfs, sysfs) Kbuild Makefile
Time of Update: 2018-12-03
中斷下半部在中斷處理函數執行的過程中:1. 它可以被其他中斷打斷2. 它不會再次響應同一個中斷(同一個中斷不會嵌套處理)3. 如果中斷處理函數執行的時間很長,系統效能會受影響舉例:net_irq(){ 1. 從網卡晶片讀資料到記憶體裡 (比較快) 2. 處理資料 (比較耗時)}如果在net_irq執行期間,網卡不斷收到資料,由於上面第2點原因,導致net_irq不能立刻執行,資料會堆積最終可能丟失所以: net_irq要儘快執行完, 它只做最緊急的事: "1. 從網卡晶片讀資料到記憶體裡"
Time of Update: 2018-12-03
前文介紹了利用/dev/i2c-0在應用程式層完成對i2c裝置的操作,但很多時候我們還是習慣為i2c裝置在核心層編寫驅動程式。目前核心支援兩種編寫i2c驅動程式的方式。這裡分別稱這兩種方式為“Adapter方式(LEGACY)”和“Probe方式(new style)”。在介紹i2c裝置驅動前首先認識下兩個重要的結構體:struct i2c_driver { int id; unsigned int class;
Time of Update: 2018-12-03
怎麼利用平台裝置驅動機制來寫驅動:-------------------------------------------------------------------------1.先實現裝置方向的: 1)看晶片手冊,和原理圖擷取資源 2)構建平台裝置結構體,將平台資源加入進來 3)把我們的裝置資源掛在到虛擬匯流排的裝置連表中去2. 再實現裝置驅動: 1)構建平台驅動結構體,不知道的時候可以看別人的 2)註冊,把我們的驅動加入到平台裝置驅動連表中去
Time of Update: 2018-12-03
buttons.c#include <linux/fs.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/cdev.h>#include <linux/ioport.h>#include
Time of Update: 2018-12-03
Time of Update: 2018-12-03
平台裝置註冊的分析:/*做下面的資源需要看晶片手冊,看原理圖*/---------------------------------------------------------arch/arm/plat-s3c24xx/devs.c /*大部分的裝置控制器資源在這裡定義的*//* LCD Controller */static struct resource s3c_lcd_resource[] = { [0] = { .start = S3C24XX_PA_LCD, .end
Time of Update: 2018-12-03
一、Boa 程式的移植(1)從 www.boa.org 上下載Boa 源碼,當前的版本是 0.94.13,將其解壓並進入源碼目錄的src 子目錄。# tar xzf boa-0.94.13.tar.gz# cd boa-0.94.13/src產生 Makefile 檔案# ./configure(2)修改 Makefile 檔案(註:這裡修改根據自己的交叉編譯器自行修改),修改 CC = gcc為 CC = arm-linux-gnu-gcc修改 CPP = gcc - E為 CPP =
Time of Update: 2018-12-03
定時器兩要素:1. 時間2. 處理函數怎麼用定時器?1. 定義/設定一個結構體: static struct timer_list timer_task;init_timer(&timer_task);timer_task.function = gen_rtc_timer;timer_task.expires = jiffies + 100;2. 把這個結構體告訴核心: add_timer3. 修改逾時時間: mod_timer4. 去掉定時器: del_timer猜測:1.
Time of Update: 2018-12-03
一、檔案系統概述
Time of Update: 2018-12-03
led_timer.c#include <linux/fs.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/cdev.h>#include <linux/ioport.h>#include
Time of Update: 2018-12-03
/* 1.構建平台驅動的結構體*/static struct platform_driver s3c2410fb_driver = { .probe = s3c2410fb_probe, .driver = { .name = "s3c2410-lcd", .owner = THIS_MODULE, },};/*2. 註冊這個平台驅動結構體*/int __devinit s3c2410fb_init(void){ return
Time of Update: 2018-12-03
buttons.c#include <linux/fs.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/cdev.h>#include <linux/ioport.h>#include
Time of Update: 2018-12-03
misc_led.c#include <linux/fs.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/cdev.h>#include <linux/ioport.h>#include
Time of Update: 2018-12-03
buttons.c#include <linux/fs.h>#include <linux/module.h>#include <linux/errno.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/cdev.h>#include <linux/ioport.h>#include
Time of Update: 2018-12-03
Linux包含了許多的裝置驅動類型,而不管分類有多細,總會有些漏網的,這就是我們經常說到的“其他的”等等。在Linux裡面,把無法歸類的五花八門的裝置定義為混雜裝置(用miscdevice結構體來描述)。Linux/核心所提供的miscdevice有很強的包容性。如NVRAM,看門狗,DS1286等系統時鐘,字元LCD,AMD 768隨機數發生器。
Time of Update: 2018-12-03
一、概述 談到在linux系統下編寫I2C驅動,目前主要有兩種方式,一種是把I2C裝置當作一個普通的字元裝置來處理,另一種是利用linux I2C驅動體繫結構來完成。下面比較下這兩種驅動。第一種方法的好處(對應第二種方法的劣勢)有: ● 思路比較直接,不需要花時間去瞭解linux核心中複雜的I2C子系統的操作方法。第一種方法問題(對應第二種方法的好處)有: ● 要求工程師不僅要對I2C裝置的操作熟悉,而且要熟悉I2C的適配器操作;