Davinci DM6446開發攻略——u-boot-1.3.4移植(1) 分類: DSP 2013-07-22 16:29 306人閱讀 評論(0) 收藏

UBOOT的版本更新速度比較快,截止今天,穩定正式的版本是u-boot-2009.11-rc2,而TI最新的EVM開發包裏的UBOOT1.2.0版本,國內不少公司還一直使用u-boot-1.1.4u-boot-1.1.6。其實,咱們也不必追風跟上最新版本,程序跑穩定纔是最重要的。固然,有興趣研究研究也不錯,畢竟最新版本增長不少實用的功能。在移植以前,咱們簡單介紹u-boot這些版本架構的變化。從u-boot-1.3.0u-boot-1.3.2基本上架構是同樣的,而從u-boot-1.3.3u-boot-1.3.4,架構相對u-boot-1.3.2變化比較大。從u-boot-2008.10開始,nand flash驅動變化很是大,u-boot-2009.03增長強大的lzma壓縮解壓功能,fs支持yaffs2u-boot-2009.06  nand flash變化更大。到u-boot-2009.11.1增長DM6467 DM365的支持。
關於u-boot-1.3.4的移植,本人的博客也介紹在三星s3c2440上移植過,咱們在這裏主要針對davinci 平臺。因爲UBOOT功能不少,要所有把移植的東西馬上寫出來,對本人仍是有難度,因此中間會先發布有關montavista linux-2.6.18的移植,如何把DSP程序先跑起來,等等。因爲本人的主要工做是開發產品,賣賣DM6446核心板、DM6437核心板,及相關開發板,智能視頻監控IVR,推推DSP方案,因此博客更新速度比較慢,其實寫博客的目的,有很大的部分就是想和全國各地朋友交流技術。同時這裏要感謝51CTO的小松管理員,把本人的開發攻略改成推薦博文。回到移植正題,咱們一步一步把UBOOT跑起來,把內核也跑起來。鑑於學習的目的,本人這裏不提供patch
< XMLNAMESPACE PREFIX ="O" /> 
第一步:解壓和簡化 UBOOT
 
ftp.denx.de下載u-boot-1.3.4.tar.bz2u-boot-1.3.4-rc2.tar.bz2,而後解壓到你的工做目錄,不少人解壓完後,就立刻進入正題,修改makefile什麼的,本人以爲不用那麼急。首先刪除和平臺不相關的文件和文件夾,目的讓UBOOT更簡化,好理解,減小虛擬機的存儲空間,便於備份(每次有進展的修改後,備份和修改記錄很重要,這是良好習慣):
在頂層目錄:把文件avr32_config.mkblackfin_config.mki386_config.mkm68k_config.mkmicroblaze_config.mkmips_config.mknios2_config.mknios_config.mkppc_config.mksh_config.mksparc_config.mk刪除;文件夾lib_avr32lib_blackfinlib_i386lib_m68klib_microblazelib_mipslib_nioslib_nios2lib_ppclib_shlib_sparcnand_splonenand_ipl,其餘就不要刪了。
board目錄下:只保留davinci文件夾,其餘平臺板子所有幹掉!男人就要狠一點。而davinci也只保留TI 本身的dv-evm文件夾,這也是咱們要修改的平臺,schmoogiesffsdrsonata是其餘公司基於davinci上的板子,你能夠刪掉,也能夠參考。固然,仍是在board\davinci目錄下,你能夠COPY dv-evm並改爲你公司的板子的名字,而後在頂層修改makefile支持你公司的板子,下一步再說。
cpu的目錄:只保留arm926ejs,其餘CPU所有幹掉。進入arm926ejs目錄,同時把at91sam9omapversatile文件夾刪除,保留davinci和其餘文件。
include目錄:把文件夾asm-avr32asm-blackfinasm-i386asm-m68kasm-microblazeasm-mipsasm-niosasm-nios2asm-ppcasm-shasm-sparc刪除掉。進入configs目錄,只保留davinci_dvevm.h,其餘*.h文件所有刪除調!
作完以上的工做後,UBOOT至關簡潔,其實還有一些文件和文件能夠再刪,不過已經不必,咱們刪除的對象是其餘不相關的平臺。備份一下這個源版本,便於往後本身修改的UBOOT和這個源版本比較。
 
