天天看點

Davinci DM6446開發攻略-UBOOT-2009.03移植2 nand flash的燒寫

Davinci産品需要燒寫UBL、U-BOOT、KERNEL、ROOTFS這四個最基本的檔案。UBL的燒寫有兩種方式,一個就是TI開發包自帶的NandWriter.out檔案,這必須使用560-plus仿真器(太貴了!)。另一個就是自己開發u-boot燒寫,或開發核心支援mtd block燒寫,我們一般移植u-boot進行燒寫。這個燒寫涉及到ECC校驗,移植比較複雜,為了保護自己一點點知識産權的東西,這裡就保留不說,不過購買本工作室的開發闆或核心闆,都會提供燒寫UBL的工具,核心闆我們直接就幫客戶燒寫好(沒辦法,辦公房租飛漲,物價飛漲,不,是翻翻倍漲,晶片炒作,TI兩款浮點工控晶片MCU F28XX的晶片從年初的120多元飛漲到600~800元!,而且沒貨!是以說日子越來越不好過)。而u-boot和kernel的燒寫,則比較簡單,jffs2燒寫稍微複雜一點。

關于u-boot-2009.03 nand flash的燒寫,指令分nand write 和 nand write.jffs2,這兩個指令是有差别的,nand write主要用來燒寫u-boot和kernel(uImage),和任何檔案系統無關,一些剛剛接觸嵌入式LINUX的朋友需要了解這一點,而nand write.jffs2專門用來燒寫jffs2檔案系統的,當然,你可以添加nand write.yaffs2,nand write.squahfs等等,這個在cmd_nand.c裡的do_nand函數加自己的代碼,當然幾個基本的nand檔案u-boot-2009.03/drivers/mtd/nand是需要看看和了解的,但不需要大改。DM6446 U-BOOT很多移植工作就是對davinci_dvevm.h的配置和定義,nand flash的燒寫也是在這裡定義,我們以這個檔案進行講解和分析,讓大家更了解U-BOOT,不單單是nand flash的燒寫。

#include/davinci_dvevm.h

/*=======*/

/* Board */

#define DV_EVM

//#define CONFIG_SYS_NAND_SMALLPAGE   <b>(這個是支援512</b><b>位元組NAND FLASH</b><b>定義)</b>

#define CONFIG_SYS_NAND_LARGEPAGE <b>(本工作室的開發闆核心闆是2K—PAGE</b><b>,目前比較新的NAND</b><b>,因為有些客戶需要移植yaffs2</b><b>,512</b><b>位元組的隻能支援yaffs</b><b>,超級慢)</b>

#undef    CONFIG_SYS_USE_NOR<b>(現在基本上取消NOR FLASH</b><b>的支援,價格貴,容量小)</b>

#define    CONFIG_SYS_USE_NAND<b>(定義闆子使用NAND FLASH</b><b>)</b>

/*===================*/

/* SoC Configuration */

#define CONFIG_ARM926EJS                  /* arm926ejs CPU core */

#define CONFIG_SYS_CLK_FREQ    297000000     /* Arm Clock frequency */

#define CONFIG_SYS_TIMERBASE         0x01c21400    /* use timer 0 */

#define CONFIG_SYS_HZ_CLOCK           27000000       /* Timer Input clock freq */

#define CONFIG_SYS_HZ                 1000

#define CONFIG_SOC_DM644X

//#define CONFIG_DISPLAY_CPUINFO <b>(顯示CPU</b><b>的頻率資訊等,屏蔽不用,以後的版本都有這個)</b>

/*====================================================*/

/* EEPROM definitions for Atmel 24C256BN SEEPROM chip */

/* on Sonata/DV_EVM board. No EEPROM on schmoogie.    */

<b>(這個是TI </b><b>自己的EVM</b><b>,帶有1</b><b>個EEPROM</b><b>,儲存MAC</b><b>位址,我們闆子不用,是以屏蔽)</b>

//#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN             2

//#define CONFIG_SYS_I2C_EEPROM_ADDR        0x50

//#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 6

//#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS    20

/*=============*/

/* Memory Info */

<b>(DDR</b><b>記憶體的一些定義)</b>

#define CONFIG_SYS_MALLOC_LEN             (0x10000 + 128*1024) /* malloc() len */

#define CONFIG_SYS_GBL_DATA_SIZE 128         /* reserved for initial data */

#define CONFIG_SYS_MEMTEST_START       0x80000000    /* memtest start address */

