You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

323 lines
12 KiB

\documentclass[fontset=windowsnew]{ctexart}
\usepackage[table]{xcolor}
\usepackage{graphicx}
\usepackage{enumerate}
\usepackage{makecell}
\usepackage{multirow}
\usepackage[a4paper,scale=0.82]{geometry}
%\usepackage{times}
\usepackage{courier}
\usepackage{booktabs}
\usepackage{navigator}
\usepackage{float}
\usepackage{tikz}
\usepackage{listings}
%\usepackage[listings,skins,breakable,magazine,fitting,breakable]{tcolorbox}
\usepackage[colorlinks, linkcolor=black, pdfborder=0 0 0, pdfstartview=FitH,pdfpagemode=UseNone,
bookmarksopen=false, pdfstartpage=2,
citecolor=blue,anchorcolor=black, pdfauthor={surenyi82@163.com}, urlcolor=black]{hyperref}
\usepackage{fancyhdr}
%\usepackage{enumitem}
%\setenumerate[1]{itemsep=0pt,partopsep=0pt,parsep=\parskip,topsep=5pt}
%\setitemize[1]{itemsep=0pt,partopsep=0pt,parsep=\parskip,topsep=5pt}
%\setdescription{itemsep=0pt,partopsep=0pt,parsep=\parskip,topsep=5pt}
\graphicspath{{pics/}{images/}}
\definecolor{shadecolor}{gray}{0.85}
\lstset{upquote,keepspaces=true,columns=spaceflexible,
basicstyle=\ttfamily\small, showspaces=false, showtabs=false,%
breaklines=true,breakindent=0pt,xleftmargin=0pt, xrightmargin=6pt,%
language=[LaTeX]TeX, texcsstyle=*\bfseries\color{Maroon}, commentstyle=\sffamily,
emphstyle=\bfseries\color{RoyalBlue3},escapechar={:},
emphstyle={[2]{\bfseries\color{Sienna2}}},
postbreak=\mbox{{\smaller\color{gray}$\rightarrow$}}
}
\renewcommand{\contentsname}{\centerline{\quad}}
\newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}
\renewcommand{\headrulewidth}{0.7pt}
\renewcommand{\footrulewidth}{0.5pt}
\setlength{\headheight}{15pt}
\pagestyle{fancy}
%\CTEXsetup[format={\Large\bfseries}]{section}
\setlength{\headheight}{40.5pt}
\linespread{1.3}
\newsavebox{\hdrgraphic}
\sbox{\hdrgraphic}{\includegraphics[totalheight=0.5in]{logo.eps}}
\fancyhead{} % clear all header fields
\fancyhead[L]{\usebox{\hdrgraphic}\rightmark}
\fancyhead[R]{\leftmark}
\makeatletter
\def\verbatim{\small\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}
\makeatother
\ctexset {
section = {
format = \raggedright\Large\bfseries,
}
}
%\setmonofont{Fira Code}
\setmonofont{Courier New}
%\tcbset{listing engine=listings}
\title{\Huge dspkit 库使用指导}
\author{surenyi82@qq.com}
\date{2018 年 10 月 17 日}
\begin{document}
\maketitle
\thispagestyle{empty}
\newpage
\thispagestyle{empty}
\tableofcontents
\newpage
\setcounter{page}{1}
为了简化~DSP 的开发,我们提供一个库(dspkit)来帮助我们快速调试新的硬件设计和提供给用户一套更简易的应用程序接口供客户的使用。
\section{开发环境准备}
安装 CCS 5.3 和 mcsdk 2.1.2.6 。
在~windows 平台下需要安装~windows 的 git 软件(\url{https://git-scm.com/downloads})。 linux 环境下,一般系统自带~git 工具。
从服务器取下代码:
\verb+git clone git@192.168.0.201:/backup/git/repositories/c6000/libdsp+
\subsection{\texttt{windows} 下编译}
在 windows 下需要设置两个环境变量 \texttt{XDCCGROOT}\texttt{XDCPATH} 。其中:
\noindent \texttt{XDCCGROOT}: 指向 C6000 编译器的安装路径, 例如:\texttt{c:\textbackslash ti\textbackslash ccsv5\textbackslash tools\textbackslash compiler\textbackslash c6000\_7.4.24}
\noindent \texttt{XDCPATH}: 包含安装的 bios, pdk, ndk 的packages路径,例如: \texttt{c:\textbackslash ti\textbackslash bios\_6\_34\_02\_18\textbackslash packages;\\
c:\textbackslash ti\textbackslash ndk\_2\_21\_02\_43\textbackslash packages;c:\textbackslash ti\textbackslash pdk\_C6678\_1\_1\_2\_6\textbackslash packages;}
设置好环境变量以后,打开 git 的 bash 窗口, cd 到 packages/vsky/libdsp 目录,执行下面命令编译:
\$ \texttt{xdc all}
要重新编译执行下面命令:
\$ \texttt{xdc clean}
\$ \texttt{xdc all}
生成发布包:
\$ \texttt{xdc release}
\subsection{\texttt{linux} 下编译}
\begin{enumerate}[(1).]
\item 将安装的工具的可执行文件路径添加到 \texttt{PATH} 环境变量中:
\texttt{\small export PATH=/opt/ti/xdctools\_3\_24\_05\_48:/opt/ti/xdctools\_3\_24\_05\_48/bin:/opt/ti\\/cg\_xml/bin:\$PATH}
这里,CCSV5.3 和 MCSDK 2.1.2.6 安装在 /opt/ti 目录下。
\item 设置环境变量 \texttt{XDCCGROOT}
\texttt{\small export XDCCGROOT=/opt/ti/ccsv5/tools/compiler/c6000\_7.4.24/}
\item 将 NDK 和 bios 路径添加到 \texttt{XDCPATH} 环境变量中:
\texttt{\small export XDCPATH="/opt/ti/ndk\_2\_21\_02\_43/packages;/opt/ti/bios\_6\_34\_02\_18/packages;\\/opt/ti/pdk\_C6678\_1\_1\_2\_6/packages"}
\item 设置好环境变量以后,打开命令行窗口, cd 到 packages/vsky/libdsp 目录,执行下面命令编译:
\$ \texttt{xdc all}
\item 要重新编译执行下面命令:
\$ \texttt{xdc clean}
\$ \texttt{xdc all}
\item 生成发布包:
\$ \texttt{xdc release}
\end{enumerate}
%\section{\texttt{dspkit} 库与 \texttt{MCSDK} 库的关系}
%此处暂略 $\cdots$$\cdots$
\newpage
\section{建立 \texttt{CCS} 工程}
这里介绍几种使用 dspkit 库的方法。
\subsection{不使用 \texttt{RTSC} 的工程}
\label{sec:nrtsc}
不使用 RTSC 的工程建立步骤如下:
\begin{enumerate}[(1).]
\item ``File'' => ``New'' => ``CCS Project'', 然后从 ``Empty Projects'' 选择 ``Empty project'', 最后点击 ``Finish'' 建议新工程。 如下图所示:
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{nrtsc1.png}
\end{figure}
\item 添加 libdsp 的路径。在上一步建立的工程上点击右键,选择``Properties'' 弹出属性配置框。选择``Resource'' => ``Linked Resources''。点击右边的 ``New'',将弹出如下界面:
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{nrtsc2.png}
\end{figure}
在 ``Name:'' 处填写一个名字(例如 ``DSPKIT'', 后面会用到)。点击 ``Location:'' 右边中间的 ``Folder'',选择 libdsp 下的 packages 目录。注意:该目录路径中不要包含空格和中文。
然后点``Ok'' 回到 CCS 主界面。
\item 将 dspkit 库的头文件目录添加到工程中。 在 CCS 左侧工程名上右击,选择 ``New'' => ``Folder'', 弹出如下界面:
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{nrtsc3.png}
\end{figure}
把 dspkit 的头文件目录 inc 链接到工程中,如上图红框 \tikz \draw[color=red] (0, 0) rectangle +(0.4, 0.3); 所示。
\item 将 dspkit 库的库文件目录添加到工程中。操作方法参考上一步骤,将红框中的内容改成 \\ \texttt{\$\{DSPKIT\}/vsky/libdsp/lib}
\item 将 dspkit 库中的 csl 库文件目录添加到工程中。操作方法参考上一步骤,将红框中的内容改成 \\ \texttt{\$\{DSPKIT\}/ti/csl/lib}
如果上一步中的 ``Folder name:'' 没有改名字,这里会报名字冲突的错误,请在该步骤的``Folder name: '' 处改一个名字,例如 \texttt{csl},如下图:
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{nrtsc5.png}
\end{figure}
\item 将 libdsp 的头文件和库文件添加到编译选项中。 在工程上点击右键,选择``Properties'' 弹出属性配置框。选择``Build'' => ``C6000 compiler''。点击的 ``Include options'',点击``+'' 将弹出如下界面:
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{nrtsc6_1.png}
\end{figure}
点 ``Workspace'' 选择工程的 ``inc'' 目录。 然后点 ``Ok'' 确认。\\
点开 ``C6000 linker'',选择到 ``File search path''。用前面类似的方法,将 csl 和 dspkit 库添加到链接选项中。如图所示:
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{nrtsc6_2.png}
\end{figure}
\item 把库需要的几个时钟相关的函数添加到工程的 C 文件中。
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{nrtsc7.png}
\end{figure}
其中 ``\texttt{board\_input\_clock}'' 是必须实现的,其他几个函数,在使用相应模块时才需要的。
\end{enumerate}
至此,工程基础部分已经搭建完毕,根据需要添加 cmd 文件,C 文件,然后编译。
\subsection{使用 \texttt{RTSC} 的工程}
使用 RTSC 的工程建立步骤如下:
\begin{enumerate}[(1).]
\item 建立工程。``File'' => ``CCS Project'', 在 ``Empty Projects'' 处选择 ``Empty RTSC project'' :
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{rtsc1_1.png}
\end{figure}
点击``next'' 进入下一步。
\item 点击 ``Add'' 把 libdsp 仓库路径添加进来:
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{rtsc1_2.png}
\end{figure}
然后从``Platform'' 的下拉框中选一个以 vsky 开头的,例如: vsky.platforms.simple:
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{rtsc1_3.png}
\end{figure}
然后点击``Finish'' 回到 CCS 主界面。
\item 新建 rtsc 配置文件。``File'' => ``New'' => ``RTSC Configuration File'':
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{rtsc3.png}
\end{figure}
\item 打开上一步新建的 rtsc 配置文件,添加 dspkit 库的 Settings 模块:
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{rtsc4.png}
\end{figure}
\item 右击工程中的 rtsc 配置文件,选择 ``Open with'' => ``XGCONF'':
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{rtsc5.png}
\end{figure}
点击右边的 ``Settings'' 出现如下界面:
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{rtsc5_2.png}
\end{figure}
选择``Basic'':
\begin{figure}[H]
\centering
\includegraphics[width=0.90\textwidth,keepaspectratio]{rtsc5_3.png}
\end{figure}
在相应的输入框中填入正确的值。
\end{enumerate}
至此,RTSC工程搭建完毕。
在 RTSC 工程要使用 dspkit 库中 inc 目录下的头文件,需要加 \texttt{vsky/libdsp/inc} 前缀。例如使用 tsc.h 需要在代码这样写:
\verb+#include <vsky/libdsp/inc/tsc.h>+ 。
\clearpage
\section{\texttt{dspkit} 库函数}
底层函数接口头文件在 inc 目录下,下面按模块分别介绍。
\subsection {\texttt{TSC} 模块 \texttt{<tsc.h>}}
可用于定时的 TSC 模块包括以下函数。
\texttt{void tsc\_init()}
初始化 TSC 模块,在基于非 RTSC 方式使用的工程中,使用 TSC 模块功能之前,需要先调用该函数。在基于 RTSC 方式使用 dspkit 库时,不需要直接调用该函数。
\texttt{void tsc\_delay(uint64\_t usecs)}
延时 usecs 微秒。
\texttt{void tsc\_delay\_cycles(uint64\_t cycles)}
延时 cycles 个时钟周期。
\texttt{uint64\_t tsc\_get\_delay(uint64\_t start)}
获取至初始化以来以微秒为单位的计时数。
\texttt{uint64\_t tsc\_get\_ticks()}
获取至初始化以来以时钟周期为单位的计时数。
\texttt{uint64\_t tsc\_microseconds()}
获取至初始化以来以毫秒为单位的计时数。
\subsection{\texttt{UART} 模块 \texttt{<uart.h>}}
UART 提供串口的功能。
\clearpage
\begin{thebibliography}{99}
\bibitem {1} 使 NDK 和 SRIO 同时工作,请参考: \\
\url{http://e2e.ti.com/support/processors/f/791/t/198711}
\end{thebibliography}
% attach source file
\embeddedfile[rename to src.zip, then extract it.]{srcobj}[src.zip.pdf]{dspkit.zip}
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End: