Time of Update: 2018-12-03
27 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")指定輸出的格式是32bits ARM 小端OUTPUT_FORMAT原型為 OUTPUT_FORMAT(default, big,
Time of Update: 2018-12-03
MediaScanner.cpp分析檔案路徑 frameworks/base/media/libmedia/MediaScanner.cppstatus_t MediaScanner::processDirectory( const char *path, const char *extensions, MediaScannerClient &client, ExceptionCheck exceptionCheck, void
Time of Update: 2018-12-03
uboot啟動過程分為兩個部分,一般來說,系統在執行uboot之前會執行一段固化的程式,這段固化的程式會做一些基本的初始化,然後讀取uboot的第一部分到內部記憶體中,PC指標跳轉到這個記憶體位址,執行uboot的第一部分。uboot的第一部分要執行一些必要的硬體初始化,從我的理解至少包括外部ram的初始化,flash
Time of Update: 2018-12-03
Freescale MX51平台的透明處理根據bpp(bits_per_pixel)不同,處理方式有所不同。透明處理涉及到兩個圖層的合并,這個合併作業是MX51 IPU的DP(Display process)模組來進行的。為mx51 datasheet中的DP 微觀架構圖的中Combining Unit就是用來實現兩個圖層的合并,DP有兩個input FIFOs用來傳輸full 圖層和partial圖層的資料。在傳入Combining Unit之前,還會做CSC(Color space
Time of Update: 2018-12-03
因為有個arm測試載入器依賴libpng,所以需要交叉編譯libpng,而libpng又依賴zlib1. 首先編譯zlib./configure --prefix=/work/prebuilt/linux-x86/toolchain/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/修改Makefile,把所有的x86編譯相關命令修改為arm的make install, 會在$PREFIX/lib下產生libz.a
Time of Update: 2018-12-03
一、嵌入式根檔案系統 Linux支援多種檔案系統,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,為了對各類檔案系統進行統一管理,Linux引入了虛擬檔案系統VFS(Virtual File System),為各類檔案系統提供一個統一的操作介面和應用編程介面。 Linux啟動時,第一個必須掛載的是根檔案系統;若系統不能從指定裝置上掛載根檔案系統,則系統會出錯而退出啟動。之後可以自動或手動掛載其他的檔案系統。
Time of Update: 2018-12-03
#defineKERN_EMERG"<0>"/*緊急事件訊息,系統崩潰之前提示,表示系統不可用*/#defineKERN_ALERT"<1>"/*報告訊息,表示必須立即採取措施*/#defineKERN_CRIT"<2>"/*臨界條件,通常涉及嚴重的硬體或軟體操作失敗*/#defineKERN_ERR"<3>"/*錯誤條件,驅動程式常用KERN_ERR來報告硬體的錯誤*/#defineKERN_WARNING"<4>"/*警告條件,對
Time of Update: 2018-12-03
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
我們經常用busybox產生根檔案系統,可是根檔案系統起來以後命令列提示符只有一個“#”號,沒有像linux發行版那樣是[user@hostname currentpath] #(例如,root@ubuntu:/rootfs/filesystem/etc#
Time of Update: 2018-12-03
start.S的reset中,把uboot的第二部分從NAND或者SD卡複製到外部ram後,就可以分配執行C代碼的堆棧,然後調用lib_arm/board.c中的start_armboot開始uboot的C代碼部分start_armboot的作用就是初始化系統硬體,然後進入main_loop等待使用者的輸入,272 init_fnc_t *init_sequence[] = {273 #if defined(CONFIG_ARCH_CPU_INIT)274 arch_cpu_init,
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
一、移植Busybox 所謂製作根檔案系統,就是建立各種目錄,並且在裡面建立各種檔案。對於建立一個最下根檔案系統,只需要在/dev目錄下建立必要的裝置節點、在/etc目錄下建立一些設定檔就可以了,如果Busybox使用動態連結程式庫,那還要在/lib目錄下包含庫檔案。Busybox支援uClibc庫和glibc庫,對Linux2.2.x之後的內涵支援良好。Busybox的源碼可以從http://www.busybox.net/downloads/下載,我下載的是busybox-1.7.
Time of Update: 2018-12-03
在針對嵌入式開發中,常常我們需要事先配置好一些網路服務,才能使開發板方便的下載或掛載主機的核心和檔案系統。系統在啟動BootLoader後,通過tftp來下載Linux核心鏡像到記憶體運行,然後通過NFS來啟動Linux主機上的目標檔案系統,並通過DHCP伺服器來為開發板分配IP地址。這裡僅僅是搭建伺服器環境。在配置TFTP服務一般遇到的問題都是比較多的。經過幾次失敗嘗試後,總結了以下經驗以共用: 一、檢查是否已經安裝好TFTPcaoyi@ubuntu:/home/study$
Time of Update: 2018-12-03
RTC - real time clock維護著系統的hardware時間,當linux啟動時需要用RTC hardware時鐘設定system 時間。這個過程是在drivers/rtc/hctosys.c驅動中實現的,這個驅動實際只有一個init函數,並且把自己的init 函式宣告為late_initcall,這樣可以保證RTC驅動已經正常運轉。init函數從RTC裝置讀取當前硬體時鐘,然後調用do_settimeofday改寫系統時鐘。27 static int __init
Time of Update: 2018-12-03
一、製作mkfs.jffs2工具 首先得準備好兩個軟體包 ,一個是MTD裝置的工具包,另一個是zlib壓縮包,在這我的MTD裝置工具包為mtd-snapshot-20050519.tart.tar,zlib壓縮包是zlib-1.2.3.tar.tar。步驟:(1)解壓zlib-1.2.3.tar.tar,$tar xf zlib-1.2.3.tar.tar
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
一、下載工具鏈,並解壓到根目錄 (1)、通過samba將下載好的工具鏈(我這裡用的是toolchains_for_s3c2410.tar.bz2)拷貝到/home目錄下 解壓toolchains_for_s3c2410.tar.bz2: tar –jxvf toolchains_for_s3c2410.tar.bz2 於是產生crosstool目錄,一般把它拷貝到根目錄
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核心源碼都是非常好的學習資源。意味著就要經常的和核心源碼大交道,那麼軟體工具就是少不了的。在Windows系統上確實有著許多好用的軟體,這點還是可以肯定的。對於像核心這種複雜龐大的源碼樹,Source
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