#define CONFIG_SYS_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) */

<b>(我們的核心闆使用DDR256M-byte</b><b>,是以是8 bank</b><b>)</b>

/*====================*/

/* Serial Driver info */

<b>(序列槽配置資訊,UART0=ttyS0</b><b>,一般用來列印LINUX</b><b>調試資訊)</b>

#define CONFIG_SYS_NS16550

#define CONFIG_SYS_NS16550_SERIAL

#define CONFIG_SYS_NS16550_REG_SIZE    -4    /* NS16550 register size, byteorder */

#define CONFIG_SYS_NS16550_COM1    0x01c20000    /* Base address of UART0 */

#define CONFIG_SYS_NS16550_CLK              27000000       /* Input clock to NS16550 */

#define CONFIG_CONS_INDEX 1            /* use UART0 for console */

#define CONFIG_BAUDRATE            115200           /* Default baud rate */

#define CONFIG_SYS_BAUDRATE_TABLE     { 9600, 19200, 38400, 57600, 115200 }

/* I2C Configuration */

<b>(如果你不需要在U-BOOT</b><b>對I2C</b><b>晶片讀寫操作,可以屏蔽這個)</b>

//#define CONFIG_HARD_I2C

//#define CONFIG_DRIVER_DAVINCI_I2C

//#define CONFIG_SYS_I2C_SPEED         80000     /* 100Kbps won't work, silicon bug */

//#define CONFIG_SYS_I2C_SLAVE         10    /* Bogus, master-only in U-Boot */

/*==================================*/

/* Network &amp; Ethernet Configuration */

#define CONFIG_DRIVER_TI_EMAC

#define CONFIG_MII

#define CONFIG_BOOTP_DEFAULT

#define CONFIG_BOOTP_DNS

#define CONFIG_BOOTP_DNS2

#define CONFIG_BOOTP_SEND_HOSTNAME

#define CONFIG_NET_RETRY_COUNT    10

#define CONFIG_IPADDR       192.168.1.188    <b>(闆子U-BOOT</b><b>的IP</b><b>)</b>

#define CONFIG_SERVERIP     192.168.1.252   <b>(HOST </b><b>你的linux</b><b>開發主機IP</b><b>,一般是NFS</b><b>的IP</b><b>)</b>

/*=====================*/

/* Flash &amp; Environment */

#ifdef CONFIG_SYS_USE_NAND

#define CONFIG_NAND_DAVINCI

#undef CONFIG_ENV_IS_IN_FLASH

#define CONFIG_SYS_NO_FLASH

#define CONFIG_ENV_IS_IN_NAND              /* U-Boot env in NAND Flash */

#ifdef CONFIG_SYS_NAND_SMALLPAGE

#define CONFIG_ENV_SECT_SIZE   512 /* Env sector Size */

#define CONFIG_ENV_SIZE             SZ_16K

#else

#define CONFIG_ENV_SECT_SIZE   2048       /* Env sector Size */

#define CONFIG_ENV_SIZE             SZ_128K

#endif

#define CONFIG_SKIP_LOWLEVEL_INIT       /* U-Boot is loaded by a bootloader */

#define CONFIG_SKIP_RELOCATE_UBOOT   /* to a proper address, init done */

#define CONFIG_SYS_NAND_BASE        0x02000000<b>(這個是EMIF CS2</b><b>的起始位址,類似片選的說法)</b>

#define CONFIG_SYS_NAND_HW_ECC <b>(TI</b><b>預設 </b><b>硬體 ECC</b><b>)</b>

#define CONFIG_SYS_MAX_NAND_DEVICE 1     /* Max number of NAND devices */

<b>(上面的定義表示闆子隻有1</b><b>片NAND FLASH</b><b>)</b>

#define    CONFIG_MASK_CLE                0x10

#define    CONFIG_MASK_ALE                0x08

#define CONFIG_ENV_OFFSET        0xE0000 /* Block 7--not used by bootcode */

<b>(上面的定義就是存放u-boot</b><b>參數的位址,源碼是0x0</b><b>,但我們一般把參數放到U-BOOT</b><b>存儲位址前後)</b>

#define DEF_BOOTM          ""

#elif defined(CONFIG_SYS_USE_NOR) <b>(這個是支援NOR FLASH</b><b>的定義,不用理會)</b>

#ifdef CONFIG_NOR_UART_BOOT

