ti processor sdk linux am335x evm /bin/commom.sh hacking
#!/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的更多相关文章
- 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 ...
- 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中 ...
- ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking
#!/bin/bash # # ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking # 说明: # 本文主 ...
- 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 ...
- 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中 ...
- 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 ...
- 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 ...
- 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 ...
- ti processor sdk linux am335x evm setup.sh hacking
#!/bin/sh # # ti processor sdk linux am335x evm setup.sh hacking # 说明: # 本文主要对TI的sdk中的setup.sh脚本进行解读 ...
随机推荐
- C++同步串口通信
问题描述: C++串口通信,设置同步串口通信 问题解决: (1)打开串口 注: 使用串口需要添加<Windows.h>头文件,打开串口主要是使用CreateFile ...
- python学习之“切片操作从入门到精通”
在python学习开发的过程中,我们总是不断的要对List(列表),Tuple(元组)有取值操作:假如我们有一个列表List1现在想取出1其中的前5个元素,改怎么操作呢? >>> L ...
- iOS开发之静态库的制作
当你需要和别人分享代码,但又不想让别人看到你内部的实现时就需要制作静态库,通常用于第三方SDK 下面就分享一下制作静态库(.a)的过程: 1.打开Xcode,新建workspace 2.随便给work ...
- (一)、http原理
谣言粉碎机前些日子发布的<用公共WiFi上网会危害银行账户安全吗?>,文中介绍了在使用HTTPS进行网络加密传输的一些情况,从回复来看,争议还是有的.随着网络越来越普及,应用越来越广泛,一 ...
- JsRender系列demo(5) for else
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- iOS开发中@selector的理解
@selector 是什么? 1一种类型 SEL2代表你要发送的消息(方法), 跟字符串有点像, 也可以互转.: NSSelectorFromString() / NSSelectorFromStri ...
- POJ1159Palindrome
http://poj.org/problem?id=1159 题意 : 给定一个字符串,问最少插入多少字符,使该字符串变成回文串 思路 : 设原字符串序为X,逆序列为Y,则最少需要补充的字母数 = X ...
- Linux和Linux之间共享目录
1.Linux 服务器端NFS服务器的配置 以root身份登陆Linux服务器,编辑/etc目录下的共享目录配置文件exports,指定共享目录及权限等. 执行如下命令编辑文件/etc/exports ...
- iOS 开发--开源图片处理圆角
概述 开源项目名称:HYBImageCliped 当前版本:2.0.0 项目用途:可给任意继承UIView的控件添加任意多个圆角.可根据颜色生成图片且可带任意个圆角.给UIButton设置不同状态下的 ...
- WCF入门(四)---WCF架构
WCF是一个分层架构,为开发各种分布式应用的充分支持.该体系结构在下面将详细说明. 约定 约定层旁边就是应用层,并含有类似于现实世界的约定,指定服务和什么样的信息可以访问它会使操作的信息.约定基本都是 ...