arm-linux-gcc arm-elf-gcc 區別

在基於ARM的嵌入式系統開發中,常常用到交叉編譯的GCC工具鏈有兩種:arm-linux-*和 arm-elf-*,兩者區別主要在於使用不同的C庫檔案。arm-linux-*使用GNU的Glibc,而arm-elf-*一般使用 uClibc/uC-libc或者使用REDHAT專門為嵌入式系統的開發的C庫newlib.Glibc。uClibc/uC-libc以及 newlib都是C語言庫檔案,只是所應用的領域不同而已,Glibc是針對PC開發的,uClibc/uC-libc是與Glibc

Linux核心驅動程式初始化順序的調整(1)

        Linux核心驅動程式初始化順序的調整 ,當在做一個驅動的時候要用到另一個驅動提供的API時,此時核心初始化時便碰到了一個依賴問題。而這也是面試老生常談的問題:  經常讓你說下你做的驅動,然後你說XXX驅動後,很可能問下驅動細節後,會有另外一個問題:    1.你寫了一個XXX驅動,那麼它是怎麼被核心執行的呢?  2.我有a,b,c三個裝置的驅動,怎麼讓他們按照b,a,c的順序載入      

ARM linux 建立頁表過程

paging_init 用來建立頁表,初始化zone的memory map void *zero_page; sort(&meminfo.bank, meminfo.nr_banks, sizeof(meminfo.bank[0]), meminfo_cmp, NULL); build_mem_type_table(); sanity_check_meminfo(); prepare_page_table(); map_lowmem();

深入理解Linux記憶體管理 – 實體記憶體

Linux存在於各種體繫結構上,所以描述記憶體需要架構獨立的方法。本章會描述用來管理memory bank,頁框的資料結構以及那些影響VM行為的flagsVM第一個重要的流行概念是Non Uniform Memory

Linux 交叉工具鏈的編譯