#undef CONFIG_SKIP_LOWLEVEL_INIT

#undef CONFIG_SKIP_RELOCATE_UBOOT

#define CONFIG_ENV_IS_IN_FLASH

#undef CONFIG_SYS_NO_FLASH

#define CONFIG_FLASH_CFI_DRIVER

#define CONFIG_SYS_FLASH_CFI

#define CONFIG_SYS_MAX_FLASH_BANKS 1            /* max number of flash banks */

#define CONFIG_SYS_FLASH_SECT_SZ 0x20000         /* 128KB sect size Intel Flash */

#define CONFIG_ENV_OFFSET        (CONFIG_SYS_FLASH_SECT_SZ*3)

#define PHYS_FLASH_1            0x02000000    /* CS2 Base address       */

#define CONFIG_SYS_FLASH_BASE              PHYS_FLASH_1   /* Flash Base for U-Boot */

#define PHYS_FLASH_SIZE              0x1000000     /* Flash size 16MB */

#define CONFIG_SYS_MAX_FLASH_SECT     512

#define CONFIG_ENV_SECT_SIZE   CONFIG_SYS_FLASH_SECT_SZ      /* Env sector Size */

#define CONFIG_SYS_FLASH_PROTECTION

/*==============================*/

/* U-Boot general configuration */

#undef    CONFIG_USE_IRQ                    /* No IRQ/FIQ in U-Boot */

#define CONFIG_MISC_INIT_R

#define CONFIG_BOOTDELAY 2   <b>(這個DELAY</b><b>一般定義1~2,3</b><b>秒太長,為了縮短BOOT</b><b>的時間,有些産品直接不定義,或0</b><b>)</b>

#define CONFIG_BOOTFILE             "uImage" /* Boot file name */

<b>(這uImage</b><b>其實是linux</b><b>核心的鏡像檔案,也就是uImage=zImage + </b><b>被U-BOOT</b><b>識别的header</b><b>,或者是mkimage</b><b>處理過的Image</b><b>檔案)</b>

#define CONFIG_SYS_PROMPT        "U-Boot &gt; "    /* Monitor Command Prompt */

#define CONFIG_SYS_CBSIZE          1024              /* Console I/O Buffer Size */

#define CONFIG_SYS_PBSIZE          (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16)      /* Print buffer sz */

#define CONFIG_SYS_MAXARGS           16           /* max number of command args */

#define CONFIG_SYS_BARGSIZE            CONFIG_SYS_CBSIZE       /* Boot Argument Buffer Size */

#define CONFIG_SYS_LOAD_ADDR        0x82000000    /* 0x80700000 default Linux kernel load address */

<b>(這個是TFTP</b><b>或RS232</b><b>下載下傳各個鏡像檔案緩存的位址,預設是0x80700000</b><b>,但是由于自己制作的ROOTFS</b><b>檔案很大,有些往外超過32M</b><b>,而U-BOOT</b><b>本身運作的起始位址是“TEXT_BASE = 0x81080000</b><b>”,是以我們把下載下傳檔案緩存的位址改為0x82000000</b><b>)</b>

#define CONFIG_VERSION_VARIABLE

#define CONFIG_AUTO_COMPLETE              /* Won't work with hush so far, may be later */

#define CONFIG_SYS_HUSH_PARSER

#define CONFIG_SYS_PROMPT_HUSH_PS2   "&gt; "

#define CONFIG_CMDLINE_EDITING

#define CONFIG_SYS_LONGHELP

#define CONFIG_CRC32_VERIFY

#define CONFIG_MX_CYCLIC

#define CONFIG_MUSB_HCD <b>(DAVINCI</b><b>平台在U-BOOT</b><b>支援USB HUB</b><b>)</b>

#define CONFIG_USB_DAVINCI

/* Linux Information */

#define LINUX_BOOT_PARAM_ADDR     0x80000100

#define CONFIG_CMDLINE_TAG

#define CONFIG_SETUP_MEMORY_TAGS

#define CONFIG_BOOTARGS            "mem=118M console=ttyS0,115200n8 ip=192.168.1.188 noinitrd root=/dev/nfs rw nfsroot=192.168.1.252:/home/davinci/nfs/tirootfs,nolock"

//#define CONFIG_BOOTARGS          "mem=118M console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=jffs2 noinitrd ip=off"

<b>(上面的定義就是bootargs</b><b>的參數了,一個是NFS</b><b>,另一個是産品級的參數)</b>

