#!/bin/sh

#
# ti processor sdk linux am335x evm /bin/commom.sh hacking
# 说明:
# 本文主要对TI的sdk中的common.sh脚本进行解读,是为了了解其工作机制。
#
# -- 深圳 南山平山村 曾剑锋 # This distribution contains contributions or derivatives under copyright
# as follows:
#
# Copyright (c) , Texas Instruments Incorporated
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# - Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# - Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# - Neither the name of Texas Instruments nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # 检查上一条Shell命令知否正确执行,如果执行出错,给出提示信息,然后退出。
check_status() {
ret=$?
if [ "$ret" -ne "" ]; then
echo "Failed setup, aborting.."
exit
fi
} # This function will return the code name of the Linux host release to the caller
#
# Qt@aplex:~/ti-processor-sdk-linux-am335x-evm-01.00.00.00/bin$ lsb_release -a
# LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch
# Distributor ID: Ubuntu
# Description: Ubuntu 12.04. LTS
# Release: 12.04
# Codename: precise
#
# eval $__host_ver="'$the_version'"
# 上面eval相当于是给调用该函数时的参数赋值,和C语言中的传递指针差不多的意思。
get_host_type() {
local __host_type=$
local the_host=`lsb_release -a >/dev/null | grep Codename: | awk {'print $2'}`
eval $__host_type="'$the_host'"
} # This function returns the version of the Linux host to the caller
#
# Qt@aplex:~/ti-processor-sdk-linux-am335x-evm-01.00.00.00/bin$ lsb_release -a
# LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch
# Distributor ID: Ubuntu
# Description: Ubuntu 12.04. LTS
# Release: 12.04
# Codename: precise
#
# eval $__host_ver="'$the_version'"
# 上面eval相当于是给调用该函数时的参数赋值,和C语言中的传递指针差不多的意思。
get_host_version() {
local __host_ver=$
local the_version=`lsb_release -a >/dev/null | grep Release: | awk {'print $2'}`
eval $__host_ver="'$the_version'"
} # This function returns the major version of the Linux host to the caller
# If the host is version 12.04 then this function will return
get_major_host_version() {
local __host_ver=$
get_host_version major_version
eval $__host_ver="'${major_version%%.*}'"
} # This function returns the minor version of the Linux host to the caller
# If the host is version 12.04 then this function will return
get_minor_host_version() {
local __host_ver=$
get_host_version minor_version
eval $__host_ver="'${minor_version##*.}'"
} # This function will look for an FTDI connection from the development board
# and based on the index passed in it will set the .minirc.dfl value for the
# proper FTDI instance.
# FTDI 一般是主要是USB 转UART,FIFO,SPI,I2C工具。
set_ftdi_serial_port() {
index="$1"
port=""
ports="" # [ -n "$var" ] :判断$var变量是否有值
if [ ! -n "$index" ]
then
index=
fi while [ == ]
do
# 这里相当于移植等待对应的tty在dmesg中出现,等待时间是10s。
echo "Detecting connection to board..."
loopCount=
ports=`dmesg | grep FTDI | grep "tty" | tail - | sed s'/.*attached to //g'`
while [ -z "$ports" ] && [ "$loopCount" -ne "" ]
do
#count to and timeout if no connection is found
loopCount=$((loopCount+)) sleep
ports=`dmesg | grep FTDI | grep "tty" | tail - | sed s'/.*attached to //g'`
done # If we have actually found ports then get the proper index
# 如果找到了端口
if [ -n "$ports" ]; then
i=
# 取指定的端口,指定的端口号在index中
for p in $ports
do
if [ "$i" -eq "$index" ]
then
port="$p"
break
# There should not be more than indexes so stop there
elif [ "$i" -eq "" ]
then
break
fi
i=`expr $i + `
done # If the port is blank then we couldn't find the index so ask the
# user.
# 如果在上面没有找到指定的串口,那么手动输入
if [ "x$port" == "x" ]
then
echo "The port for the FTDI USB-to-Serial device could not be"
echo "found. Please enter the port yourself here"
read -p "[ /dev/ttyUSB# ] " port
fi
break;
fi # if we didn't find a port and reached the timeout limit then ask
# to reconnect
# 如果没有找到对应的串口,那么询问是否继续
if [ -z "$ports" ] && [ "$loopCount" = "" ]; then
echo ""
echo "Unable to detect which port the board is connected to."
echo "Please reconnect your board."
echo "Press 'y' to attempt to detect your board again or press 'n' to continue..."
read -p "(y/n)" retryBoardDetection
fi #if they choose not to retry, ask user to reboot manually and exit
# 如果选择不继续,那么现实相关提示
if [ "$retryBoardDetection" = "n" ]; then
echo ""
echo "Please reboot your board manually and connect using minicom."
exit;
fi
done # Take everything in the user's .minirc.dlf file expect the port setting
# 这里相当于保留用户之前的设定,然后另外添加当前指定的port
cat ${HOME}/.minirc.dfl | grep -v port > ${HOME}/.minirc.dfl.tmp
echo "pu port /dev/$port" > ${HOME}/.minirc.dfl
cat ${HOME}/.minirc.dfl.tmp >> ${HOME}/.minirc.dfl
rm -f ${HOME}/.minirc.dfl.tmp
}