第二步:連接交叉編譯環境
 
若是你已經看過本人有關《DAVINCI DM6446開發攻略——環境搭建篇》,按裏邊描述的方法,對交叉編譯環境進行搭建,那麼下面編譯工做就好進行了。
修改頂層makefile
144行:把CROSS_COMPILE = arm-linux-改成CROSS_COMPILE = arm_v5t_le-
 
282行:把ALL += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND) $(U_BOOT_ONENAND),改成ALL += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND) $(U_BOOT_ONENAND) u-boot.img,就是後面添加u-boot.img
 
308行:./tools/mkimage -A $(ARCH) -T firmware -C none \後面,添加和註銷如下代碼:
    -a 0x$(shell grep "T _start" $(TOPDIR)/System.map | awk '{ printf "%s", $$1 }') \
    -e 0x$(shell grep "T _start" $(TOPDIR)/System.map | awk '{ printf "%s", $$1 }') \
    -n 'u-boot image' -d $< $@
#       -a $(TEXT_BASE) -e 0 \
#       -n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \
#          sed -e 's/"[  ]*$$/ for $(BOARD) board"/') \
#       -d $< $@
(注意要加tab鍵)
這裏這樣作的目的,生成的u-boot.img能夠被上篇介紹的UBLBOOT起來,而u-boot.bin能夠被TI提供的uart_load.exe uartapp.bin 軟件方式(soft boot)啓動起來,便於生產和測試。
 
在源makefile文件2416行:就是davinci_dvevm_config :    unconfig
    @$(MKCONFIG) $(@:_config=) arm arm926ejs dv-evm davinci davinci
根據這一行,你能夠參考TI 這個作法定義本身的板子,添加本身板子的config,好比加入:
davinci_dm6446_config : unconfig
    @$(MKCONFIG) $(@:_config=) arm arm926ejs dm6446 davinci davinci
而後在board\davinci目錄下,使用
mkdir dm6446
cp –f dv-evm/* dm6446/
同時進入include/configs/目錄,使用cp –f davinci_dvevm.h davinci_dm6446.h
注:其實直接在TI  dv-evm上移植也能夠,不必定義本身的板子和配置。這裏只不過給你們舉個例子。
編譯工做:
$make distclean
$make davinci_dm6446_config
$make
看是否編譯所有經過,是否生成u-boot.binu-boot.img等文件,同時檢查你的交叉編譯環境是否創建好,沒問題繼續往下進行。
 
第三步:移植板子驅動和配置
一、  修改davinci_dm6446.h
首先說說本人板子的信息:DDR2——256M-ByteNAND——128M-Byte——2K Page 通用網口PHY芯片,沒有NOR FLASHATA
/*=======*/
/* Board */
/*=======*/
#define DV_EVM
#define CFG_USE_NAND(支持NAND
#define CFG_NAND_LARGEPAGE (支持2K PageNAND
//#define CFG_NAND_SMALLPAGE(表示支持512 字節 Page
//#define CFG_USE_NOR(表示支持NOR FLASH
 
。。。。。。。
/*===================*/
/* SoC Configuration */
/*===================*/
#define CONFIG_ARM926EJS                   /* arm926ejs CPU core */
#define CONFIG_SYS_CLK_FREQ     297000000     /* Arm Clock frequency */
#define CFG_TIMERBASE          0x01c21400    /* use timer 0 */
#define CFG_HZ_CLOCK            27000000       /* Timer Input clock freq */
#define CFG_HZ                   1000
#define CONFIG_SOC_DM644X   SOCDM644X
 