#define CONFIG_ETHADDR       00:03:55:88:00:00<b>(UBOOT</b><b>一般不在公網上運作,是以可以随便定義一個MAC</b><b>位址)</b>

#define CONFIG_BOOTCOMMAND "run nand_boot"<b>(這是NAND BOOT</b><b>的指令定義,見後半部分介紹)</b>

/*=================*/

/* U-Boot commands */

<b>(随着時間的推移,U-BOOT</b><b>越來越完善,功能越來越強大,同時生産的BIN</b><b>檔案也越大,有些公司産品成本控制很嚴格,往往使用容量小的FLASH</b><b>,這時就需要對任何的鏡像檔案進行“瘦身”,隻有保證U-BOOT</b><b>基本功能,其他功能統統屏蔽掉,這樣編譯出來的BIN</b><b>就小多了)</b>

#include &lt;config_cmd_default.h&gt;

#define CONFIG_CMD_ASKENV

#undef CONFIG_CMD_BOOTD

#undef CONFIG_CMD_DHCP

#undef CONFIG_CMD_DIAG

#undef CONFIG_CMD_I2C

#define CONFIG_CMD_MII

#define CONFIG_CMD_PING

#define CONFIG_CMD_SAVES

#undef CONFIG_CMD_EEPROM

#undef CONFIG_CMD_BDI

#undef CONFIG_CMD_FPGA

#undef CONFIG_CMD_NFS

#undef CONFIG_CMD_SETGETDCR

#undef CONFIG_CMD_FLASH

#undef CONFIG_CMD_IMLS

#define CONFIG_CMD_NAND

#define CONFIG_JFFS2_NAND<b>(為了支援JFFS2</b><b>在NAND</b><b>的燒寫,必須定義這個)</b>

#elif defined(CONFIG_SYS_USE_NOR)

#define CONFIG_CMD_JFFS2

#error "Either CONFIG_SYS_USE_NAND or CONFIG_SYS_USE_NOR _MUST_ be defined !!!"

/*==========================*/

/* USB MSC support (if any) */

#ifdef CONFIG_USB_DAVINCI

#define CONFIG_CMD_USB

#ifdef CONFIG_MUSB_HCD

#define CONFIG_USB_STORAGE

#define CONFIG_CMD_STORAGE

#define CONFIG_CMD_FAT

#define CONFIG_DOS_PARTITION

#ifdef CONFIG_USB_KEYBOARD

#define CONFIG_SYS_USB_EVENT_POLL

#define CONFIG_PREBOOT "usb start"

#undef CONFIG_CMD_LOADB /* loadb */<b>(“瘦身”)</b>

#undef CONFIG_CMD_LOADS   /* loads */

#undef CONFIG_CMD_ITEST

#undef CONFIG_CMD_XIMG

#undef CONFIG_CMD_KGDB

#undef CONFIG_CMD_SOURCE       /* "source" command support       */

/*=======================*/

/* KGDB support (if any) */

#ifdef CONFIG_CMD_KGDB

#define CONFIG_KGDB_BAUDRATE       115200    /* speed to run kgdb serial port */

#define CONFIG_KGDB_SER_INDEX      1     /* which serial port to use */

#define CONFIG_EXTRA_ENV_SETTINGS     \

"clearenv=nand erase 0xe0000 0x20000;\0" \

"cleardata=nand erase 0x7000000 0x1000000\0" \

"updateuboot=tftp 0x82000000 davinci_uboot.bin;nand erase 0x100000 0x80000\0" \

"updatecore=tftp 0x82000000 davinci_kernel.bin;nand erase 0x180000 0x480000\0" \

"updaterootfs=tftp 0x82000000 davinci_rootfs.bin;nand erase 0x600000 0x6A00000\0" \

"nand_boot=nboot 0x80008000 0 0x180000;bootm 0x80008000\0" \

"tftp_boot=tftpboot 0x80008000 davinci_kernel.bin;bootm 0x80008000\0"

<b>(</b>

<b>因為是2k-page</b><b>的NAND</b><b>,</b>

<b>分區情況:</b>

<b>根據TI </b><b>文檔說明,對于LARGE PAGE</b><b>的NAND</b><b>,UBL</b><b>隻能存放在0x20000~0x40000</b><b>區間;</b>

<b>U-BOOT: addr=0x00100000, size=0x00080000</b>;

<b>KERNEL(CORE): addr=0x00180000,size=0x00480000;</b>

<b>ROOTFS(mtdblock2): addr=0x00600000,size=0x06A00000;</b>

<b>DATA(mtdblock3): addr=0x07000000,size=0x01000000;</b>

<b>注意TFTP</b><b>要先下載下傳,再擦除,否則網口不行就先擦除FLASH</b><b>,悲劇是一直上演。</b>

<b>)</b>

