日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Davinci燒寫程序

 rookie 2012-03-10

下面以運(yùn)行在Nor flash上的ramdisk文件系統(tǒng)為例說明。下面提到的Flash,如果沒有指定為Nand Flash,則Flash就指的是Nor Flash。

 

 

 

1,燒寫uboot

 

1)編譯uboot

 

目前我們使用uboot1.1.4 ,在Linux下,進(jìn)入uboot1.1.4目錄,

 

依次輸入如下命令:

 

make clobber

 

make davinci_config

 

make ARCH=arm

 

就生成了可執(zhí)行文件 u-boot.bin

 

2)燒寫uboot

 

uboot燒寫進(jìn)Flash,有兩種方法:一是使用JTAG頭連接仿真器,使用仿真器燒寫;二是使用串口進(jìn)行燒寫。

 

注意:

 

在連接仿真器及串口線,撥動S3開關(guān),切換J4跳線時,必須要在斷電情況下操作。

 

 

 

仿真器燒寫:

 

Davinci板卡斷電,

 

DM6446開發(fā)板上的S3開關(guān)撥到全部為ON,在J4跳線處選上Nor Flash,連接仿真器;

 

Davinci板卡上電,

 

打開CCS(需要設(shè)置CCS為仿真模式),在菜單中選擇 File-- Load Program ,找到Flash的燒寫程序flashwrite.out ,然后運(yùn)行,根據(jù)提示分別輸入uboot文件名u-boot.bin,及偏移地址0,等燒寫完畢即可;

 

Davinci板卡斷電,

 

S3切換到Nor Flash啟動,即撥為1011111111,運(yùn)行串口控制軟件Tera Term ,選擇COM1口,設(shè)置波特率為115200;

 

Davinci板卡上電,

 

Tera Term窗口會有uboot的啟動信息顯示。

 

 

 

串口燒寫:

 

       由于dvflasher運(yùn)行需要 .net FrameWork 2.0,所以先安裝這個程序。

 

Davinci板卡斷電,

 

DM6446開發(fā)板上的S3開關(guān)撥到全部為ON,在J4跳線處選上Nor Flash,用串口線連接PC主機(jī)與Davinci板卡;

 

Davinci板卡上電,

 

在主機(jī)上運(yùn)行命令行,在命令行輸入命令:dvflasher -r u-boot.bin,等燒寫完畢;

 

Davinci板卡斷電,

 

S3切換到Nor Flash啟動,即撥為1011111111,運(yùn)行串口控制軟件Tera Term ,選擇COM1口,設(shè)置波特率為115200;

 

Davinci板卡上電,

 

Tera Term窗口會有uboot的啟動信息顯示。

 

 

 

串口燒寫nand flash

 

Davinci板卡斷電,

 

DM6446開發(fā)板上的S3開關(guān)撥到:1101111111,在J4跳線處選上Nand Flash CS2,用串口線連接PC主機(jī)與Davinci板卡;

 

Davinci板卡上電,

 

在主機(jī)上運(yùn)行命令行,在命令行輸入命令:dvflasher -fnandbin u-boot_nand.bin,等燒寫完畢;

 

Davinci板卡斷電,

 

S3切換為Nand Flash啟動,即撥為全部為OFF,運(yùn)行串口控制軟件Tera Term ,選擇COM1口,設(shè)置波特率為115200;

 

Davinci板卡上電,

 

Tera Term窗口會有uboot的啟動信息顯示。

 

2,燒寫Linux內(nèi)核

 

內(nèi)核指的是一個提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務(wù)等功能的系統(tǒng)軟件。一個內(nèi)核不是一套完整的操作系統(tǒng)。一套基于Linux內(nèi)核的完整操作系統(tǒng)叫作Linux操作系統(tǒng)。

 

  在Linux 內(nèi)核中,包括了:進(jìn)程管理、定時器、中斷管理、內(nèi)存管理、模塊管理、虛擬文件系統(tǒng)接口、文件系統(tǒng)管理、設(shè)備驅(qū)動程序、進(jìn)程間通信、網(wǎng)絡(luò)管理、系統(tǒng)啟動等操作系統(tǒng)功能的實現(xiàn)。

 

1)編譯Linux內(nèi)核

 

當(dāng)板卡硬件有改動,或需要增加某些底層功能時,需要改動內(nèi)核模塊,可以使用如下命令來更改內(nèi)核模塊的配置:

 

make menuconfig

 

生成的配置文件保存在

 

mv_pro_4.0\montavista\pro\devkit\lsp\ti-davinci\arch\arm\defconfig

 

然后在:

 

mv_pro_4.0\montavista\pro\devkit\lsp\ti-davinci

 

 

 

目錄下輸入如下命令:

 

make ARCH=arm CROSS_COMPILE=arm_v5t_le- davinci_dm644x_defconfig

 

      make ARCH=arm CROSS_COMPILE=arm_v5t_le- checksetconfig

 

      make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage

 

      cp arch/arm/boot/uImage /tftpboot/uImage

 

chmod a+r /tftpboot/uImage 

 

 

就可以編譯出新的內(nèi)核。

 

更多的細(xì)節(jié)請參考《Building a Small Embedded Linux Kernel Example  spraah2.pdf》。

 

2)燒寫Linux內(nèi)核

 

