推薦閱讀最新更新時間:2025-06-30 19:56
IMX6ULL - Linux根文件系統(tǒng)(rootfs)構建
一、Ubuntu-base20.04.3 Ubuntu官方已經制作好了各架構、各版本的base版根文件系統(tǒng),只需下載下來做少許改動即可。 下載Ubuntu Base 20.04.3 LTS (Focal Fossa) ubuntu-base-20.04.3-base-armhf.tar.gz 2021-08-19 10:56 22M 解壓 mkdir rootfs sudo chmod 777 rootfs tar -zxvf ubuntu-base-20.04.3-base-armhf.tar.gz -C rootfs #避免后面更新軟件報錯 sudo chmod 777 ./rootfs/tmp/ 安裝工具 s
[單片機]
linux驅動(七)gpiolib庫詳解
1:什么是gpiolib,為什么要有gpiolib? linux中從2.6.35以后就開始有gpiolib庫了,gpiolib的作用是對所有的gpio實行統(tǒng)一管理,因為驅動在工作的時候,會出現(xiàn)好幾個驅動共同使用同一個gpio的情況; 這會造成混亂。所以內核提供了一些方法來管理gpio資源; 2:如何學習gpiolib 第一:gpiolib庫的建立; 第二:gpiolib庫的使用方法:申請、使用、釋放; 3:我們首先來看一下這個文件:mach-smdkc110.c這個文件: smdkc110_map_io s5pv210_gpiolib_init 這個函數(shù)是gpiolib的初始化函數(shù) __
[單片機]
Linux中斷體系結構
1.中斷處理體系結構 Linux內核將所有中斷統(tǒng)一編號,使用一個irq_desc結構數(shù)組來描述這些中斷。 數(shù)組聲明在/linux/kernel/irq/handle.c中,其中#define NR_IRQS 128,定義在/linux/include/asm/irq.h中 1 /* 2 * Linux has a controller-independent interrupt architecture. 3 * Every controller has a 'controller-template', that is used 4 * by the main code to do the rig
[單片機]
Linux嵌入式 -- Bootloader , Uboo
1. Bootloader作用 PC機中的引導加載程序由BIOS(其本質是一段固件程序)和GRUB或LILO一起組成。BIOS在完成硬件檢測和資源分配后,將硬盤中的引導程序讀到系統(tǒng)內存中然后將控制權交給引導程序。引導程序的主要任務是將內核從硬盤上讀到內存中,然后跳轉到內核的入口點去運行,即啟動操作系統(tǒng)。 簡單地說,BootLoader就是在操作系統(tǒng)運行之前運行的一段小程序。通過這段小程序,可以初始化硬件設備,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調用操作系統(tǒng)做好準備。 系統(tǒng)加電或復位后,所有的CPU通常都從CPU制造商預先安排地址開始執(zhí)行。比如,S3C2410在復位后從地址0x00000000起開始執(zhí)行。而嵌入式
[單片機]
Linux 內核驅動自動創(chuàng)建設備節(jié)點并掛載設備
一、首先需要在最開始定義兩個數(shù)據(jù)結構: static struct class *firstdrv_class; static struct device *firstdrv_device; 二、在init函數(shù)里通過class_create和device_create函數(shù)創(chuàng)建相應的設備節(jié)點,示例代碼如下: static int first_drv_init(void) { /* 主設備號設置為0表示由系統(tǒng)自動分配主設備號 */ major = register_chrdev(0, first_drv , &first_drv_fops); /* 創(chuàng)建firstdrv類 */ firstdr
[單片機]
(linux自學筆記)linux按鍵中斷驅動
通常開發(fā)板自帶按鍵中斷的驅動,中斷已被注冊至內核。重新編譯linux內核去掉自帶驅動才能使用自己編寫的驅動。 linux中斷程序可分解為頂半部與底半部機制。頂半部完成盡可能少的緊急功能,底半部可以被新的中斷打斷。 驅動程序 #include linux/module.h #include linux/kernel.h #include linux/fs.h #include linux/init.h #include linux/delay.h #include linux/poll.h #include linux/irq.h #include asm/irq.h #include linux/inter
[單片機]
S3C6410嵌入式應用平臺構建(五)——linux-3.14.4移植到OK6410-(Nand分區(qū)問題)
前一篇文章,我們的Linux能后啟動了,只是在識別nand時候,沒有獲取到時鐘源,導致后面的分區(qū)沒喲進行。 我們從啟動的log發(fā)現(xiàn): s3c24xx-nand s3c6400-nand: failed to get clock s3c24xx-nand: probe of s3c6400-nand failed with error –2 于是追蹤到代碼: nandflash驅動中——s3c2410.c中 /* get the clock source and enable it */ info- clk = devm_clk_get(&pdev- dev, nand ); if (IS_ERR(
[單片機]
ARM Linux字符設備驅動程序
1、主設備號和次設備號(二者一起為設備號): 一個字符設備或塊設備都有一個主設備號和一個次設備號。主設備號用來標識與設備文件相連的驅動程序,用來反 映設備類型。次設備號被驅動程序用來辨別操作的是哪個設備,用來區(qū)分同類型的設備。 linux內核中,設備號用dev_t來描述,2.6.28中定義如下: typedef u_long dev_t; 在32位機中是4個字節(jié),高12位表示主設備號,低12位表示次設備號。 可以使用下列宏從dev_t中獲得主次設備號: 也可以使用下列宏通過主次設備號生成dev_t: MAJOR(dev_t dev); MKDEV(int major,int
[單片機]