Linux移植的一般過程

前一陣子在公司移植Linux2.6到一塊ARM11的開發板上,下面粗略講講移植Linux的一般過程。 一開始的UBOOT的移植不多說了。UBOOT最後有兩種方式進入Linux,一種是使用uImage,可以在引導時附加命令列參數,但操作起來比較麻煩。另一種較簡單的是使用tftp將Linux核心載入到0x80008000(預設起始地址)的地方,然後使用go命令直接跳轉。我使用的是第二種方式,其缺點是調整命令列參數的時候需要修改.config檔案,然後強制重新編譯setup.c(可以通過刪除setup

Linux Wireless架構總結

文章目錄 2.1 各層間關鍵資料介面 1.  無線網路驅動(ath9k_htc)     ath9k_htc是一個基於USB介面的SoftMAC無線網路適配器。為了其驅動能正常工作,首先必須調用usb_register來註冊驅動定義的usb_driver,以藉助USB Core的力量來處理與USB協議相關的事件。其代碼如下:static struct usb_driver ath9k_hif_usb_driver = {.name =

Linux Wireless子系統初始化

1. cfg80211_init    • cfg80211_wq工作隊列主要處理以下工作:       1) 清除:wireless_dev.cleanup_work       2) 掃描:cfg80211_registered_device.scan_done_wk       3) 事件:cfg80211_registered_device.event_work    • 註冊netlink,其名為:"nl80211",其操作為:nl80211_ops 

Linux mount程式碼分析