/*====================================================*/
/* EEPROM definitions for Atmel 24C256BN SEEPROM chip */
/* on Sonata/DV_EVM board. No EEPROM on schmoogie.    */
/*====================================================*/
//#define CFG_I2C_EEPROM_ADDR_LEN            2
//#define CFG_I2C_EEPROM_ADDR              0x50
//#define CFG_EEPROM_PAGE_WRITE_BITS      6
//#define CFG_EEPROM_PAGE_WRITE_DELAY_MS  20
(若是你的板子沒有I2C接口的EEPROM,把上面的代碼註釋掉)
 
/*=============*/
/* Memory Info */
/*=============*/
#define CFG_MALLOC_LEN              (0x10000 + 128*1024)  /* malloc() len */
#define CFG_GBL_DATA_SIZE    128         /* reserved for initial data */
#define CFG_MEMTEST_START  0x80000000    /* memtest start address */
#define CFG_MEMTEST_END            0x81000000    /* 16MB RAM test */
#define CONFIG_NR_DRAM_BANKS 1            /* we have 1 bank of DRAM */
#define CONFIG_STACKSIZE     (256*1024)     /* regular stack */
#define PHYS_SDRAM_1           0x80000000    /* DDR Start */
#define PHYS_SDRAM_1_SIZE 0x10000000    /* DDR size 256MB */
#define DDR_8BANKS                      /* 8-bank DDR2 (256MB) */
有關DDR Memory這裏不須要修改,由於本人的板子是256M的。除非你的板子是128M才改成:SIZE     0x08000000 DDR_4BANKS
 
/*====================*/
/* Serial Driver info */
/*====================*/
串口驅動不用改。
 
/*===================*/
/* I2C Configuration */
/*===================*/
I2C 驅動能夠不用改。也能夠註釋掉,若是你不想在UBOOT操做任何I2C的動做。
 
/*==================================*/
/* Network & Ethernet Configuration */
/*==================================*/
網絡配置也不須要修改
 
/*=====================*/
/* Flash & Environment */
/*=====================*/
因爲最開始咱們已經定義好CFG_USE_NANDCFG_NAND_LARGEPAGE的信息,因此這裏也不須要修改;
 
/*==============================*/
/* U-Boot general configuration */
/*==============================*/
這裏主要定義UBOOT的一些操做,好比命令行顯示字符串,delay等待時間的長短,這些根據我的要求修改,不改也能夠。
 
/*===================*/
/* Linux Information */
/*===================*/
UBOOT要把一些參數信息傳給內核linux使用,linux內核運行的時候須要這些配置信息,內核可以識別這些字符串信息。先把如下兩個定義註釋掉,
//#define CONFIG_BOOTARGS           xxxxxxxxxxxxxx
//#define CONFIG_BOOTCOMMAND     xxxxxxxxxxxxxxx
若是你要從NAND FLASH啓動:
#define CONFIG_BOOTARGS 「mem=120M console=ttyS0,115200n8 noinitrd ip=off root=/dev/mtdblock3」mtdblock3 表示文件系統放在LINUX內核分區)
#define CONFIG_BOOTCOMMAND   " nboot 0x80008000 0x700000"(把linux 內核從FLASH BOOT起來,下面會介紹UBOOT的命令)
若是你還在調試階段,建議你使用NFS文件系統:
#define CONFIG_BOOTARGS 「mem=120M console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=192.168.1.251:/home/<useraccount>/nfs/tirootfs,nolock」
#define CONFIG_BOOTCOMMAND   " nboot 0x80008000 0x700000"
 
本人的redhat linux的主機地址是:192.168.1.251,即SERVER IP=192.168.1.251
板子的IP是:192.168.1.188
若是你沒有路由器給你分配IP地址,參數行裏使用:ip=off
mem=120M:本人定義前128M linux系統, 128M DSP和圖像緩衝區等;
nboot 0x80008000 0x700000:講明本人把內核放在nand 地址爲0x700000,經過nand boot的命令把內核從nand 0x700000地址導入DDR 0x80008000地址
 
