TI Davinci DM6446开发攻略——开发环境搭建
???????? TI DAVINCI DM6446的開發環境搭建不像三星S3C2410,S3C2440,ATMEL的AT91SAM9260之類的單核ARM那么簡單,因為DM6446還有DSP端的開發環境,以及雙核之間的通信和程序編譯等問題,所以開發攻略第一步就是要搭好開發環境。其實TI的EVM(TI 的開發板)也提供相關的EVM start guide(sprue66f.pdf),適合參考。
DAVINCI開發環境搭建基本上可分以下幾步: 1) 準備好各種相關的windows,linux,DAVINCI 軟件開發包安裝軟件; 2) linux環境搭建; 3) ARM編譯環境搭建; 4) DSP編譯環境搭建; 5) 編譯DSP算法LIB,生成x64P,由ARM端可執行程序調用運行; ??? 第一步:相關軟件準備 ??? LINUX下的軟件工具包如下: ??? 1)VMware-workstation; ????2)RedHat Enterprise Linux Server 5(server 4 也可以); ??? 3)mvl_5_0_0801921_demo_sys_setuplinux.bin; ??????(這是GCC交叉編譯工具,根文件系統target。注冊TI的賬號,可以從TI的網站上下載) ??? 4)mvl_5_0_0_demo_lsp_setuplinux_02_00_00_140.bin; ?????? (最新montavista linux-2.6.18內核等安裝包) ????5)dvsdk_setuplinux_2_00_00_22.bin;這個是TI 自己EVM的軟件開發包) ??? 6)bios_setuplinux_5_33_06.bin; ??? 7)xdctools_setuplinux_3_10_03.bin; ??? 8)ti_cgt_c6000_6.0.23_setup_linux_x86.bin ????? (以上3個文件都是從TI上下載比較新的dvsdk的工具鏈) ????DSP開發工具: ??? 1)CCS3.3; ????2)bios_setupwin32_5_33_06.exe; ??? (和LINUX里的版本bios_setuplinux_5_33_06配對) ??? 補充一下,本人這里基本上都是從TI上下載比較新的安裝包,很多公司和朋友目前還都停留在linux-2.6.10和mvl_4_0_1上開發; 第二步:linux環境搭建 ????有關如何搭建,本人已在之前發表一篇《RedHat Enterprise Linux Server 5 在VMware Workstation 6.5的安裝》里有詳細介紹,一定要選擇安裝圖形界面的,這里不重復。配置好samba后,把從TI上下載的安裝包COPY到一個temp的目錄里; 第三步:ARM編譯環境搭建 ??? 上一步搞定后,以ROOT身份進入linux環境。 ??? 1) 搭建montavista linux環境 ????按以下命令安裝GCC(arm_v5t_le)交叉編譯工具,安裝過程按照提示操作,運行時會提示安裝目錄的選擇,建議/opt/mv_pro_5.0.0; ????host $ ./mvl_5_0_0801921_demo_sys_setuplinux.bin ??? host $ ./mvl_5_0_0_demo_lsp_setuplinux_02_00_00_140.bin 執行上面的命令后,會在/opt/mv_pro_5.0.0/目錄下生成mvltools5_0_#######.tar.gz和DaVinciLSP_#_#_#_#.tar.gz的文件,“#”表示版本。mvltools5_0_##包括GCC交叉編譯環境和根文件系統(target),DaVinciLSP_##里包含montavista linux-2.6.18的內核源代碼。用以下命令把它們解壓到當前目錄: ?????? host $ tar zxf mvltools5_0_#######.tar.gz?????? host $ tar zxf DaVinciLSP_#_#_#_#.tar.gz ?????? ?????? 以上兩個開發包是最基本的,至于下面要安裝的TI 自己的dvsdk,沒有它也可以照樣開發DM6446,因為DSP算法開發也可以使用常用的方法生成*.bin文件,放到根文件系統,當做一個應用文件boot起來也是可以的,那是后話。 ????補充提示:由于mvl_5_0_0801921_demo_sys_setuplinux.bin和mvl_5_0_0_demo_lsp_setuplinux_02_00_00_140.bin等文件比較占用虛擬機的空間,建議安裝完后,把它們刪除。如果有些*.bin運行不了,請使用chmod +x *.bin改變文件屬性。 ????2)安裝TI DVSDK工具鏈 ?????dvsdk存放路徑/home/<useracct>/下,<useracct>就是你的linux系統普通用戶賬號,不是root賬號。TI 建議用戶使用su <user>命令切換到用戶賬號的權限下安裝dvsdk,其在root下安裝也沒問題。使用以下命令開始安裝dvsdk; ???? host $ ./dvsdk_setuplinux_2_00_00_22.bin ???? 安裝完dvsdk后,使用以下命令,按照提示安裝xdctools和bios工具包到/home/<useracct>/dvsdk_2_00_00_22/目錄下, ???? host $ ./xdctools_setuplinux_3_10_03.bin ?????host $ ./bios_setuplinux_5_33_06.bin ???? 然后在/home/<useracct>/dvsdk_2_00_00_22/下先使用 ???? host $ mkdir cg6x_6_0_23 ???????? 產生cg6x_6_0_23/目錄,執行以下命令安裝ti_cgt_c6000_6.0.23到/home/<useracct>/dvsdk_2_00_00_22/cg6x_6_0_23/: ?????host $ ./ti_cgt_c6000_6.0.23_setup_linux_x86.bin ?????設置環境變量 ???? csh: ???????? host $ setenv C6X_C_DIR /home/<useracct>/dvsdk_2_00_00_22/cg6x_6_0_23/include:
/home/<useracct>/dvsdk_2_00_00_22/cg6x_6_0_23/lib ??????? 或ksh or bash: host $ export C6X_C_DIR=/home/<useracct>/dvsdk_2_00_00_22/cg6x_6_0_23/include:
/home/<useracct>/dvsdk_2_00_00_22/cg6x_6_0_23/lib ????其實以上的環境變量的設計也可以在dvsdk_2_00_00_22/Rules.make里設置。對應XDC_INSTALL_DIR宏及BIOS_INSTALL_DIR宏,需要改成如下值:? XDC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/xdctools_3_10_03 BIOS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/bios_5_33_06 在需要使用到DSP程序編譯處,需要改動相應的CODEGEN_INSTALL_DIR宏如下: CODEGEN_INSTALL_DIR = $(DVSDK_INSTALL_DIR)/cg6x_6_0_23 ???? 3)安裝Codec Servers ???? Codec Servers就是提供ARM端調用DSP端算法的一個服務機制,使用以下命令安裝DM6446的Codec Servers到/home/<useracct>/dvsdk_2_00_00_22下, ???? host $ ./dm6446_codecs_setuplinux_#_#_#_#.bin ???? 4) 最后,把臨時的*.bin都刪除掉,畢竟文件很大,保留在VM里占空間。到這里,ARM端的開發環境已經搭建完。 第四步:設置TFTP SERVER ??????? 有兩種方法可以實現,一個在Redhat Linux 5里設置 TFTP SERVER,在根目錄/下產生tftpboot目錄,使用chmod -R 777 /tftpboot/改變權限屬性,然后配置linux 里的TFTP server。另一個是直接使用windows下的TFTP SERVER軟件,把在LINUX下生成的文件,比如U-BOOT,KERNEL,ROOTFS 通過samba機制COPY到windows下的TFTP SERVER的目錄。我們這里只介紹第1中方法。 ??? 使用tftp server 之前,首先確保你的linux 主機安裝有xinetd,然后使用以下命令,查看你linux主機是否安裝TFTP SERVER: host $ rpm -q tftp-server 如果出現: tftp-server-0.xx-x.x字樣,表明安裝成功。沒有的話,你需要從REDHAT LINUX5的鏡像光盤CD里SERVER目錄下,使用命令(rpm -ivh tftp-server-0.42-3.1.i386.rpm)安裝,或者直接把tftp-server-0.42-3.1.i386.rpm解壓出來放到臨時文件夾里同樣使用rpm -ivh tftp-server-0.42-3.1.i386.rpm安裝。 進入根目錄/下,使用命令 host $ mkdir /tftpboot host $ chmod -R777 /tftpboot host $ /sbin/chkconfig tftp on host $ /sbin/chkconfig --list 這時linux主機會顯示 .............. xinetd based services:
??????? chargen-dgram:? off
??????? chargen-stream: off
??????? cvs:??????????? off
??????? daytime-dgram:? off
??????? daytime-stream: off
??????? discard-dgram:? off
??????? discard-stream: off
??????? echo-dgram:???? off
??????? echo-stream:??? off
??????? eklogin:??????? off
??????? ekrb5-telnet:?? off
??????? gssftp:???????? off
??????? klogin:???????? off
??????? krb5-telnet:??? off
??????? kshell:???????? off
??????? rsync:????????? off
??????? tcpmux-server:? off
??????? tftp:?????????? on
??????? time-dgram:???? off
??????? time-stream:??? off on表示TFTP SERVER已經運行。這時你可以把ubl.bin uboot.bin kernel.bin之類的bin文件COPY到/tftpboot目錄下,在板子上跑的UBOOT可以做很多update的工作了。 第五步:設置NFS ??? 開發嵌入式LINUX一定少不了NFS,目的是提高應用軟件的開發效率。笨辦法就是頻繁燒寫rootfs到板子上,那是不可取的。 ??? 1) 以普通用戶<useracct>進入linux host,如果你在ROOT下,使用exit,然后換成普通用戶進入。 ????2)使用命令進入 /home/<useracct>下, ????host $ cd /home/<useracct> ????host $ mkdir -p dm6446/nfs_rootfs ??? host $ cd dm6446/nfs_rootfs ??? ?? 3)切換到root ??? host $ su root ??? host $ cp -a /opt/mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le/target/* .
??? host $ chown -R <useracct> opt ???cp -a 命令很耗時間,因為東西很多,就是把之前安裝的mvl_5_0_0801921_demo_sys_setuplinux.bin里的根文件系統target目錄下的東西全部COPY到當前目錄下(注意那個"."),其實這個target就是TI EVM的根文件系統,超級大!不過使用nfs不用管它的大小,等制作rootfs燒到板子上的時候,再裁減不遲。 ????4)編輯linux host /etc/exports文件, ??? ???? host $ vi /etc/exports ????內容:/home/<useracct>/dm6446/nfs_rootfs *(rw,no_root_squash,no_all_squash,sync)輸入,注意"*"和"("之間不能有空格,它們是連在一起寫的。使用wq保存exports文件退出。 ??? 5)還是在root賬號下,使用以下命令激活nfs, ??? host $ /usr/sbin/exportfs -av
??? host $ /sbin/service nfs restart ??? 6)檢驗并關閉linux host的防火墻: ??? host $ /etc/init.d/iptables status ??? host $ /etc/init.d/iptables stop ??? 到這里linux host的nfs已經搞定,我們以后可以使用下面的方法測試nfs。 ??? 使用以下命令得到linux host的IP,gatewayip,netmask等信息。 ??? host $ /sbin/ifconfig ??? 然后在板子上的U-BOOT命令下,輸入以下信息: ??? myboard # setenv ipaddr 192.168.1.188(本人板子u-boot ip) ????myboard # setenv serverip 192.168.1.251(本人linux host ip)
??? myboard # setenv netmask 255.255.255.0
??? myboard # setenv gatewayip 192.168.1.1
??? myboard # setenv nfshost 192.168.1.251
??? myboard # setenv rootpath /home/<useracct>/dm6446/nfs_rootfs
??? myboard # setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=192.168.1.188:192.168.1.251:192.168.1.1:255.255.255.0:::off root=/dev/nfs nfsroot=192.168.1.251:/home/<useracct>//dm6446/nfs_rootfs,nolock mem=120M ??? myboard # saveenv(保存) ??? myboard # printenv ?? (檢查剛才的輸入是否正確,否則NFS掛不上根文件系統) 第六步:設置GCC交叉編譯環境 ??? 以普通用戶login,vi 編輯~/.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" 保存退出,然后使用以下命令生效,或者退出系統再登陸也可以。 host $ source ~/.bashrc 其實,使用root身份處理也行。 順便曬曬我們公司的開發板,如果哪位朋友有需要可以聯系本人QQ-601712635,電話;13560768971。公司主要開發TI DM644X,DM6437產品,圖像處理,視頻分析,單目雙目圖像算法,機器視覺OPEN CV移植。 板子分核心板(CORE)和主板
?
?核心板硬件資源介紹:
| 序號 | 核心板資源 | 描述 |
| 1 | TMS320DM6446AZWT 可選(TMS320DM6441AZWT) | ARM926EJS-300MHz,DSP(C64+)-600MHz |
| 2 | DDR667或DDR800 | 256M-byte(可配置162MHz和202.5MHz) |
| 3 | NAND FLASH | 1.8V,128M-byte,2K-page |
| 4 | 復位芯片 | 提供穩定復位功能 |
| 5 | 硬件加密芯片 | 支持MAX-DALLAS-DS28E01-100(可選) |
| 6 | 全部的IO引出插座 | 電源,USB2.0,VPFE,VPBE,PWM,EMAC(帶MDIO),I2C,ASP(音頻接口),SPI,UART0,UART1,JTAG,BOOT MODE,GPIO,SD卡接口 |
◆板載4路模擬視頻輸入,支持PAL\NTSC制CCD攝像頭輸入;
◆板載1路CMOS影像傳感器連接,比如美光MT9M112模組(可選);
◆板載1路CVBS視頻輸出接口;
◆板載1路10/100M自適應以太網口;
◆板載USB2.0 HOST接口(可接國內3家3G模塊);
◆板載SD卡座,支持2G(SDHC 32G軟件可選);
◆板載1路RS232(默認UART2);
◆板載1路RS485(默認UART1,可選配置成GPRS+SIM卡接口);
◆板載 實時時鐘PCF8563;
◆板載 I2C加密芯片(可選);
◆板載1路光耦輸出;
◆板載1路光耦輸入;
◆板載4個獨立GPIO引腳座子;
◆板載DSP-JTAG仿真器接口、BOOTMODE選擇跳線、UART0 DEBUG;
◆板載2個可控LED;
◆板載1個按鍵;
◆板載1路音頻輸入(2路輸入可選);
◆板載1路音頻輸出(2路輸出可選);
◆供電要求:DC 12V 供電。
◆主板功耗:<5W
◆尺寸:158mm * 129mm
◆工作溫度:商業級(0~70°)
◆相對濕度:5%到95%,非凝結
軟件資源工具介紹
?
◆ Davinci整套LINUX開發開發環境(含VM虛擬機文件,RedHat EL5,GCC交叉編譯工具鏈和DVSDK_2_00_00_22,我們全部幫客戶設置好);
◆ 源碼包TI ubl(經過移植修改);
◆ 源碼包TI u-boot-2009.03(經過移植修改,支持jffs2);
◆ 源碼包linux-2.6.18_pro5.0.0 (經過移植修改):
* 串口uart1、uart2驅動;
* 視頻tvp5158 單路D1采集驅動(4路切換驅動,4CIF采集可選);
* 復合視頻輸出驅動;
* 文件系統jffs2、squasfs3.4;
* rtc8563驅動;
* 音頻tlv320aic3x驅動,支持MIC和LINE輸入;
* gpio驅動;
* SD卡驅動(默認2G,可選SDHC 32G);
* USB2.0 HOST驅動(完全支持國內3加3G模塊);
* CMOS設計美光MT9M112模組驅動(可選);
* PHY網口驅動;
* I2C加密芯片驅動(可選);
?
◆ 根文件系統:TI源 target和本工作室裁減的rootfs;
◆ dvsdk_2_00_00_22 整個開發環境(全部配置好,客戶可以方便設計CODEC);
◆ Decode(h.264、mpeg4、g711)(音視頻解碼);
◆ Encode(h.264、mpeg4、g711)(音視頻編碼);
◆ Encodedecode(h.264、mpeg4)(視頻編解碼);
◆ jpegenc(jpeg編碼);
◆ jpegdec(jpeg解碼);
◆ thttp-2.25b(WEB網絡服務);
◆ V4L2視頻輸入輸出源碼;
◆ Audio loopback源碼;
◆ rtc8563 應用程序源碼;
◆ gpio應用程序源碼;
◆ UART1-rs485應用程序源碼;
◆ UART2-rs232應用程序源碼;
◆ TI的DSP開發環境CCS V3.3;
◆生產燒寫ubl和uboot工具;
(注:該工具可以直接方便燒寫ubl和運行uboot,根本不用昂貴的仿真器燒寫ubl,并可以通過串口動態下載uboot進行軟件調試!)
◆ VMware-workstation-6.5.2.exe;
◆ TI dvsdk_2_00_00_22相關軟件安裝包。
?
轉載于:https://blog.51cto.com/zjbintsystem/273687
總結
以上是生活随笔為你收集整理的TI Davinci DM6446开发攻略——开发环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.sql 数据据基础_数据库的组成
- 下一篇: TClientDataSet[22]: