1. 程式人生 > >uclinux 下各個資料夾的作用

uclinux 下各個資料夾的作用

uClinux:
vendors: 目標處理器相關,包括指令碼,該處理器的預設的配置檔案,在這裡增加對目標處理器的支援
openswan: IPsec相關
config: 配置核心 make menuconfig&&xconfig&&config相關指令碼
   scripts/lxdialog: 實現核心配置時的選單、訊息(配置選擇框)等的指令碼檔案
   scripts/Menuconfig: (make menuconfig)實現配置選項的選擇、取消、設定為模組、幫助工
tools: ucfront:gcc(ucfront-gcc,ucfront-g++)和ld(ucfront-ld)
bin: 產生flash image檔案相關
autoconfig.h: 預設的make menuconfig的配置檔案
config.arch: 由目標處理器產生的config檔案
Makefile: 預設編譯的是2.6核心(在make menuconfig裡可選)
bin: flash相關
lib: 庫資料夾:*.c、*.h
include: 指向lib下的*.h標頭檔案
user: 使用者應用程式,在這裡增加應用程式
編譯uClinux:
在http://www.uclinux.org/pub/uClinux/arm-elf-tools/ 下載arm-elf-tools-20030314.sh(./arm-elf-tools-20030314.sh出錯,不知道為什麼,好象跟gzip有點關係),改為從(這個工具是把gcc編譯的檔案格式轉換成uCLinux可執行的檔案格式flat用的), 解壓後替換原來/usr/local(注意備份原來的local目錄),這個包的功能是安裝工具鏈。
在http://www.uclinux.org/pub/uClinux/dist/ 下載uClinux-dist-20070130.tar.gz
執行tar zxvf uClinux-dist-20041215.tar.gz並進入uClinux-dist目錄。
make menuconfig(在此選擇目標處理器和核心版本,配置核心和應用程式)
make dep (2.6核心好象不用)
make
增加glibc庫:
   
   只需在uClinux-dist目錄下增加一目錄glibc,把相關的原始碼檔案放在該目錄中。
如何增加應用程式:
1、user/Makefile : 增加如下一行
     dir_$(CONFIG_USER_NEWAPP_NEWAPP)   += newapp
2、config/Configure.help:增加如下一行
     CONFIG_USER_NEWAPP_NEWAPP
        This program does fooey things to your bars.
3、config/config.in : 增加下列內容
     bool  'newapp'  CONFIG_USER_NEWAPP_NEWAPP
     bool  'bar'       CONFIG_USER_NEWAPP_BAR (如果user/newapp包含有make 'newapp'和'bar'的程式碼,就加上這句)
4、usr/newapp/Makefile : 內容如下(newapp下只有一個可執行檔案的情況)
     EXEC = newapp
     OBJS = newapp.o
     
     all : $(EXEC)
     $(EXEC): $(OBJS)
            $(CC) $(LDFLAGS)  -o  

[email protected] $(OBJS) $(LDLIBS)
     romfs :
            $(ROMFSINST)   /bin/$(EXEC)
     clean :   
            -rm -f $(EXEC) *.elf *.gdb *.o

arm-elf-tools生成的檔案是flat格式,一種2進位制檔案格式
arm-linux-tools 生成的檔案格式是elf,一種可以在x86體系下執行的可執行檔案格式。
安裝arm-elf-tools-20030314.sh(以root身份)
./arm-elf-tools-20030314.sh
If you get the error message 'tail: cannot open `+43' for reading: No such file or directory' when installing, change line 39 from:
tail +${SKIP} ${SCRIPT} | gunzip | tar xvf -
to:
tail -n+${SKIP} ${SCRIPT} | gunzip | tar xvf -
根目錄下的Makefile檔案:
     make menuconfig項執行流程:
          首先讀入根目錄下的config.in檔案,該檔案的作用是:在敲入make menuconfig之後,出現選擇vendor,選定目標處理器後,再選擇對應目標的不同型號的產品,選擇核心版本、LIBC型別、匯入、匯出配置檔案及其預設的值。
          然後讀入/config/script/lxdialog資料夾的內容,進行選單,選項框等的設定。
          最後讀入的是/config/script/Menuconfig檔案,配置核心,包括三態(*,空,M),選項幫助(呼叫的是/config/Configure.help檔案),檢視readme(/config/script/README.Menuconfig檔案),匯入、匯出配置檔案。
          儲存核心配置,執行/config/setconfig設定預設配置。
     make操作時會自動完成核心、C庫、應用程式的編譯。