/*=================*/
/* U-Boot commands */
/*=================*/
這裏有不少功能的定義,包括#include <config_cmd_default.h>裏邊定義的,不須要的功能可使用#undef ,從而減少UBOOT 生成BIN文件的尺寸。好比
#undef CONFIG_CMD_DHCP
#undef CONFIG_CMD_DIAG
#undef CONFIG_CMD_EEPROM
#undef CONFIG_CMD_LOADB   /* loadb */
#undef CONFIG_CMD_LOADS    /* loads */
 
二、  修改board/davinci/dv-evm/dv_board.c裏的有關本身板子的配置
int board_init(void)函數裏,由於本人的板子使用/EM_CS2做爲NAND FLASH的片選信號,故在PINMUX0寄存器裏,有關AEAW必須關掉。
/* Enable EMAC and AEMIF pins */
//REG(PINMUX0) = 0x80000c1f;
REG(PINMUX0) = 0x80000000; 只使用EMAC
不然UBOOT 啓動不起來。
 
int misc_init_r (void)函數裏,由於本人沒有使用I2C EEPROM存儲MAC 地址,因此要註釋掉
#if 0
/* Set Ethernet MAC address from EEPROM */
if (i2c_read(CFG_I2C_EEPROM_ADDR, 0x7f00, CFG_I2C_EEPROM_ADDR_LEN, buf, 6)) {
     printf("\nEEPROM @ 0x%02x read FAILED!!!\n", CFG_I2C_EEPROM_ADDR);
}
else
    {
     tmp[0] = 0xff;
     for (i = 0; i < 6; i++)
         tmp[0] &= buf[i];
 
     if ((tmp[0] != 0xff) && (getenv("ethaddr") == NULL)) {
         sprintf((char *)&tmp[0], "%02x:%02x:%02x:%02x:%02x:%02x",
             buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]);
         setenv("ethaddr", (char *)&tmp[0]);
     }
}
#endif
通常MAC地址保存到NAND,下降成本。
………
#if 0
i2c_read (0x39, 0x00, 1, (u_int8_t *)&i, 1);
setenv ("videostd", ((i  & 0x80) ? "pal" : "ntsc"));
#endif
若是你的板子沒有TI 的視頻採集芯片TVP5146之類的,上面的功能最好去掉。
 
三、  網口驅動移植:Cpu/arm926ejs/davinci/ ether.c
由於DM6446芯片上集成EMACMDIO,因此直接使用PHY芯片就能夠了,驅動就使用UBOOT-1.3.4 TI 默認的驅動,而不是TI EVM使用的PHY_LXT972。直接使用GENERIC PHY,有個地方須要修改,不然網口工做不起來,本人也是從一個網友那裏查到相似的信息,在static int dm644x_eth_phy_detect(void)函數裏,改爲:
#if 0
for (i = 0; i < 32; i++) {
        if (phy_act_state & (1 << i)) {
               if (phy_act_state & ~(1 << i))
                      return(0);              /* More than one PHY */
               else {
                      active_phy_addr = i;
                      return(1);
               }
        }
}
 
return(0);       /* Just to make GCC happy */
#else
active_phy_addr = 1;
return(1);
#endif
因爲本人的開發板使用GPIOPHY芯片進行復位,因此在static int dm644x_eth_hw_init(void)函數裏,加入GPIO復位的支持,同時文件頭部加入#include <asm/arch/hardware.h>
能夠說, UBOOT移植到這裏,基本上能夠跑起網絡了,TFTP應該沒問題了,可是有關如何燒寫UBL,燒寫UBOOTLINUX 內核等文件,之後再慢慢聊吧,一步一步來,《UBOOT移植(2)》之後會推出來,下一篇直接到MonaVista linux-2.6.18的移植(1),先讓系統經過網絡和串口跑起來,由簡單到複雜。
繼續make一下,生成u-boot.binu-boot.imgCOPY u-boot.binWINDOWS底下,使用uart_load.exe和配套uart.bin文件,就能夠把u-boot.bin給跑起來。若是有linux 內核編譯出來並使用UBOOT tool目錄下的mkimage工具生成 uImage,在UBOOT命令行下:
U-Boot > tftp 80008000 uImage
#######################################
U-Boot > bootm 80008000
## Booting kernel from Legacy Image at 80008000 ...
   Image Name:   linux-2.6.18
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1509948 Bytes =  1.4 MB
   Load Address: 80008000
   Entry Point:  80008040
   Verifying Checksum ... OK
   XIP Kernel Image ... OK