ti processor sdk linux am335x evm /bin/commom.sh hacking的更多相关文章

  1. ti processor sdk linux am335x evm /bin/setup-host-check.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-host-check.sh hacking # 说明: # 本文主要对TI的sdk ...

  2. ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking

    #!/bin/bash # # ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking # 说明: # 本文主要对TI的sdk中 ...

  3. ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking

    #!/bin/bash # # ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking # 说明: # 本文主 ...

  4. ti processor sdk linux am335x evm /bin/setup-package-install.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-package-install.sh hacking # 说明: # 本文主要对T ...

  5. ti processor sdk linux am335x evm /bin/setup-uboot-env.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-uboot-env.sh hacking # 说明: # 本文主要对TI的sdk中 ...

  6. ti processor sdk linux am335x evm /bin/setup-minicom.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-minicom.sh hacking # 说明: # 本文主要对TI的sdk中的s ...

  7. ti processor sdk linux am335x evm /bin/setup-targetfs-nfs.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-targetfs-nfs.sh hacking # 说明: # 本文主要对TI的s ...

  8. ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking # 说明: # 本文主要对TI的sdk中的setu ...

  9. ti processor sdk linux am335x evm setup.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm setup.sh hacking # 说明: # 本文主要对TI的sdk中的setup.sh脚本进行解读 ...

随机推荐

  1. EXT--columnWidth

    在EXT 3.4API上没有查询到columnWidth这个配置项,但它却实实在在的在起作用,后来在ColumnLayout类查到它的信息: 上面的信息描述了采用了columnLayout布局的子面板 ...

  2. 【BZOJ】【2208】【JSOI2010】连通数

    题解: 1.Tarjan缩点以后对每个连通分量进行深搜,看能到哪些连通分量,能到达的所有连通分量的size之和记为sum.则第i个连通分量对答案的贡献为size[i]*sum(到其他连通分量)+siz ...

  3. 使用NodeJs,实现数据抓取

    学习笔记 前言 近期做一个数据抓爬工具,最开始使用的是C#控制台应用,同时正则表达式去过滤数据,看着还行,可每次运行都依附于.net framework很是不爽,于是想整点其他的方法.本人还是比较喜欢 ...

  4. mysql数据库主外键级联删除脚本RESTRICT --> CASCADE

    在项目中,我们一般在数据库设计的时候做主外键关联设计,要么就不做.但是这样不符合规范,呵呵. 建立主外键关系的时候,默认是不能级联删除的.而出现往往在删除主表的数据时报错, 需要先删除从表然后再删除主 ...

  5. winform窗口打开后文本框的默认焦点设置

    原文:http://blog.csdn.net/kongwei521/article/details/6871411 winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种 ...

  6. CentOS安装视频播放器SMPlayer

    首先下载rpmforg,下载对应的版本,就是对应CentOS版本,还有32位与64位也要对应上.地址如下: http://wiki.centos.org/AdditionalResources/Rep ...

  7. POJ 3468 A Simple Problem with Integers(线段树区间更新,模板题,求区间和)

    #include <iostream> #include <stdio.h> #include <string.h> #define lson rt<< ...

  8. CSS 的命名和书写

    CSS书写顺序 1.位置属性(position, top, right, z-index, display, float等) 2.大小(width, height, padding, margin) ...

  9. APT攻击

    http://netsecurity.51cto.com/art/201211/363040.htm

  10. hdu 1288 Hat's Tea

    这个要慢慢理解…… ;}