【實驗內容】        通過運用crosstool-0.43.tar.gz指令碼工具包來製作自己的交叉編譯器。並且此編譯器能夠編譯u-boot,linux核心,以及應用程式。本實驗旨在讓讀者學會一種編譯製作交叉編譯器的方法。在實際開發中,大多根據編譯目標,選擇一些編譯好的、經過測試的交叉編譯器。【實驗環境】1、ubuntu7.10/8.10/9.10發行版  2、linux-2.6.14核心  3、FS2410平台 【實驗步驟】        crosstool是由美國人Dan Kegel(

ARM處理器 的linux分頁機制

ARM MMU只支援兩級頁表地址轉換,也就是採用三級分頁映射,能夠滿足32bitCPU的儲存管理需求ARM支援的頁大小有幾種 - 1M, 64K, 4K, 1K。在linux

Linux kernel High memory

在32bit機器上,由於32bit地址空間的限制,最大定址範圍為2^32 - 1也就是4G的線性地址空間,linux 會按照3G/1G, 2G/2G, 1G/3G的分配方式,把這個4G的地址空間劃分為兩個部分所謂3G/1G就是3G應用空間 1G核心空間, 2G/2G就是2G的應用地址空間 2G的核心地址空間。我們這裡只考慮3G/1G的情況,即只有1G的核心空間。linux 核心又對這1G的核心地址空間進行了劃分,1.

linux kernel lpj參數

CELF- CE Linux Forum 在kernel提交了一個“Preset LPJ”的patch,這個patch可以通過預設LPJ來減少linux kernel啟動過程中校正loops_per_jiffy所需花費的時間。What is loops_per_jiffy?按字面的意思就是每jiffy的迴圈次數,jiffy是kernel

Linux Highmem的使用

Linux kernel zone有如下類型:ZONE_DMA,

Linux kernel和TLB

TLB - translation lookaside

Linux mmap記憶體映射

Linux系統調用mmap和mmap2,建立一個進程地址空間的映射,mmap/mmap2幾個常用的情境:1. 檔案對應普通檔案I/O操作,讀寫mmap映射後的記憶體,即可完成檔案的讀寫操作,kernel和userspace操作同一塊實體記憶體;而常規的檔案讀寫,需要迴圈調用read write

linux 終端裝置:系統終端裝置

在tty core代碼tty_io.c中,有如下幾行代碼/* * Ok, now we can initialize the rest of the tty devices and can count * on memory allocations, interrupts etc.. */static int __init tty_init(void){ cdev_init(&tty_cdev, &tty_fops); if

linux 終端裝置 – 線路規程

line discipline(LDISC) 線路規程,是linux和類unix系統終端子系統的一個軟體驅動層。終端子系統從上到下可劃分為三層:頂層tty core驅動層提供字元裝置介面(因為所有的終端裝置都是字元裝置);最底層是tty driver層用來和硬體進行通訊,實現tty_operations供tty core和 LDISC層調用;中介層line discipline實現終端輸入輸出資料處理的策略。line discipline把tty core和tty

linux uart終端 – 調用關係

核心功能調用關係可以通過dump_stack()函數分析出來uart裝置是tty裝置的一種,主從裝置號的分配依賴於平台實現,在我的mx51板上,主裝置號是217,從裝置號範圍為16-23終端驅動裝置號分配資訊可以通過proc檔案系統查看:cat /proc/tty/driveruart serial是tty裝置的一種,而tty裝置又是char 裝置。因此,tty驅動向上層提供file_operations實現,uart

理解linux虛擬檔案系統VFS – 概述

當前,除了linux標準的檔案系統Ext2/Ext3/Ext4外,存在很多種檔案系統,比如reiserfs, xfs, Windows的vfat NTFS,網路檔案系統nfs 以及flash 檔案系統jffs2, yaffs/yaffs2

linux進程管理 – 核心調度器

1966 /* Here we just switch the register state and the stack. */1967 switch_to(prev, next, prev);1968 1969

理解linux虛擬檔案系統VFS – 資料結構

file_system_type1406 struct file_system_type {1407 const char *name;1408 int fs_flags;1409 int (*get_sb) (struct file_system_type *, int,1410 const char *, void *, struct vfsmount *);1411 void (*

理解linux虛擬檔案系統VFS – 路徑尋找 path_lookup

路徑尋找是VFS的一個主要操作:給定一個檔案名稱,擷取該檔案名稱的inode。路徑尋找是VFS中相當繁瑣的一部分,主要是符號連結,檔案系統裝載點,以及. ..和//等奇怪路徑 引入了複雜性。nameidata資料結構尋找過程涉及到很多函數調用,在這些調用過程中,nameidata起到了很重要的作用:1. 向尋找函數傳遞參數;2. 儲存尋找結果。struct nameidata { struct dentry *dentry; struct vfsmount

Linux 進程地址空間 – 簡介

進程虛擬位址空間是linux的一個重要抽象,系統為每一個啟動並執行Linux進程提供了4GB的虛擬位址空間,進程之間不會相互幹擾,僅能訪問自己的虛擬位址空間地址。Linux進程的虛擬位址空間分為User和kernel兩個部分,0~3G是為進程的User地址空間,3G~4G為kernel地址空間。此外進程虛擬位址空間也使得許多進階的linux技術得以實現:比如記憶體映射,延遲分配,共用記憶體等。因此進程虛擬記憶體技術和kernel部分的地址空間管理相比,要複雜的多。希望通過如下小節,徹底搞清進程虛

Linux 檔案系統 – Ext4 Howto

去年就發現項目Android系統中已經用上了Ext4檔案系統,當時並沒有深究為什麼要使用Ext4檔案系統,使用ext4帶來的優點和缺點。最近有時間,正好整理下Ext4對於Ext2/Ext3帶來的變化。網上關於Ext4的文章並不多,只找到了來自http://kernelnewbies.org/Ext4/的Ext4 Howto,是一篇概括性的文章。1.

總頁數: 3662 1 .... 718 719 720 721 722 .... 3662 Go to: 前往

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.