uClibc/libc/sysdeps/linux
     與uClibc關聯的目標處理器型別。If want to port uClibc to some new Linux architecture(mips,etc),this is the place to add that support.
uclinux/vendors/config:
     對應各種平臺的編譯器、聯結器,彙編器,CC、CXX
     
在linux特定版本目錄下(如linux-2.6.x)配置特定目標處理器:
make arch=arm menuconfig
/uclinux-dist/tools/ucfront/ucfront.c:
     查詢編譯器,查詢GCC檔案,新增共享庫相關函式實現。
     
.PHONY : clean
     .PHONY表示clean是偽檔案,在Makefile檔案中,make時不會自動執行,make clean時才執行。
檢視包含特定字串的檔案:
     find /workshop/uclinux -print |xargs grep CROSS_COMPILE 或
     find / -name "*" -exec grep " CROSS_COMPILE " {} /; -print
檢視檔案佔用空間:
     du -h 可檢視檔案、目錄的佔用空間
     df 檢視已掛載的檔案系統的空間使用情況
sh-linux-tools-20021008.tar.gz:
      HITACHI
I386-linux-tools-20070808.tar.gz:
      Soekris
M68k-elf-tools-20061214.sh:
      SnapGear
Sparc-elf-tools-.tar.gz:
      LEON-TSIM
Vendor目錄下的目標處理器由特定交叉工具鏈來編譯
步驟(不直接使用make):
1.    make menuconfig
2.    make dep:只有第一次編譯的時候需要
3.    make lib_only :編譯uclibc
4.    make user_only :編譯應用程式
5.    make romfs :組織成根檔案系統
6.    make image :生成romfs的映象檔案和linux的映象檔案
7.    make linux :編譯linux核心,需要第6步生成的romfs.o檔案
8.    make image :得到uclinux可執行檔案的映象
可用的交叉工具鏈:
    www.snapgear.org

相關推薦

uclinux 各個資料作用

uClinux:vendors: 目標處理器相關,包括指令碼,該處理器的預設的配置檔案,在這裡增加對目標處理器的支援openswan: IPsec相關config: 配置核心 make menuconfig&&xconfig&&config相關

liunx根目錄各個資料作用

linux根目錄下各資料夾的作用   /bin 二進位制可執行命令    /dev 裝置特殊檔案    /etc 系統管理和配置檔案    /etc/rc.d 啟動的配置檔案和指令碼    /home 使用者主目錄的基點,比如使用者user的主目錄就是/home/user,

linux根目錄各個資料作用

經常會忘記linux根目錄各個檔案的作用,所以記下來以備參考。  /bin:  存放最常用命令;  /sbin :  該目錄用來存放系統管理員使用的管理程式  /boot : 啟動Linux的核心檔案;  /cdrom : 關於光碟機的,沒有為空;  /dev :裝置檔案;

tomcat目錄各個資料作用

1、開啟tomcat安裝目錄 bin目錄存放的是存放可執行程式的目錄 其次往下看common資料夾,這個是做什麼用的呢,common資料夾是存放公共jar包的 再看conf資料夾,這個是做什麼用的

Linux檢視某目錄各個資料的大小

df -h 命令檢視磁碟剩餘空間 du -h –max-depth=1 注意:max之前有兩個- -h表示檔案大小單位為G –max-depth=1表示深度為1,即代表當前目錄下一級資料

Android系統根目錄各個資料作用與區別介紹

· 介紹     作為一位android開發者,我們怎麼能不瞭解android的系統目錄呢?通過對android系統的學習,我們可以藉助android studio的模擬器檢視工具,進入android手機系統目錄來檢視各個系統檔案。下面我們來學習如何進入系統目錄以及系統