OK
 
Starting kernel ...
 
Uncompressing Linux...................................................................................................... done, booting the kernel.
Linux version 2.6.18_pro500-davinci_evm-arm_v5t_le (root@xxxxx.com) (gcc version 4.2.0 (MontaVista 4.2.0-16.0.32.0801914 2008-08-30)) #1 PREEMPT Sun Mar 7 01:07:16 CST 2010
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
Machine: DaVinci EVM
……………………………………………………………
當出現上面的信息後,說明以上u-boot-1.3.4的移植是成功的。有興趣的朋友能夠參考以上作法移植u-boot-2009.11-rc2,也能夠跑起來,只不過CROSS_COMPILE ?= arm-linux-不是放在頂層makefile了,而是放在lib_arm/config.mk裏,改爲CROSS_COMPILE = arm_v5t_le-就能夠編譯了。  
 

 

 

 

補充有關DM6446 BOOT的一點知識:若是板子沒有任何程序,RBL會經過串口0發送BOOTME命令上來,運行uart_load.exe,會接到RBL的命令,而後握手通訊,下載uart.bin到板子上,並運行起來,uart.bin程序就是小小的BOOT,經過串口0PC通訊,下載u-boot.bin,並把u-boot.bin給運行起來。因此UBOOT移植到上面的步驟,能夠進入linux 內核移植的工做了。

本文出自 「集成系統-踏上文明的征程」 博客,請務必保留此出處http://zjbintsystem.blog.51cto.com/964211/282387jquery

分享至
更多 0
一鍵收藏,隨時查看,分享好友!
Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄

文章評論

 <<    1   2   >>   頁數 ( 1/2 )  
[1樓]     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   lyblyxj  回覆
2010-03-11 15:59:39
不錯!學習了
呵呵 頗有難度的東西啊

[2樓]     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   鄒盼盼  回覆
2010-03-11 23:25:22
幾個月前本身也裝過一個「有奔頭」玩了一下,感受還能夠。

[3樓] 樓主     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   zjb_integrated  回覆
2010-03-12 09:19:20
UBOOT在開源嵌入產品設計中,地位愈來愈重要,功能愈來愈豐富。

[4樓]     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   282409975  回覆
2010-04-12 11:00:06
你好,我也是作dm6446,咱們公司買的板子是ti原廠的,就是那個dvevm,我如今想移植下u-boot-1.3.4,就把根目錄下的那個makefile的CROSS_COMPILE=arm_v5t_le-,而後就直接make distclean;make davinci_dvevm_config;make
這樣也生成了u-boot.bin之後,用DVFlasher下載到板子上了,發現uboot啓動不了,打印信息以下:
TI UBL Version: 1.12, Flash type: NAND
Booting PSP Boot Loader
PSPBootMode = NAND
Starting NAND Copy...
Initializing NAND flash...
Valid MagicNum found.
NAND Boot success.
  DONE
而後就中止了,請問下爲何???謝謝了,個人QQ是451686458,謝謝了

[5樓] 樓主     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   zjb_integrated  回覆
2010-04-13 18:23:07
這個緣由有不少,你要跟蹤是否運行到board.c裏的start_armboot()函數,等等。你能夠參考人家給你的UBOOT是如何編譯出u-boot.bin仍是其餘加有頭信息的二進制文件

