This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【89美金 BeagleBone 板子等您拿】- 社区周年有奖征文活动开始啦- TI Sitara 和我的设计之路

Other Parts Discussed in Thread: MSP430F149, AM3359, LM3S811, MSP430G2231, CC2540, AM3517, AM3505, TPS65910, ISO1050, DP83848C, AM3715, AM1808, DM3730, OMAP-L138, MSP430F449, SYSCONFIG, LM3S6432

【89美金 BeagleBone 板子等您拿】-
社区周年有奖征文活动开始啦-
TI Sitara 和我的设计之路
Texas Instruments
2012 年 8 月 8 日 TI 中文社区上线一周年啦 ! 为感谢广大客户对 TI Sitara 产品的关注和支持,从 8 月 2 日到 10 月 7 日,我们诚邀您来分享您在学习或工作中关于应用 TI Sitara 产品的设计心得

我们相信业内同仁的分享和交流为彼此提供宝贵的经验借鉴,同时真诚希望 TI 官方社区成为大家共同学习和探讨技术的一个网上家园!
   
发贴要求(不符合下面要求将不具备获奖资格)
每篇主题不少于 300 字
内容要求清晰详细写出设计心得的具体过程(例如设计中使用哪款产品碰到的问题及其解决的方法和步骤。)
发表以跟贴形式,需为原创贴 (最好同时配上合适的图片或视频)
奖项设置
征文奖交由 TI 技术专家团队评选,取前十名为优秀分享奖
优秀分享奖(10名)- 89 美元 BeagleBone 开源硬件平台 (附图)+ 16G U盘
阳光普照奖 (100名) – TI 16G U盘
 
优秀分享奖(10名)
89 美元 BeagleBone 开源硬件平台
+ 16G U盘