【phpcms-v9】模型欄位資料各個檔案的作用

比如:文章模型下的時間和日期模型欄位-datatime,與當前datetime模型欄位相關的檔案都在phpcms/content/fields/datetime/資料夾下 1.phpcms/content/fields/datetime/field_add_fo

Android Studio 各個資料作用和控制元件作用、基本語句

一、各個資料夾下存放的東西 1、src :----包----存放java原始碼 2、gen:---自動生成的配置檔案 3、Android 4.4.2:包含android.jar檔案。這是一個java歸檔檔案,其中包含構建應用程式所需的所有android  SDK庫(views,

linux各主要資料作用

  包含了幾乎所的檔案目錄。相當於中央系統。進入的最簡單方法是:cd /。 /boot 載入程式,核心等存放的目錄 這個目錄,包括了在引導過程中所必需的檔案。在最開始的啟動階段,通過載入程式將核心載入到記憶體,完成核心的啟動(這個時候,虛擬檔案系統還不

Linux各個資料的主要作用

linux下的檔案結構,看看每個資料夾都是幹嗎用的 /bin 二進位制可執行命令 /dev 裝置特殊檔案 /etc 系統管理和配置檔案 /etc/rc.d 啟動的配置檔案和指令碼 /home 使用者主目錄的基點,比如使用者user的主目錄就是/home/user,可以

linux中根目錄各個目錄的作用

位置 http 定義 光盤 普通用戶 留下 執行 加固 option /bin 二進制可執行命令。該目錄下存放著普通用戶的命令 /dev 系統的設備文件,即設備的驅動程序 /home 用戶主目錄的基點 /lost-found 這個目錄平時是空的,當系統非正常關機而留下的“

Linux| Linux資料的結構說明及用途介紹

linux下各資料夾的結構說明及用途介紹: /bin:二進位制可執行命令。 /dev:裝置特殊檔案。 /etc:系統管理和配置檔案。 /etc/rc.d:啟動的配 置檔案和指令碼。 /home:使用者主目錄的基點,比如使用者user的主目錄就是/home/user,可以用~u

獲取指定目錄資料(包含檔案)並且拷貝到另一指定資料,刪除指定目錄資料(包含檔案)

    /**      * 複製整個資料夾內容      *       * @param oldPath      *  

【轉載】Linux資料的含義和用途 Linux資料的含義和用途

原文地址:https://www.cnblogs.com/lanqingzhou/p/8037269.html Linux下各資料夾的含義和用途 Linux根目錄”/“下各個系統資料夾的含義和用途 1、/boot 該目錄預設下存放的是Linux的啟動檔案和核心。 2、/initrd 它的英文

Linux資料編寫Makefile詳解

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

nodejs 中public資料作用初探

本篇部落格對比兩個nodejs例項,一個例項將index.html放在與index.js相同的資料夾下;而另一個例項則建立一個與index.js同級的public資料夾,index.html放在public中。第二個例項藉助語句 app.use(express.static(path.join(

Windows2008共享資料的使用

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

linux檢視根目錄所有資料大小

linux檢視根目錄下所有資料夾大小的方法如下: 1、進入根目錄:cd / 2、使用命令 : du -sh * 檢視根目錄下每個資料夾的大小 3、進入佔用空間比較大的資料夾,然後再使用2中命令查詢大檔案。   查詢大於10M的檔案 find / -type f -size +

unity editor模式讀取資料資源

string path = EditorUtility.OpenFolderPanel("Load png Textures", "", "");  //開啟資料夾 string[] files = Directory.GetFiles(path);  //獲取所有檔案路徑 Object[] os = ne

Linux 根路徑資料用途(centos)

/bin: 包含了引導啟動所需的命令或普通使用者可能用的命令(可能在引導啟動後)。這些命令都是二進位制檔案的可執行程式,多是系統中重要的系統檔案。 /boot: 包含可引導的Linux核心和引導裝載(boot loader)配置檔案(GRUB)。 /dev: 包含代表系統