#endif /* __CONFIG_H */

根據CONFIG_EXTRA_ENV_SETTINGS的定義,我們可以使用以下指令燒寫操作

U-Boot &gt; run updateuboot<b>(U-BOOT</b><b>支援run</b><b>指令)</b>

TFTP from server 192.168.1.252; our IP address is 192.168.1.188

Filename 'davinci_uboot.bin'.

Load address: 0x82000000

Loading: ############

done

Bytes transferred = 167920 (28ff0 hex)

NAND erase: device 0 offset 0x100000, size 0x80000

Erasing at 0x160000 -- 100% complete.

OK

U-Boot &gt; nand write 82000000 100000 2A000   <b>(</b><b>實際長度是0x28ff0</b><b>,但我們使用0x2A000</b><b>,128K-byte</b><b>的倍數)</b>

提示:U-BOOT &gt; 燒寫指令能識别82000000 100000這些16進制。

U-BOOT編譯時生成的u-boot.bin是不能被UBL給BOOT起來的,因為u-boot.bin沒帶有檔案頭header,而u-boot.img是可以被UBL給BOOT起來,這一點要注意。而我們的davinci_uboot.bin是經過U-BOOT自帶的mkimage處理的。

U-Boot &gt; run updatecore下載下傳davinci_rootfs.bin(uImage);

上面的指令隻是下載下傳和erase flash分區,并沒有燒寫,請參考nand write 82000000 180000 size的格式。

<b>nand write.Jffs2 82000000 600000 size</b>

nand_boot=nboot 0x80008000 0x0 0x180000;bootm 0x80008000

表示從NAND 0x180000的地方COPY核心到DDR記憶體0x80008000的位址,0x0表示nand_info[0]的下标0,因為我們系統隻支援1片nand CONFIG_SYS_MAX_NAND_DEVICE

JFFS2的燒寫,移植時,需要注意ECC的問題,同時核心移植裡也有統一對應,否則核心無法加載JFFS2,這裡就保留不多說,本人已經指明了道路,燒寫指令也說明了,需要有興趣的朋友去試試,不試怎麼能提高自己呢?

<b>DM6446</b><b>開發闆介紹:</b>

TY-DM6446-1000開發闆基于TI TMS320DM6446AZWT雙核處理器,它包括一個以ARM926EJS為核的ARM和一個以DSP C64+為核的DSP,工業級記憶體DDR2-667或DDR2-800,容量達到256M-BYTE,工業級NAND 128M-BYTE,采用目前流行的2K-page技術,可以同時開發基于達芬奇系列DSP圖像算法應用程式和基于達芬奇系列ARM的應用程式,可運作多種音頻、視訊編解碼算法,支援高像素JPEG格式編碼,H.264、MPEG-4格式視訊D1 編碼标準,G711音頻編解碼算法,同時非常适合加入自己的算法,這一點是DM365-DM368做不到的。TVP5158可以采集4路當中任一路圖像,即4路D1切換模式,還可以支援4-CIF同時采集四路圖像,實際圖像采集清晰度比TVP5146效果好。本開發闆還支援美光MT9M112系列CMOS模組,特别适合:

3G視訊方案;

安防裝置方案;

多路IVS智能視訊分析方案;

雙目終端裝置方案;

機器人方案;

機器視覺方案;

車載3G方案;

人臉識别方案;

車牌識别方案;

VOIP視訊電話方案;

整套方案特别适合中小公司、算法公司開發自己的産品。我們工作室的目的就是幫助客戶縮短底層開發時間,提供一個穩定的平台,讓客戶盡快開發出自己的産品。

<a target="_blank" href="http://blog.51cto.com/attachment/201009/090610933.jpg"></a>

圖-1 開發闆總體硬體結果圖

<b>1.1 </b><b>底闆硬體介紹:</b>

◆闆載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 供電。

◆主機闆功耗:&lt;5W

◆尺寸:158mm * 129mm

◆工作溫度:商業級(0~70°)

◆相對濕度:5%到95%,非凝結

<b>1.2 </b><b>核心闆介紹:</b>