1.    資料結構vfsmountstruct vfsmount {                struct list_head mnt_hash;          // hash表                struct vfsmount*mnt_parent;   /* fs we are mounted on */                struct dentry*mnt_mountpoint;              /* dentry ofmountpoint *

Linux hrtimer分析(2)

本文介紹Linux2.6.29中,配置高精度模式的hrtimer與未配置高精度模式時行為的區別。本文暫不考慮高精度模式對Linux系統時鐘中斷的影響。 在沒有配置高精度模式時,hrtimer的逾時在系統時鐘中斷的輪循中檢查,所以此時hrtimer的定時精度還是以輪循的間隔為單位,精度與傳統的時間輪定時器一樣。在配置高精度模式後,hrtimer的逾時由struct

Linux Wireless基礎知識

1. 基本概念    • cfg80211:  用於對無線裝置進行組態管理。與FullMAC, mac80211和nl80211一起工作。(Kernel態)    • mac80211: 是一個driver開發人員可用於為SoftMAC無線裝置寫驅動的架構 (Kernel態)。    • nl80211: 用於對無線裝置進行組態管理,它是一個基本Netlink的使用者態協議(User態)    • WNIC : Wireless Network Interface Controller,

Linux系統下CPU頻率的調整

☆★省電or流暢★ ☆root@android:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_available_governorshotplug conservative ondemand userspace powersave interactive performance為了可以對幾種常見的CPU頻率調節模式有個基本的理解,下面簡單的總結了一下,根據不同方式的特點,自己來在效能與省電這兩對矛盾之間做個取捨,找出適合自己的平衡點吧!1、

ARM Linux系統的時鐘機制

1. Linux下有兩類時鐘:1.1 即時鐘RTC    它由板上電池驅動的“Real Time Clock”也叫做RTC或者叫CMOS時鐘,硬體時鐘。當作業系統關機的時候,用這個來記錄時間,但是對於啟動並執行系統是不用這個時間的。1.2 系統時鐘     “System clock”也叫核心時鐘或者軟體時鐘,是由軟體根據時間中斷來進行計數的,核心時鐘在系統關機的情況下是不存在的,所以,當作業系統啟動的時候,核心時鐘是要讀取RTC時間來進行時間同步. 2. 標準計時器2.1

Linux hrtimer分析–未配置高精度模式

 轉自:http://blog.csdn.net/walkingman321/article/details/6133171本文分析了Linux2.6.29中hrtimer的實現。 Linux2.6中實現了一種新的定時器hrtimer。與傳統定時器使用時間輪演算法不同,hrtimer使用了紅/黑樹狀結構演算法。hrtimer本身可以配置成高精度和普通精度兩種,在單CPU系統和多CPU系統中的實現也有區別。這裡先分析最簡單的配置成普通精度、單CPU的情況。配置成高精度的情況見後續文章。1.    

Linux如何清除系統cache

1. drop_caches在Documentation/sysctl/vm.txt中有如下描述:drop_cachesWriting to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.To free pagecache: echo 1 > /proc/sys/vm/drop_cachesTo

Linux hrtimer分析–配置高精度模式

轉自:http://blog.csdn.net/walkingman321/article/details/6151172本文介紹Linux2.6.29中,配置高精度模式的hrtimer與未配置高精度模式時行為的區別。本文暫不考慮高精度模式對Linux系統時鐘中斷的影響。       在沒有配置高精度模式時,hrtimer的逾時在系統時鐘中斷的輪循中檢查,所以此時hrtimer的定時精度(jiffy)還是以輪循的間隔為單位,精度與傳統的時間輪定時器一樣。     

Linux查看磁碟空間的好方法

 一、df 命令df 是來自於coreutils 軟體包,系統安裝時,就內建的;我們通過這個命令可以查看磁碟的使用方式以及檔案系統被掛載的位置;舉例:[root@localhost beinan]# df -lh Filesystem 容量 已用 可用 已用% 掛載點 /dev/hda8 11G 6.0G 4.4G 58% / /dev/shm 236M 0 236M 0% /dev/shm/dev/sda1 56G 22G 35G 39%

Linux Writeback機制分析

1. bdi是什麼?    bdi,即是backing device info的縮寫,顧名思義它描述備用存放裝置相關描述資訊,這在核心代碼裡用一個結構體backing_dev_info來表示。    bdi,備用存放裝置,簡單點說就是能夠用來儲存資料的裝置,而這些裝置儲存的資料能夠保證在電腦電源關閉時也不丟失。這樣說來,磁碟片存放裝置、光碟機存放裝置、USB存放裝置、硬碟存放裝置都是所謂的備用存放裝置(後面都用bdi來指示),而記憶體顯然不是2.

Linux workqueue工作原理

1. 什麼是workqueue       Linux中的Workqueue機制就是為了簡化核心線程的建立。通過調用workqueue的介面就能建立核心線程。並且可以根據當前系統CPU的個數建立線程的數量,使得線程處理的事務能夠並行化。workqueue是核心中實現簡單而有效機制,他顯然簡化了核心daemon的建立,方便了使用者的編程.     

Linux hrtimer的實現

1. Linux hrtimer的實現方案       Linux hrtimer的實現是依賴硬體(通過可程式化定時器來實現)的支援的,而且此定時器有自己的專用寄存器, 硬中斷和頻率。比如我的板子上的對應參數如下:    Timer at Vir:0xE0100200 = Phy:0xE0100200, using Irq:27, at Freq:250000000,由此可見,其頻率為250MHz,所以其精度為:1/250000000=4ns,比系統時鐘jiffy(HZ=100,精度為10ms)

Linux進程運行狀態圖

   ◆運行狀態(TASK_RUNNING)當進程正在被CPU執行,或已經準備就緒隨時可由發送器執行,則稱該進程為處於運行狀態(running)。進程可以在核心態運行,也可以在使用者態運行。當系統資源已經可用時,進程就被喚醒而進入準備運行狀態,該狀態稱為就緒態。這些狀態(圖中中間一列)在核心中表示方法相同,都被成為處於TASK_RUNNING狀態。◆可中斷睡眠狀態(TASK_INTERRUPTIBLE)當進程處於可中斷等待狀態時,系統不會調度該進行執行。當系統產生一個中斷或者釋放了進程正在等待的

ARM Linux 如何–註冊和觸發–非強制中斷

1. 註冊非強制中斷當然是通過open_softirq例子如下:void __init init_timers(void){int err = timer_cpu_notify(&timers_nb, (unsigned long)CPU_UP_PREPARE,(void *)(long)smp_processor_id());init_timer_stats();BUG_ON(err ==

Linux 記憶體檔案系統

 記憶體檔案系統(linux,FreeBSD)在Linux中可以將一部分記憶體當作分區來使用,我們稱之為RamDisk。對於一些經常被訪問的檔案,而它們又不會被更改,可以將它們通過RamDisk放在記憶體中,即可明顯地提高系統的效能。當然你的記憶體可要足夠大了。RamDisk有兩種,一種可以格式化,載入,在Linux核心2.0/2.2就已經支援,其不足之處是大小固定。另一種是核心2.4才支援的,通過Ramfs或者tmpfs來實現,它們不能被格式化,但是用起來靈活,其大小隨所需要的空間而增加或減少

Linux系統task堆棧

 Linux 系統中共使用了四種堆棧:1) 系統初始化時臨時使用的堆棧;2)  供核心程式自己使用的堆棧(核心堆棧),只有一個,位於系統地址空間固定的位置,也是後來任務0的使用者態堆棧;3) 每個任務通過系統調用,執行核心程式時使用的堆棧,我們稱之為任務的核心態堆棧,每個任務都有自己獨立的核心態堆棧;4)

Arm Linux系統調用流程詳細解析-SWI

 轉自:http://www.diybl.com/course/6_system/linux/Linuxjs/20090515/167024.htmlUnix系統通過向核心發出系統調用(system

總頁數: 3772 1 .... 236 237 238 239 240 .... 3772 Go to: 前往

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。