[6樓]     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄  [匿名]曉風  回覆
2010-05-12 12:15:12
你好,個人dvflasher不能運行。

[7樓] 樓主     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   zjb_integrated  回覆
2010-05-12 15:29:20
抱歉,沒用過dvflasher,咱們確定不用這個dvflasher。

[8樓]     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   hejing_032  回覆
2010-09-16 09:51:08
下載uboot以前有個flashwrite到什麼地方可以下載源碼?這個文件時通用的仍是根據硬件決定

[9樓] 樓主     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   zjb_integrated  回覆
2010-09-16 10:56:13
這個估計是TI的DSP out文件,咱們不關心這個。

[10樓]     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   wuyunzdh  回覆
2011-01-03 18:27:12
你好,個人的uboot用老的環境是能夠編譯經過的並能夠正常使用,最近重新裝了一個編譯環境,也是編譯過去的,可是,下載到NORflash中美任何反應,可是能夠用軟件能夠啓動啓動起來!!!
請問這是什麼緣由引發來的!!

[11樓] 樓主     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   zjb_integrated  回覆
2011-01-04 16:54:43
咱們沒有測試過NOR FLASH的應用。你的新編譯環境.bashrc文件是否設置:
PATH="/opt/mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le/bin:
/opt/mv_pro_5.0.0/montavista/pro/bin:
/opt/mv_pro_5.0.0/montavista/common/bin:$PATH"
的路徑

[12樓]     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   wuyunzdh  回覆
2011-01-06 11:18:09
謝謝你的回覆,
路徑確定個配置了,在.bash_profile否則應該也編譯不過去呀,是否是?
這是我新環境的:
cat /root/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
PATH=/opt/montavista/pro/devkit/arm/v5t_le/bin:/opt/montavista/pro/bin:/opt/montavista/common/bin:/opt/3.4.1/bin:/opt/arm-920t-3.4.4/bin:$PATH

export PATH
unset USERNAME

下面是我老環境的:
[root@myhost ~]# cat /root/.bash_profile
alias rm='rm -i'
alias ll='ls -l --color'
alias cp='cp -i'
alias mv='mv -i'

PATH="${PATH}":/usr/local/arm/3.4.1/bin:/usr/local/920t_le/bin:/usr/local/bin:/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin:/opt/mv_pro_4.0/montavista/common/bin:/opt/mv_pro_4.0/montavista/pro/bin:/opt/hisilicon/toolchains/arm-uclibc-linux-soft/bin:/opt/uClinux/bfin-uclinux/bin://opt/uClinux/bfin-linux-uclibc/bin

export PATH

. $HOME/.bashrc

[13樓]     Davinci DM6446開發攻略——u-boot-1.3.4移植(1) - 毛毛蟲 - 毛毛雨的刻薄   wuyunzdh  回覆
2011-01-06 16:06:43
謝謝你的回覆,確定設置了,否則也編譯不過去,個人是放在.bash_profile中的。
新的編譯環境見下:
[root@localhost bin]# cat /root/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
PATH=/opt/montavista/pro/devkit/arm/v5t_le/bin:/opt/montavista/pro/bin:/opt/montavista/common/bin:/opt/3.4.1/bin:/opt/arm-920t-3.4.4/bin:$PATH

export PATH
unset USERNAME

老的編譯環境是:
[root@myhost ~]# cat /root/.bash_profile
alias rm='rm -i'
alias ll='ls -l --color'
alias cp='cp -i'
alias mv='mv -i'

PATH="${PATH}":/usr/local/arm/3.4.1/bin:/usr/local/920t_le/bin:/usr/local/bin:/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin:/opt/mv_pro_4.0/montavista/common/bin:/opt/mv_pro_4.0/montavista/pro/bin:/opt/hisilicon/toolchains/arm-uclibc-linux-soft/bin:/opt/uClinux/bfin-uclinux/bin://opt/uClinux/bfin-linux-uclibc/bin

export PATH

. $HOME/.bashrc

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。linux

相關文章
相關標籤/搜索