Linux服務(wù)器下載內(nèi)核映象文件并燒寫進(jìn)Davinci板卡的Nor Flash中,我們使用板卡上的uboot,通過tftp協(xié)議,從Linux服務(wù)器上下載編譯好的內(nèi)核,過程如下:

 

a,將內(nèi)核文件uImage復(fù)制到Linux服務(wù)器的 /tftpboot/ 目錄下,

 

b,連接PCDavinci板卡,需要連接串口線及網(wǎng)線,在連接串口線時需要將Davinci板卡斷電。

 

c,啟動運(yùn)行串口控制軟件Tera Term

 

d,將Davinci板卡上電,在Tera Term窗口中按下任意鍵,進(jìn)入輸入命令狀態(tài)

 

e,依次輸入如下命令:

 

             tftpboot 0x80080000 uImage                    //tftp服務(wù)器拷貝至內(nèi)存中

 

             erase 0x2100000 22fffff                            //擦除2M的空間

 

             cp.b 0x80080000 0x2100000 0x200000     //從內(nèi)存拷貝至Flash

 

              等待命令執(zhí)行完畢,就成功燒寫內(nèi)核文件進(jìn)Nor Flash中了。

 

最后,在正式啟動板卡時要讀取flash上的內(nèi)核文件,還需要設(shè)置環(huán)境變量為從flash啟動,使用如下命令設(shè)置即可:

 

setenv bootcmd ‘bootm 0x2100000’

 

3,燒寫根文件系統(tǒng)

 

Linux引導(dǎo)啟動時,默認(rèn)使用的文件系統(tǒng)是根文件系統(tǒng)。其中一般都包括這樣一些子目錄:

etc, dev, usr, usr/bin, bin, var等。

etc目錄主要含有一些系統(tǒng)配置文件;dev含有設(shè)備特殊文件,用于使用文件操作語句操作設(shè)備;usr存放庫函數(shù)、手冊和其它一些文件。bin存放執(zhí)行程序;var用于存放系統(tǒng)運(yùn)行時可變的數(shù)據(jù)或者是日志等信息。

 

根文件系統(tǒng)有多種格式,例如romfs、ramfs、jffs2、yaffs2等,我們以ramfs為例說明編譯及燒寫過程。

 

1)制作ramdisk

 

Linux服務(wù)器中制作ramdisk過程如下:

 

a,開辟一塊硬盤空間,這里定為14M,名字為ramrootfs,并格式化為ext2文件系統(tǒng):

 

 dd if=/dev/zero of=ramrootfs bs=1k count=14336

 

  mke2fs -F -m 0 -i 2000 ramrootfs

 

b,把虛擬盤掛載到目錄ramfs

 

  mount -o loop -t ext2 ramrootfs ramfs

 

c,復(fù)制所需根文件系統(tǒng)內(nèi)容至ramfs

 

d,使用nfs方式調(diào)試,確認(rèn)文件系統(tǒng)可用。

 

e,跳到ramfs目錄外,卸載ramfs,并壓縮文件系統(tǒng)映象:

 

 umount ramfs

 

 cat ramrootfs | gzip -9 > ramdisk.gz

 

2)燒寫ramdisk

 

Linux服務(wù)器下載ramdisk.gz文件并燒寫進(jìn)Davinci板卡的Nor Flash中,     我們使用板卡上的uboot,通過tftp協(xié)議,從Linux服務(wù)器上下載壓縮好的ramdisk.gz,過程如下:

 

a,將ramdisk.gz復(fù)制到Linux服務(wù)器的 /tftpboot/ 目錄下;

 

b,連接PCDavinci板卡,需要連接串口線及網(wǎng)線,在連接串口線時需要將Davinci板卡斷電;

 

c,啟動運(yùn)行串口控制軟件Tera Term;

 

d,將Davinci板卡上電,在Tera Term窗口中按下任意鍵,進(jìn)入輸入命令狀態(tài);

 

e,依次輸入如下命令:

 

             tftpboot 0x80080000 ramdisk.gz                 //tftp服務(wù)器拷貝至內(nèi)存中

 

             erase 0x2300000  0x28fffff                         //擦除6M的空間

 

             cp.b 0x80080000 0x2300000 0x600000       //從內(nèi)存拷貝至Flash

 

              等待命令執(zhí)行完畢,就成功燒寫ramdisk根文件系統(tǒng)進(jìn)Nor Flash中了。

 

最后,在正式啟動板卡時要讀取flash上的根文件系統(tǒng),還需要設(shè)置環(huán)境變量為從flash讀取,使用如下兩個命令設(shè)置即可:

 

setenv bootcmd 'cp.b 0x2300000 0x85000000 0x600000; bootm 0x2100000'

 

setenv bootargs console=ttyS0,57600n8 video=dm64xxfb:interface=composite:mode=pal ip=192.168.1.82::192.168.1.1 root=/dev/ram0 rw initrd=0x85000000,14M mem=112M

 

第一個命令中主要相關(guān)部分是cp.b 0x2300000 0x85000000 0x600000 ,作用是在Davinci板卡啟動時拷貝根文件系統(tǒng)至內(nèi)存中;

 

第一個命令中主要相關(guān)部分是root=/dev/ram0 rw initrd=0x85000000,14M ,作用是設(shè)置Davinci板卡啟動時采用ramdisk根文件系統(tǒng)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多