阳光普照奖 (100名)
TI 16G U盘

 

 

 

  • 感谢TI提供这么好的机会,非常幸运得到这个板子。

    一定的好好学习这个板子。

    不过还的等我先把3517调好。

    再次感谢,希望以后还能多多有这类的活动。

  • 不知道有没有我的奖品

  • 感谢TI 以及TI FAE!

    期待更多的精彩!

  • 多谢TI!期待能有更多好的开发板给大家学习!

  • ](AM3517)修改u-boot与Linux调试串口以及文件系统显示终端串口

    1.背景

            近期一个项目,使用TI Cortex-A8的芯片AM3517作为主控开发。前期使用北京瑞泰公司的ICETEK-AM3517-KB核心板搭建开发环境。在自己做底板布板的时候的时候涂个布线方便,改用UART1作为调试串口,而原来瑞泰给的开发包,已经TI的AM3517 PSP均以UART3作为调试串口。于是在底板焊接完成调试的时候就有了一天痛苦的经历和这篇文章。

           在原版的PSP中, 一共有五处使用到UART3作为打印和调试串口:

           (1)Xloader的打印串口

           (2)u-boot的打印串口

           (3)内核解压时的信息打印串口

            (4)内核调试串口

            (5)文件系统中使用的显示终端串口

           以上第一处Xloader的打印信息量少且系统中不需要使用,不做修改。本文中讲述后四种情况的修改。

    2.1 修改u-boot打印串口

        AM3517的串口符合TL16C550标准的,所以驱动也是使用16550的驱动,默认情况下,我们只需要提供需要配置的串口的基地址和中断号等资源给16550的驱动,寄存器的配置不需要我们去关心。且在瑞泰提供开发包中UART1,UART2,UART3引脚配置均配置为M0模式所以不用去修改引脚复用寄存器。仅需在修改u-boot代码中include/configs/am3517_icetek.h的如下代码段:

    90 #define CONFIG_CONS_INDEX  3
    91 #define CONFIG_SYS_NS16550_COM3  OMAP34XX_UART3
    92 #define CONFIG_SERIAL3   1 /* UART3 on AM3517 ICETEK */
     将上述代码修改为:

    90 #define CONFIG_CONS_INDEX 1
    91 #define CONFIG_SYS_NS16550_COM1 OMAP34XX_UART1
    92 #define CONFIG_SERIAL1 1 /* UART1 on AM3517 ICETEK */

            重新编译u-boot,得到u-boot.bin,烧写至nandflash,重新启动,Xloader启动信息打印在UART3,u-boot启动信息打印在UART1。

    2.2修改内核解压缩打印串口

            内核解压缩信息打印使用的串口,在linux内核源码程序中。进入linux源码文件根目录,找到 arch/arm/mach-omap2/include/mach/uncompress.h,打开之后发现里面只有一行:
    #include <plat/uncompress.h>
    #include <plat/uncompress.h>

    找到arch/arm/plat-omap/include/mach/uncompress.h,打开后发现以下代码:
    43 #ifdef CONFIG_OMAP_LL_DEBUG_UART3
    44  uart = (volatile u8 *)(OMAP_UART3_BASE);
    45 #elif defined(CONFIG_OMAP_LL_DEBUG_UART2)
    46  uart = (volatile u8 *)(OMAP_UART2_BASE);
    47 #elif defined(CONFIG_OMAP_LL_DEBUG_UART1)
    48  uart = (volatile u8 *)(OMAP_UART1_BASE);
    49 #elif defined(CONFIG_OMAP_LL_DEBUG_NONE)
    50  return;

            由以上可知内核解压缩信息打印所使用的串口配置以来Linux内核调试串口的配置,与内核调试串口相同。

    2.3修改内核调试串口

    内核调试串口的配置在Linux诶和配置中选择。在Linux源代码根目录下运行一下命令:

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig

    打开配置界面后,找到一下选项:

    System Type  --->

        TI OMAP Implementations  --->

            Low-level debug console UART (UART3)  --->

    修改为:

            Low-level debug console UART (UART1) --->

    这里的 (UART1) 表示调试串口选择UART1。

    保存后退出配置界面,运行以下命令重新编译内核:

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

    将编译后的内核烧写至nandflash,设置u-boot启动参数从nandflash启动,启动内核。在UART1打印出内核解压以及内核启动信息如下:

    NAND read: device 0 offset 0x280000, size 0x500000
     5242880 bytes read: OK
    ## Booting kernel from Legacy Image at 80000000 ...
       Image Name:   Linux-2.6.32
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    2313024 Bytes =  2.2 MB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
       Loading Kernel Image ... OK
    OK

    Starting kernel ...

    Uncompressing Linux................................................................................................................................................. done, booting the kernel.
    Linux version 2.6.32 (root@world-desktop) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #1 Mon Apr 2 20:04:47 CST 2012
    CPU: ARMv7 Processor [411fc087] revision 7 (ARMv7), cr=10c53c7f
    CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
    Machine: OMAP3517/AM3517 EVM

    ......................................................

    2.4修改文件系统中使用的显示终端串口

            系统中使用的终端显示串口配置在/etc/inittab文件中。打开开发板根文件系统下的/etc/inittab文件,找到一下信息:

    31 S:2345:respawn:/sbin/getty 115200 ttyS2

    将其修改为:

    31 S:2345:respawn:/sbin/getty 115200 ttyS0

    完成全部修改任务。

    3.感触

           (1)Linux开源特性,使得我们可以很好地对其进行源码级的修改,使其适合于我们的设计要求。

            (2)在进行系统设计时一定要先做好仔细前期准备。尤其在做硬件设计时,一定要充分考虑使用中要用到的资源,不然就会造成后期软件设计者更多的麻烦。

            (3)在做系统设计时一定要充分利用现有资源,在现有基础上进行设计开发。本文作者若完全按照以前的设计在设计底板时使用UART3作为调试串口,就不会出现见天一天的纠结,浪费了一天的开发时间。

  • 本来希望能获得一块beaglebone来好好学习的,不过最终获得一个优盘。。还不错。。。。

  • 我也是一个优盘

  • 收到u盘,谢谢TI!

  •  

    AM3517板整个开发过程记录

    最近时间一直在做一个新项目,同时也是对旧项目的硬件平台进行一个升级,所以用了sitara am3517 Cortex-A8做了一块主板。以下简单介绍一下整个开发过程的建立以及在中间遇到的一些问题及其解决方法。希望对新人有所帮助.

    1、平台硬件资源简介

    CPU:TI Sitara AM3517+

    DDR2:SAMSUNG K4T1G164QE-HCE7

    Nand:SAMSUNG K9F1g08UOD

    PHY:NS DP83848C

     

    建立TFTP Server

    1、安装相关软件包:Ubuntu tftp(服务端),tftp(客户端),xinetd

    root@xf:/# apt-get install tftpd tftp xinetd

    正在读取软件包列表... 完成

    正在分析软件包的依赖关系树      

    正在读取状态信息... 完成      

    下列【新】软件包将被安装:

      tftp tftpd xinetd

    升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

    需要下载 185kB 的软件包。

    解压缩后会消耗掉 578kB 的额外空间。

    获取:1 http://mirrors.sohu.com/ubuntu/ karmic/universe tftp i386 0.17-17ubuntu1 [17.6kB]

    获取:2 http://mirrors.sohu.com/ubuntu/ karmic/main xinetd i386 1:2.3.14-7ubuntu2 [151kB]

    获取:3 http://mirrors.sohu.com/ubuntu/ karmic/universe tftpd i386 0.17-17ubuntu1 [16.5kB]

    下载 185kB,耗时 2秒 (79.6kB/s)

    选中了曾被取消选择的软件包 tftp。

    (正在读取数据库 ... 系统当前共安装有 173693 个文件和目录。)

    正在解压缩 tftp (从 .../tftp_0.17-17ubuntu1_i386.deb) ...

    选中了曾被取消选择的软件包 xinetd。

    正在解压缩 xinetd (从 .../xinetd_1%3a2.3.14-7ubuntu2_i386.deb) ...

    选中了曾被取消选择的软件包 tftpd。

    正在解压缩 tftpd (从 .../tftpd_0.17-17ubuntu1_i386.deb) ...

    正在处理用于 man-db 的触发器...

    正在处理用于 ureadahead 的触发器...

    正在设置 tftp (0.17-17ubuntu1) ...

    正在设置 xinetd (1:2.3.14-7ubuntu2) ...

     * Stopping internet superserver xinetd                                                                              

    [ OK ]

     * Starting internet superserver xinetd                                                                              

    [ OK ]

    正在设置 tftpd (0.17-17ubuntu1) ...

    Note: xinetd currently is not fully supported by update-inetd.

          Please consult /usr/share/doc/xinetd/README.Debian and itox(8).

    2、建立配置文件
    在/etc/xinetd.d/下建立一个配置文件tftp
    sudo vim tftp
    在文件中输入以下内容:
    service tftp
    {

    socket_type = dgram
    protocol = udp
    wait = yes
    user = root
    server = /usr/sbin/in.tftpd
    server_args = -s /tftpboot
    disable = no
    per_source = 11
    cps = 100 2
    flags = IPv4

    }

    保存退出。

    3、建立Ubuntu tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限
    sudo mkdir /tftpboot
    sudo chmod 777 /tftpboot -R

    4、重新启动服务
    sudo /etc/init.d/xinetd restart

    至此Ubuntu tftp服务已经安装完成了,下面可以对其进行一下测试。(在当前目创建2.c,在tftpboot目录下创建1.c和2.c,且

    tftpboot目录下2.c权限为777)

    执行get命令时,保证tftpboot目录下的文件权限为777,

    执行put命令时,必须先在tftpboot目录下新建一个和上传文件同名的文件且权限为777.

    root@xf:/home# tftp 127.0.0.1

    tftp> get 1.c

    Received 7 bytes in 0.1 seconds

    tftp> put 2.c

    Sent 10 bytes in 0.0 seconds

    tftp> quit

     

     

    qt4编译

    make confclean

    ./configure -xplatform /qws/xxxx  -embedded arm -static -little-endian/-big-endian

     

    2、编译

    安装ubuntu10.04,toolchain等相应环境。

    export PATH=$PATH:/opt/4.4.3/bin/

    编译x-loader

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- am3517evm_config

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

    ./signGP x-load.bin

     

    编译u-boot

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- am3517_evm_config

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

     

    编译kernel

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- am3517_evm_defconfig

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

     

    setenv bootargs 'mem=256M console=ttyS2,115200n8 noinitrd root=/dev/mtdblock4 rw rootfstype=jffs2 omapfb.rotate=1 omapfb.rotate_type=1 omap_vout.vid1_static_vrfb_alloc=y;'

     

    3、利用busybox制作root file system

    编译busybox

    make menuconfig

    (1)

    (2)

    (3)

    make

    make install

    构建框架

    cd /home/user/

    mkdir rootfs

    cd rootfs

    mkdir –p dev lib etc sys proc mnt var tmp data

    chmod 777 *

    添加内容

    /bin与/sbin目录

    cp –rf busybox-1.17.2/_install/bin ./

    cp –rf busybox-1.17.2/_install/sbin ./

    /dev目录

    mknod dev/console c 5 1

    mknod dev/null c 1 3

    chmod 777 dev/*

    /lib目录

    cp /opt/4.4.3/arm-none-linux-gnueabi/lib/* ./lib/

    /etc目录

    fstab:指明需要挂载的文件系统

    inittab:init进程的配置文件

    profile:用户环境配置文件

    init.d目录:启动文件目录,该目录中有个名为rcS的文件,里面存放了系统启动时配置以及自启动加载的进程等。

    /proc、/mnt、/var、/tmp目录

    基本都是空目录。

    /mnt一般用做临时挂载某个文件系统,比如说u盘。

    /tmp用于存放临时文件,我挂载为了ramfs,用于下载文件,应用程序放置,内存文件系统访问速度相当快,不比nand,加快了访问速度,而且增强了nand寿命。

    /data目录

    挂载为了yaffs2文件系统,可以用于读写,用于存储一些需要保存的数据。 

    4、制作jffs2

    mkfs.jffs2 -r ./rootfs -o rootfs.jffs2 -e 0x20000 -p=0x1000000 -n

    5、烧写程序

    uboot下烧写x-loader

    mw.b 0x80000000 0xff 0x100000

    tftp 0x80000000 192.168.0.100:x-load.bin.ift

    nand erase 0 40000

    nandecc hw

    nand write.i 0x80000000 0 40000

     

    烧写u-boot

    mw.b 0x80000000 0xff 0x100000

    tftp 0x80000000 192.168.0.100:u-boot.bin

    nand erase 80000 1c0000

    nandecc sw

    nand write.i 0x80000000 80000 1c0000

     

    烧写kernel

    mw.b 0x80000000 0xff 0x500000

    tftp 0x80000000 192.168.0.100:uImage

    nand erase 280000 500000

    nandecc sw

    nand write.i 0x80000000 280000 300000

     

     

    6、测试ramdisk

    nfs

    setenv bootargs 'console-ttyS2,115200n8 noinitrd rw ip=192.168.0.250:192.168.0.103:192.168.0.1:255.255.255.0::eth0:off eth=00:40:01:2B:64:60 root=/dev/nfs

    nfsroot=192.168.0.103:/home/realtimedsp/workdir/am3517/filesys,nolock,mem=256M'

    tftp

    tftp 0x81000000 ramdisk.gz

    setenv bootargs mem=256M console=ttyS2,115200n8 root=/dev/ram0 initrd=0x81000000,40M ramdisk_size=40960;

    setenv bootcmd 'nand read.i 0x80000000 280000 500000;bootm 0x80000000'

    boot

     

    更新root

    flash_eraseall -j /dev/mtd4

    mkdir -p /mnt/nand

    mount -t jffs2 /dev/mtdblock4 /mnt/nand

    cd /mnt/nand

     

    mkdir -p /mnt/data

    mount -t jffs2 /dev/mtdblock5 /mnt/data

    cd /mnt/data

     

    tftp -r flashImage.tar -g 192.168.0.103

    tar zxvf flashImage.tar

     

     

    分区表

    x-loader 0-0x80000

    uboot    0x80000-0x240000

    param    0x240000-0x280000

    kernel   0x280000-0x780000

    root      0x780000-0x1b80000

     

    7、空板烧录

    在使用flash V1.6烧录时,注意根据使用的flash型号修改以下的几个配置文件

    因为我们使用的是Sumsung K9F1G08.故修改以下信息

    omapflash2nd.txt

    修改CUSTOM_AM35XX_BOARD dnld_startup_omap3_gp_1g.2nd

     

    configuration_custom_am35xx.txt

    烧写x-loader

    memory NANDINFO1BITBOOT   driver Targets\Flash-Drivers\nand_onfi_16bit_8bit.bin parameters gpmc 0x6E000000 cs 0 address 0x30000000 bberase 0 onfi 0 bpp 2048 sbpp 64 ppb

     

    64 bpl 1024 l 1 acv 0x22 f 0x0018 eccoffset 2

    烧写uboot

    memory NANDINFOSWECC      driver Targets\Flash-Drivers\nand_onfi_16bit_8bit.bin parameters gpmc 0x6E000000 cs 0 address 0x30000000 bberase 0 onfi 0 bpp 2048 sbpp 64 ppb 64

     

    bpl 1024 l 1 acv 0x22 f 0x0018 swecc 1 eccoffset 40

    烧写kernel

    memory NANDINFOSWECC      driver Targets\Flash-Drivers\nand_onfi_16bit_8bit.bin parameters gpmc 0x6E000000 cs 0 address 0x30000000 bberase 0 onfi 0 bpp 2048 sbpp 64 ppb 64

     

    bpl 1024 l 1 acv 0x22 f 0x0018 swecc 1 eccoffset 40

     

    GPMC_CONFIG1_0       0x00000800 bit12-13是表示是8bit 还是16bit k9f1g08是8bit flash

     

    f为什么是0x0018,因为bit0,为1时代表是16bit flash,为0时,代表8bit flash

     

    出现如下错误提示时,请使用erase all ,在烧写每个软件时,请先擦除,再写入

    hwecc 1bit ecc格式

    Texas Instruments X-Loader 1.45 (Dec  8 2009 - 22:58:46)

    ECC Failed, page 0x00080000

     

    QT编译

    http://processors.wiki.ti.com/index.php/Building_Qt

     

    ./configure -prefix /home/realtimedsp/workdir/Mike/qt-everywhere-opensource-src-4.6.2/MikeQT -embedded arm –release –opensource –static –fast -no-largefile -platform qws/linux-x86-g++ -xplatform qws/linux-am3517-g++ -depths 16 –no-phonon –no-phonon-backend –no-svg –no-webkit –no-javascript-jit –no-script –no-scripttools –no-declarative -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-accessibility –qt-gif -no-openssl -no-gtkstyle -little-endian

     

     

    -qt-mouse-pc -qt-mouse-linuxtp

    -qt-mouse-linuxinput -plugin-mouse-linuxtp -plugin-mouse-pc -fast

     

    到目前为止,xloader,uboot,kernel,rootfs已经成功运行

     

  • 你复制我的贴子干吗?活动都已经结束了。

  • 没有用过这个系列的芯片啊!着急啊!

    现在都是在用MSP430F1或F2的片子,最近才接触C2000载波产品。

  • 来晚了,请问这个活动还有效不啦

  • 你用的网口芯片是不是8710啊?我仿的是天漠的SOC8200,按着他的原理图是不行的,需要改动的哦,这个小芯片好脆弱的,我焊了两次才把这个网口调通

  • 我们公司正在用AM3358做产品,用它来做主控单元,算法处理用的TMS320C6657。但是ARM没有开发板,希望能申请一个玩玩。尽快上手