Time of Update: 2018-12-04
U-BOOT一、U-BOOT的目錄結構u-boot目錄下有18個子目錄,分別存放管理不通的來源程式。這些目錄中所要存放的檔案有其規則,可以分成三類。■第一類目錄與處理器體繫結構或者開發板硬體直接相關;■第二類目錄是一些通用的函數或者驅動程式;■第三類目錄是u-boot的應用程式、工具或者文檔。Board:和一些已有開發板相關的檔案,比如Makefile和u-boot.lds等都和具體開發板的硬體和地址分配有關。Common:與體繫
Time of Update: 2018-12-04
mdev是busybox下精簡版的udev,適合在嵌入式系統下管理裝置使用mdev會把所有的裝置都動態建立在/dev/目錄下,比如有些程式使用dev目錄子目錄下裝置名稱,就需要修改程式,比較麻煩,當然也可以在mdev運行之後,手工建立目錄,然後再做ln的連結這裡有人作出了更好的指令碼處理機制:http://lists.busybox.net/pipermail/busybox/2007-May/027309.html 再貼上mdev的使用說明---------------------------
Time of Update: 2018-12-04
在VC中,CSTRING類的用法形式多樣,豐富多彩.但有時與傳統資料類型之間的轉換成為了很多人的難題.下面我來簡單介紹它們之間的關係.1 如何?cstring與char*之間的轉換: CString m_cstr="abc"; char* m_char="def"; char* lp=m_cstr.GetBuffer(m_cstr.GetLength()); m_cstr.ReleaseBuffer();
Time of Update: 2018-12-04
調用鏈如下,後面是文字解說: reset -> cpu_init_crit -> lowlevel_init (板子相關) -> relocate (將U-boot重定位到RAM) -> stack_setup -> clear_bss -> start_armboot() (C程式) -> main_loop()系統上電複位後首先跳轉到一個指定的地址,ARM的話是0x000
Time of Update: 2018-12-04
EditText繼承關係:View-->TextView-->EditText EditText的屬性很多,這裡介紹幾個:android:hint="請輸入數字!"//設定顯示在空間上的提示資訊android:numeric="integer"//設定只能輸入整數,如果是小數則是:decimalandroid:singleLine="true"//設定單行輸入,一旦設定為true,則文字不會自動換行。android:password="true"//設定只能輸入密碼android:
Time of Update: 2018-12-04
U-BOOT是一個LINUX下的工程,在編譯之前必須已經安裝對應體繫結構的交叉編譯環境,這裡只針對ARM,編譯器系列軟體為arm-linux-*。U-BOOT的: http://sourceforge.net/projects/u-boot我下載的是1.1.6版本,一開始在FTP上下載了一個次新版,結果編譯失敗。1.1.6是沒問題的。u-boot源碼結構
Time of Update: 2018-12-04
快速排序是對冒泡排序的一種改進。它的基本思想是:通過一躺排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一不部分的所有資料都要小,然後再按次方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。 假設要排序的數組是A[1]……A[N],首先任意選取一個資料(通常選用第一個資料)作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一躺快速排序。一躺快速排序的演算法是:
Time of Update: 2018-12-04
Time of Update: 2018-12-04
我們用的u-boot已經改的面目全非,不過核心還是完全相同的,換了個面目而已。開源的好處,想改就改來玩玩。不過流程還是人家的。u-boot通過bootm命令來啟動核心,這個命令的處理函數是do_bootm,這個函數處理的是uboot-mkimage製作的映像,如果正好這個映像是核心,那麼它就會調用do_bootm_linux函數,並在該函數中給核心傳遞參數並調用核心入口函數來啟動核心。下面就來寫寫do_bootm和do_bootm_linux的簡單流程,以及u-boot是如何把核心啟動參數傳遞給
Time of Update: 2018-12-04
(3)跟住就要編寫時鐘clock_init函數: 系board/yangyi2440目錄下建立一個名為boot_init.c的檔案 (程式自己寫也不難,可以參考S3C2440的PDF,而這段程式作用是設定MPLL和UPLL的。)#define S3C2440_MPLL_400MHZ ((0x5c<<12)|(0x01<<4)|(0x01))#define S3C2440_MPLL_200MHZ ((0x5c<<12)|(0x01
Time of Update: 2018-12-04
通過前面的分析,知道第2階段代碼主要是start_armboot,首先我們先介紹幾個比較重要的結構體。這裡主要是對start_armboot中的流程做具體的分析,我的uboot-2009-06.至於具體的程式碼分析將在後面的文章中介紹。1.gd_t全域資料結構,主要儲存了uboot的配置資訊。include/asm-arm/global_data.h中定義:typedef struct global_data { bd_t *bd;//板子相關的結構體 unsigned long flags;
Time of Update: 2018-12-04
u-boot啟動代碼start.S詳解 1)定義入口。由於一個可執行檔Image必須有一個進入點,並且只能有一個全域入口,通常這個入口放在ROM(Flash)的0x0地址,因此,必須通知編譯器以使其知道這個入口,該工作可通過修改連接器指令碼來完成。(2)設定異常向量(Exception Vector)。(3)設定CPU的速度、時鐘頻率及終端控制寄存器。(4)初始化記憶體控制器。(5)將ROM中的程式複製到RAM中。(6)初始化堆棧。(7)轉到RAM中執行,該工作可使用指令ldr pc來完成。
Time of Update: 2018-12-04
ListView的工作原理:ListView針對每個item,會調用adapter的getView()方法,要求adapter“我要顯示了,給我一個視圖”adapter通過getView()方法返回一個視圖供請求的item顯示但是如果針對每個item,getView()方法都建立一個新視圖的話,記憶體肯定吃不消。那麼就需要用到緩衝機制,也就是視圖的重用。最佳化思路:View的重用:view的每次建立耗時,因此在getView中判斷convertView !=
Time of Update: 2018-12-04
大家都知道U-Boot啟動的時候會將啟動參數的地址放入R2中,然後再啟動核心。我們看看這些參數是如何設定的。首先看兩個重要的資料結構:第一個是global_data,定義在include/asm-arm/global_data.h檔案中:typedef struct global_data { bd_t *bd; unsigned long flags; unsigned long baudrate; unsigned long
Time of Update: 2018-12-04
設計模式淺談之單例模式發布日期:11-05-07 01:11 文章來源:互連網【分享】在Java 的單例模式中,有兩種實現方式,懶漢式與餓漢式。單例模式實現之餓漢式|-單例類Songleton /*** 單例模式實現之一餓漢式* * 一開始就建立Singleton的對象並執行個體化* */class Singleton{// 建立一個Signleton執行個體對象,用來儲存建立好的執行個體private static Singleton singleton = new
Time of Update: 2018-12-04
住上篇!!!!!!!!!!!5.添加支援nandflash讀寫驅動:(此部分程式是在核心裡的nandflash驅動移植過來的) (1)增加nand_flash.c檔案:cpu/arm920t/s3c24x0/nand_flash.c內容如下:#include <common.h>#if (CONFIG_COMMANDS & CFG_CMD_NAND) && !defined(CFG_NAND_LEGACY)#include <s3c2410.h>#
Time of Update: 2018-12-04
我們先來看初始化函數表: init_sequencelib_arm/board.c:typedef int (init_fnc_t) (void);init_fnc_t *init_sequence[] = { cpu_init, /* basic cpu dependent setup */ board_init, /* basic board dependent setup */ interrupt_init, /* set up
Time of Update: 2018-12-04
Android中的ListView為item之間添加了分隔線效果如下:但是預設的分隔線太難看了,有時候我們會自訂item,需要去掉這個難看的分隔線怎麼辦呢?有3種方法可以去掉:myListView.setDividerHeight(0);myListView.setDivider(null);XML布局檔案中設定ListView的屬性android:divider="#FFCC00"以上3種方法擇一即可當然換一個好看的自動的分隔線也行android:divider="@drawable/skin
Time of Update: 2018-12-04
直接上代碼public class SystemProperty {public static void main(String args[]) {// Java 運行時環境版本System.out.println("java.version:" + System.getProperty("java.version"));// Java 運行時環境供應商System.out.println("java.vendor:" + System.getProperty("java.vendor"));/
Time of Update: 2018-12-04
shape和selector是Android UI設計中經常用到的,比如我們要自訂一個圓角Button,點擊Button有些效果的變化,就要用到shape和selector。可以這樣說,shape和selector在美化控制項中的作用是至關重要的。使用方法:在res檔案夾下建立drawable檔案夾在drawable下建立XXX.xmlJava代碼中:R.drawable.XXX