<a target="_blank" href="http://blog.51cto.com/attachment/201009/090635791.jpg"></a>

圖-2 核心闆正面

<a target="_blank" href="http://blog.51cto.com/attachment/201009/090700532.jpg"></a>

圖-3 核心闆背面

<b>序号   資源          具體資源描述                             參數及作用說明</b>

1        DM6446     TMS320DM6446AZWT          雙核:ARM926EJS-300MHz,DSP(C64+)-600MHz

2        DDR2         DDR2-667(可選DDR2-800)     32bit總線,256M-byte

3        NAND         NAND FLASH                              1.8V,128M-byte,2K-page

                                                                            (支援JFFS2、SQUASHFS、YAFFS2)

4   3.3V電源                                                              由底闆提供

5   1.8V電源                                                              由底闆提供

6   1.2V電源                                                             DSP核心電壓,由底闆提供

10 圖像采集     VPFE                                          CCD/CMOS接口,支援BT656(8~10-bit)接口,

                                                                           YCrCb 16-bit接口,行信号、場信号控制

11 USB        USB2.0                                                 可設定主從裝置,預設為HOST

12 網口       EMAC+MDIO(10M/100M)                 晶片内內建EMAC和MDIO,

                                                                       外接一個PHY網口晶片就滿足網絡傳輸

13 UART序列槽 UART0,UART1,UART2                          同時支援3個UART接口

14 SD卡                                                                    TI提供的軟體直接支援2G的SD卡

15 SPI                                                                        标準SPI接口

16 音頻接口                                                              ASP接口可以直接接音頻采集晶片

17 I2C接口                                                               1.8V的I2C接口

18 JTAG接口                                                            提供仿真器調試接口

19 BOOT MODE                                                      可以控制主晶片從NAND FLASH BOOT,

                                                                        NOR FLASH BOOT, UART BOOT等方式

20 GPIO        GPIO1,GPIO7,GPIO8,GPIO9, GPIO10,

                       GPIO11, GPIO12, GPIO13, GPIO14,

                        GPIO15, GPIO16, GPIO17, GPIO18,

                       GPIO19, GPIO21, GPIO24, GPIO25,

                       GPIO26, GPIO28, GPIO37, GPIO50,

                      GPIO52, GPIO53 

                                                                23個獨立控制的GPIO(不是複用),可以做很多

                                                                            控制,GPIO腳也可以用作中斷信号輸入

21 複合視訊輸出 DAC_IOUT_A,DAC_IOUT_C     A和C口可以獨立作為複合視訊輸出,直接接電視機;

                                                                         或者A和C口組合成S-VIDEO輸出或Y/C輸出

22   輸出時鐘   CLK_OUT0, CLK_OUT1                CLK_OUT0可輸出13.5MHz或27MHz頻率

                                                                             CLK_OUT1可輸出12MHz或24MHz頻率

23   功耗                                                                        低功耗,均為1.8V晶片

24   LOGO                                                                     可以加入客戶的LOGO

25   闆子顔色                                                               綠色,藍色,紅色均可選

26   闆子尺寸                                                              75mm x 47mm

27   定位柱                                                            3個定位柱配合5個I/O插針座子,完全滿足

                                                                                    車載裝置這種工作在颠簸振動的環境

28   闆厚                                                                      1.6mm

29   工作溫度                                                               -20°——70°可選(-40°——80°)

30   相對濕度                                                              5%到95%,非凝結

         TY-DM6446-SYS-V0.3A核心闆采用高精度工藝,低功耗晶片合理布局,使其具有最佳的電氣性能和抗幹擾性能。核心闆解決了DAVINCI系統中最為複雜的高速布線問題,絕大部分的接口信号都引出到母座PIN上,提供完整的接口說明,底闆公座PCB封裝和電源設計電路,及公座座子配套,這些特點可以讓客戶随心所欲的設計自己的底闆,容易衍生系列産品,降低硬體設計風險,更快推進項目進度。客戶隻需根據自己的系統的特殊性,設計相應的底闆,及配套的軟體即可。核心闆目前已經批量出貨給客戶,工業級的IC适合國内絕大多數省份的環境。

<b>軟體資源工具介紹</b>

◆ 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相關軟體安裝包。

本文轉自 zjb_integrated 51CTO部落格,原文連結:http://blog.51cto.com/zjbintsystem/392000,如需轉載請自行聯系原作者

繼續閱讀