URL
https://opencores.org/ocsvn/phr/phr/trunk
Subversion Repositories phr
Compare Revisions
- This comparison shows the changes necessary to convert path
/phr/trunk/doc/informe-tesis
- from Rev 158 to Rev 160
- ↔ Reverse comparison
Rev 158 → Rev 160
/reports/schedule_2013-03-20/schedule.toc
0,0 → 1,21
\select@language {spanish} |
\contentsline {section}{\numberline {1}Introducci\IeC {\'o}n}{2} |
\contentsline {section}{\numberline {2}\textsl {Software} \ac {openocd}}{2} |
\contentsline {subsection}{\numberline {2.1}Instalaci\IeC {\'o}n del \textsl {software} \ac {openocd}}{2} |
\contentsline {subsection}{\numberline {2.2}\textsl {Interface}}{2} |
\contentsline {subsection}{\numberline {2.3}Documentaci\IeC {\'o}n de comandos y \textsl {scripts}}{3} |
\contentsline {subsection}{\numberline {2.4}Agregar un \ac {TAP}}{4} |
\contentsline {subsection}{\numberline {2.5}Multiples \ac {TAP}}{5} |
\contentsline {subsection}{\numberline {2.6}Programaci\IeC {\'o}n \ac {CPLD}}{5} |
\contentsline {subsection}{\numberline {2.7}\textsl {Debugging}}{6} |
\contentsline {section}{\numberline {3}\textsl {Software} \emph {xc3sprog}}{7} |
\contentsline {subsection}{\numberline {3.1}Instalaci\IeC {\'o}n del \textsl {software} xc3sprog}{7} |
\contentsline {subsection}{\numberline {3.2}Documentaci\IeC {\'o}n de comandos y \textsl {scripts}}{8} |
\contentsline {subsubsection}{\numberline {3.2.1}Configuraci\IeC {\'o}n del \textsl {interface}}{8} |
\contentsline {subsubsection}{\numberline {3.2.2}Dispositivos soportados}{9} |
\contentsline {subsubsection}{\numberline {3.2.3}Comandos b\IeC {\'a}sicos}{10} |
\contentsline {subsection}{\numberline {3.3}Programaci\IeC {\'o}n \ac {CPLD}}{12} |
\contentsline {subsection}{\numberline {3.4}\textsl {Debugging}}{12} |
\contentsline {section}{\numberline {4}Documentaci\IeC {\'o}n}{12} |
\contentsline {section}{\numberline {A}Acr\IeC {\'o}nimos}{13} |
\contentsline {section}{\numberline {B}Repositorio de proyecto}{13} |
/reports/schedule_2013-03-20/schedule.pdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/reports/schedule_2013-03-20/auto/schedule.el
1,10 → 1,14
(TeX-add-style-hook "schedule" |
(lambda () |
(LaTeX-add-bibitems |
"openocd-manual-autoprobing") |
(LaTeX-add-labels |
"sec:intro" |
"sec:prog-jtag" |
"sec:soft-openocd") |
"sec:soft-openocd" |
"sec:soft-xc3sprog") |
(TeX-run-style-hooks |
"fancyvrb" |
"amssymb" |
"subcaption" |
"caption" |
"fancyhdr" |
13,6 → 17,7
"balance" |
"multicol" |
"graphicx" |
"acronym" |
"babel" |
"spanish" |
"inputenc" |
/reports/schedule_2013-03-20/schedule.aux
3,61 → 3,73
\catcode`<\active |
\catcode`>\active |
\@nameuse{es@quoting} |
\citation{2012-SSE-FIUBA-NT01-00} |
\reset@newl@bel |
\select@language{spanish} |
\@writefile{toc}{\select@language{spanish}} |
\@writefile{lof}{\select@language{spanish}} |
\@writefile{lot}{\select@language{spanish}} |
\@writefile{toc}{\contentsline {section}{\numberline {1}Introducci\IeC {\'o}n}{1}} |
\newlabel{sec:intro}{{1}{1}} |
\undonewlabel{acro:openocd} |
\newlabel{acro:openocd}{{}{1}} |
\acronymused{openocd} |
\acronymused{openocd} |
\undonewlabel{acro:TAP} |
\newlabel{acro:TAP}{{}{1}} |
\acronymused{TAP} |
\acronymused{TAP} |
\undonewlabel{acro:CPLD} |
\newlabel{acro:CPLD}{{}{1}} |
\acronymused{CPLD} |
\acronymused{CPLD} |
\citation{2012-SSE-FIUBA-NT01-00} |
\undonewlabel{acro:OPENOCD} |
\acronymused{OPENOCD} |
\@writefile{toc}{\contentsline {section}{\numberline {1}Introducci\IeC {\'o}n}{2}} |
\newlabel{sec:intro}{{1}{2}} |
\undonewlabel{acro:PHR} |
\newlabel{acro:PHR}{{1}{1}} |
\newlabel{acro:PHR}{{1}{2}} |
\acronymused{PHR} |
\undonewlabel{acro:jtag} |
\newlabel{acro:jtag}{{1}{1}} |
\newlabel{acro:jtag}{{1}{2}} |
\acronymused{jtag} |
\@writefile{toc}{\contentsline {section}{\numberline {2}Programador JTAG}{1}} |
\newlabel{sec:prog-jtag}{{2}{1}} |
\undonewlabel{acro:openocd} |
\newlabel{acro:openocd}{{2}{1}} |
\acronymused{openocd} |
\@writefile{toc}{\contentsline {section}{\numberline {2}\textsl {Software} \ac {openocd}}{2}} |
\newlabel{sec:soft-openocd}{{2}{2}} |
\acronymused{openocd} |
\acronymused{openocd} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}\textsl {Software} \ac {openocd}}{1}} |
\newlabel{sec:soft-openocd}{{2.1}{1}} |
\acronymused{openocd} |
\acronymused{openocd} |
\acronymused{openocd} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}Instalaci\IeC {\'o}n del \textsl {software} \ac {openocd}}{1}} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Instalaci\IeC {\'o}n del \textsl {software} \ac {openocd}}{2}} |
\newlabel{sec:instal-openocd}{{2.1}{2}} |
\acronymused{openocd} |
\acronymused{openocd} |
\undonewlabel{acro:SO} |
\newlabel{acro:SO}{{2.1.1}{2}} |
\newlabel{acro:SO}{{2.1}{2}} |
\acronymused{SO} |
\acronymused{SO} |
\undonewlabel{acro:GPL} |
\newlabel{acro:GPL}{{2.1.1}{2}} |
\newlabel{acro:GPL}{{2.1}{2}} |
\acronymused{GPL} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.2}\textsl {Interface}}{2}} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}\textsl {Interface}}{2}} |
\acronymused{jtag} |
\acronymused{openocd} |
\acronymused{OPENOCD} |
\acronymused{openocd} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Documentaci\IeC {\'o}n de comandos y \textsl {scripts}}{2}} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Documentaci\IeC {\'o}n de comandos y \textsl {scripts}}{3}} |
\acronymused{jtag} |
\acronymused{openocd} |
\acronymused{jtag} |
\acronymused{openocd} |
\citation{openocd-manual-autoprobing} |
\acronymused{openocd} |
\acronymused{openocd} |
\acronymused{jtag} |
\acronymused{jtag} |
\citation{openocd-manual-autoprobing} |
\acronymused{TAP} |
\acronymused{OPENOCD} |
\acronymused{jtag} |
\undonewlabel{acro:TAP} |
\newlabel{acro:TAP}{{2.2.1}{3}} |
\acronymused{TAP} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}Agregar un \ac {TAP}}{3}} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Agregar un \ac {TAP}}{4}} |
\acronymused{jtag} |
\acronymused{openocd} |
\acronymused{openocd} |
64,42 → 76,65
\acronymused{openocd} |
\acronymused{TAP} |
\acronymused{TAP} |
\acronymused{OPENOCD} |
\acronymused{TAP} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2}Multiples \ac {TAP}}{4}} |
\acronymused{TAP} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Multiples \ac {TAP}}{5}} |
\acronymused{jtag} |
\undonewlabel{acro:FPGA} |
\newlabel{acro:FPGA}{{2.2.2}{4}} |
\newlabel{acro:FPGA}{{2.5}{5}} |
\acronymused{FPGA} |
\undonewlabel{acro:PROM} |
\newlabel{acro:PROM}{{2.2.2}{4}} |
\newlabel{acro:PROM}{{2.5}{5}} |
\acronymused{PROM} |
\undonewlabel{acro:CPLD} |
\newlabel{acro:CPLD}{{2.2.3}{5}} |
\acronymused{CPLD} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.3}Programaci\IeC {\'o}n \ac {CPLD}}{5}} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}Programaci\IeC {\'o}n \ac {CPLD}}{5}} |
\acronymused{CPLD} |
\undonewlabel{acro:SVF} |
\newlabel{acro:SVF}{{2.2.3}{5}} |
\newlabel{acro:SVF}{{2.6}{5}} |
\acronymused{SVF} |
\acronymused{SVF} |
\acronymused{openocd} |
\acronymused{OPENOCD} |
\acronymused{jtag} |
\acronymused{TAP} |
\acronymused{openocd} |
\bibcite{2012-SSE-FIUBA-NT01-00}{1} |
\bibcite{openocd-manual-autoprobing}{2} |
\acronymused{jtag} |
\acronymused{jtag} |
\acronymused{jtag} |
\acronymused{jtag} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}\textsl {Debugging}}{6}} |
\@writefile{toc}{\contentsline {subsection}{\numberline {2.7}\textsl {Debugging}}{6}} |
\acronymused{SO} |
\acronymused{jtag} |
\acronymused{openocd} |
\@writefile{toc}{\contentsline {section}{\numberline {3}Documentaci\IeC {\'o}n}{6}} |
\@writefile{toc}{\contentsline {section}{\numberline {3}\textsl {Software} \emph {xc3sprog}}{7}} |
\newlabel{sec:soft-xc3sprog}{{3}{7}} |
\acronymused{openocd} |
\acronymused{PHR} |
\acronymused{openocd} |
\@writefile{toc}{\contentsline {section}{\numberline {A}Acr\IeC {\'o}nimos}{8}} |
\acronymused{openocd} |
\acronymused{jtag} |
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Instalaci\IeC {\'o}n del \textsl {software} xc3sprog}{7}} |
\acronymused{SO} |
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Documentaci\IeC {\'o}n de comandos y \textsl {scripts}}{8}} |
\acronymused{openocd} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Configuraci\IeC {\'o}n del \textsl {interface}}{8}} |
\newlabel{sec:xc3sprog-cablelist}{{3.2.1}{8}} |
\acronymused{SO} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Dispositivos soportados}{9}} |
\newlabel{sec:xc3sprog-devlist}{{3.2.2}{9}} |
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.3}Comandos b\IeC {\'a}sicos}{10}} |
\newlabel{sec:xc3sprog-com-bas}{{3.2.3}{10}} |
\bibcite{2012-SSE-FIUBA-NT01-00}{1} |
\bibcite{openocd-manual-autoprobing}{2} |
\acronymused{CPLD} |
\acronymused{CPLD} |
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Programaci\IeC {\'o}n \ac {CPLD}}{12}} |
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}\textsl {Debugging}}{12}} |
\@writefile{toc}{\contentsline {section}{\numberline {4}Documentaci\IeC {\'o}n}{12}} |
\acronymused{openocd} |
\acronymused{openocd} |
\@writefile{toc}{\contentsline {section}{\numberline {A}Acr\IeC {\'o}nimos}{13}} |
\newacro{PHR}[\AC@hyperlink{PHR}{PHR}]{Plataforma de Hardware Reconfigurable} |
\newacro{openocd}[\AC@hyperlink{openocd}{OpenOCD}]{\textsl {Open On-Chip Debugger}} |
\newacro{jtag}[\AC@hyperlink{jtag}{JTAG}]{\textsl {Joint Test Action Group}} |
111,4 → 146,4
\newacro{SO}[\AC@hyperlink{SO}{SO}]{sistema operativo} |
\newacro{GPL}[\AC@hyperlink{GPL}{GPL}]{\textsl {General Public License}} |
\newacro{UTN-FRC}[\AC@hyperlink{UTN-FRC}{UTN-FRC}]{Universidad Tecnol\IeC {\'o}gica Nacional -- Facultad Regional C\IeC {\'o}rdoba} |
\@writefile{toc}{\contentsline {section}{\numberline {B}Repositorio de proyecto}{8}} |
\@writefile{toc}{\contentsline {section}{\numberline {B}Repositorio de proyecto}{13}} |
/reports/schedule_2013-03-20/schedule.tex
15,6 → 15,37
\usepackage{caption} |
\usepackage{subcaption} |
\usepackage{amssymb} |
\usepackage{fancyvrb} |
\usepackage{listings} |
\usepackage{xcolor} |
|
\definecolor{light-gray}{gray}{0.9} |
|
\lstset{ |
basicstyle=\ttfamily\footnotesize,%\scriptsize, |
backgroundcolor=\color{light-gray}, |
language=bash, |
keywordstyle=\bfseries, |
breaklines=true, |
keywords=[2]{INT8U,INT16U,DIO\_DI,DIO\_DO,CPU\_INT16S,CPU\_INT08U} |
} |
|
\lstset{literate= |
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1 |
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1 |
{à}{{\`a}}1 {è}{{\'e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1 |
{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1 |
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 |
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 |
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 |
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1 |
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1 |
{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1 |
{€}{{\EUR}}1 {£}{{\pounds}}1 {"}{{``}}1 {~}{{$\sim$}}1 |
} |
|
\renewcommand{\lstlistingname}{Código} |
|
\title{Plataforma de hardware reconfigurable \\ \small{JTAG -- Configuración OOCD-Links, (\textsl{Hardware \& Software})}} |
\author{Luis A. Guanuco} |
\date{Marzo 2013} |
33,18 → 64,18
\includegraphics[width=0.3\textwidth]{images/logov2_ES} |
\end{figure} |
|
\tableofcontents{} |
|
\section{Introducción} |
\label{sec:intro} |
|
El presente reporte desarrolla la continuación del armado, testeo de las distintas placas que conformarán la \emph{\ac{PHR}}. Además, gran parte del informe se basa en el \textsl{software} que permitirá la comunicación entre la PC y el programador \ac{jtag}. |
|
\section{Programador JTAG} |
\label{sec:prog-jtag} |
\section{\textsl{Software} \ac{openocd}} |
\label{sec:soft-openocd} |
Los \textsl{scripts} utilizados se obtuvieron del manual de usuario del \textsl{software} \ac{openocd} que se encuentra publicado en la web\footnote{http://openocd.sourceforge.net/doc/html/index.html}. |
Anteriormente al uso de \ac{openocd} se intentó utilizar el \textsl{software} UrJTAG\footnote{http://urjtag.org/} pero debido a la limitaciones que presentaba la versión estable se lo descartó. |
|
\subsection{\textsl{Software} \ac{openocd}} |
\label{sec:soft-openocd} |
La instalación y puesta en funcionamiento del \textsl{software} \ac{openocd} se realiza en tres etapas: |
\begin{itemize} |
\item Instalación del \textsl{software} \ac{openocd} |
51,14 → 82,15
\item \textsl{Interface} |
\end{itemize} |
|
\subsubsection{Instalación del \textsl{software} \ac{openocd}} |
\subsection{Instalación del \textsl{software} \ac{openocd}} |
\label{sec:instal-openocd} |
Se recomienda descargar la última versión estable de \ac{openocd} y compilarlo manualmente con los correspondientes argumentos necesarios para el \textsl{driver} a utilizar. En nuestro caso utilizaremos el \textsl{driver} libftdi\footnote{http://www.intra2net.com/en/developer/libftdi/}. Además en la documentación oficial de \ac{openocd} se hace referencia a los requerimientos para cada \ac{SO}. Como ya se mencionó en anteriormente reportes, se utilizará herramientas libres, por lo que se realizará la instalación en un \ac{SO} GNU/Linux Debian ``Squeeze'' 6.0. Como así también los drivers para el \textsl{hardware} están licenciados como \ac{GPL}. |
Un documento de referencia muy útil es la Nota Técnica \emph{Entorno de desarrollo de \textsl{firmware} sobre arquitecturas ARM Cortex-M3, basado en herramientas libres}\cite{2012-SSE-FIUBA-NT01-00}. |
|
\subsubsection{\textsl{Interface}} |
\subsection{\textsl{Interface}} |
\textsl{Interface} hace referencia al \textsl{hardware} que realiza el enlace entre el puerto \ac{jtag} del dispositivo al que se quiere acceder y la PC. En éste caso el \textsl{interface} será nuestra placa OOCD-Links. \ac{openocd} dispone de \textsl{scripts} para varios \textsl{interface} entre los cuales se encuentra nuestra placa programadora. La información que proporciona éste código hace a que tipo de driver se utilizará como así también identificación del dispositivo central. A continuación se puede ver la estructura del archivo \texttt{oocdlink.cfg}. |
|
\begin{verbatim} |
\begin{lstlisting} |
# |
# Joern Kaipf's OOCDLink |
# |
70,11 → 102,11
ft2232_layout oocdlink |
ft2232_vid_pid 0x0403 0xbaf8 |
jtag_khz 5 |
\end{verbatim} |
\end{lstlisting} |
|
Para obtener el VIP (vendor ID) y el PID (product ID) se lo puede obtener una vez conectada el \textsl{interface} a la PC y listando los dispositivos conectados al puerto USB, por ejemplo, |
|
\begin{verbatim} |
\begin{lstlisting} |
luis@luis-laptop:openocd$ lsusb |
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub |
Bus 006 Device 002: ID 0403:6010 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC |
82,7 → 114,7
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
Bus 001 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader |
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
\end{verbatim} |
\end{lstlisting} |
|
En la salida del \texttt{lsusb} se puede ver que tenemos el dispositivo \emph{0403:6001 Future Technology Device International}. Luego utilizamos éste dato para modificar o crear nuestro archivo \texttt{openocd.cfg} que será argumento de \ac{openocd}. |
|
89,7 → 121,7
\subsection{Documentación de comandos y \textsl{scripts}} |
Una vez que se logra comunicar el \textsl{interface} \ac{jtag} con el \textsl{software} \ac{openocd}, se crean los archivos necesarios para acceder a los dispositivos que se encuentren conectados en el protocolo \ac{jtag}. |
Para correr \ac{openocd} correctamente se necesita pasarle algunos simples argumentos, |
\begin{verbatim} |
\begin{lstlisting} |
luis@luis-laptop:trunk$ openocd -h |
Open On-Chip Debugger 0.6.1 (2012-12-08-02:21) |
Licensed under GNU GPL v2 |
104,7 → 136,7
--debug | -d set debug level <0-3> |
--log_output | -l redirect log output to file <name> |
--command | -c run <command> |
\end{verbatim} |
\end{lstlisting} |
|
Los más importantes de éstos son \texttt{--file}, que permite definir que archivo de configuración \ac{openocd} utilizará. Dentro de éste archivo se podría agregar cualquiera de los otros comandos. |
Es recomendable que la estructura de archivos sea la siguiente, |
120,11 → 152,11
|
A continuación se describen comandos útiles que se pueden aplicar en forma general a cualquier dispositivo a conectar. |
|
\subsubsection{Agregar un \ac{TAP}} |
\subsection{Agregar un \ac{TAP}} |
Para acceder a un dispositivo mediante el protocolo \ac{jtag}, se debe proporcionar especificaciones del mismo. Muchas veces ésta información no se encuentra fácil de acceder en la hoja de datos de los dispositivos conectados al \textsl{interface}. Para situaciones como la descrita, \ac{openocd} dispone de un modo llamado \textsl{Autoprobing}\cite{openocd-manual-autoprobing}. |
|
En definitiva, para capturar la información del dispositivo conectado se debe generar una archivo base \texttt{openocd.cfg} como el que se muestra a continuación, |
\begin{verbatim} |
\begin{lstlisting} |
# OpenOCD configuration script |
# 2013-03-25 lguanuco |
# Hardware: |
141,9 → 173,9
|
reset_config trst_and_srst |
jtag_rclk 8 |
\end{verbatim} |
\end{lstlisting} |
Luego de correr \ac{openocd}, se debe acceder al archivo de salida con el nombre que se asignó en el archivo \texttt{openocd.cfg}, \texttt{out.log}. Este archivo registra todos los mensajes de salida que genera \ac{openocd}, a continuación se muestra parte de éste archivo donde se puede observar información útil para generar el \ac{TAP} de dicho dispositivo. |
\begin{verbatim} |
\begin{lstlisting} |
... |
Debug: 129 273 core.c:323 jtag_call_event_callbacks(): jtag event: TAP reset |
Warn : 130 359 core.c:1145 jtag_examine_chain(): AUTO auto0.tap - use "jtag newtap auto0 tap -expected-id 0x4f1f0f0f ..." |
153,7 → 185,7
Debug: 134 369 core.c:1267 jtag_validate_ircapture(): auto0.tap: IR capture 0x01 |
Debug: 135 369 openocd.c:145 handle_init_command(): Examining targets... |
... |
\end{verbatim} |
\end{lstlisting} |
|
Una vez obtenida éstas lineas se puede rescatar los datos más importantes que son, |
\begin{itemize} |
164,11 → 196,11
\end{itemize} |
|
Por lo tanto, con estos datos se puede generar nuestro propio \textsl{script} en el cual agregar manualmente el \ac{TAP}, por ejemplo \texttt{lpc2124.cfg} |
\begin{verbatim} |
\begin{lstlisting} |
jtag newtap arm_lpc2124 tap -irlen 4 -ircapture 0x01 -irmask 0x3 -expected-id 0x4f1f0f0f |
\end{verbatim} |
\end{lstlisting} |
|
\subsubsection{Multiples \ac{TAP}} |
\subsection{Multiples \ac{TAP}} |
Muchas plataformas o kits de desarrollo tienen multiples TAPs. Por ejemplo, en nuestro caso tenemos conectados dos dispositivos a la cadena \ac{jtag} que son la \ac{FPGA} y la memoria \ac{PROM} de programación del mismo. Si la conexión es tal que, |
|
\begin{itemize} |
178,36 → 210,34
\end{itemize} |
|
Los comandos para agregar éstos TAPs deberán respetar él orden con el que fueron conectados físicamente, |
|
\begin{verbatim} |
\begin{lstlisting} |
... |
jtag newtap xcf01s tap -irlen ... |
jtag newtap xc3s50a tap -irlen ... |
... |
\end{verbatim} |
\end{lstlisting} |
|
Es decir, se agrega los TAPs recorriendo la cadena JTAG desde el pin TDO al pin TDI desde el interface, aquí sería desde la placa OOCDLink. |
|
\subsubsection{Programación \ac{CPLD}} |
\subsection{Programación \ac{CPLD}} |
Para los \ac{CPLD}, primero se debe tener el archivo \ac{SVF}, que es generado por la herramienta con la que se diseña y sintetiza el código VHDL o Verilog. En éste caso se utiliza el \textsl{software} ISE Xilinx. Una vez que se tiene el archivo \ac{SVF}, desde \ac{openocd}, se corre el siguiente comando; |
\begin{verbatim} |
\begin{lstlisting} |
svf -tap tap_name file.svf quiet |
\end{verbatim} |
\end{lstlisting} |
Lo que generaría una salida como la que sigue, |
\begin{verbatim} |
svf processing file: "file.svf" |
\begin{lstlisting} |
svf processing file: ``file.svf'' |
500 kHz |
... |
... |
Time used: 0m7s478ms |
svf file programmed successfully for 8468 commands |
\end{verbatim} |
\end{lstlisting} |
|
En el caso de que se tenga problemas en la transferencia del archivo, se podría probar bajando la frecuencia de la comunicación \ac{jtag}. |
|
Algo interesante se puede observar en el archivo \texttt{file.svf}, pues en una de sus lineas tiene el IDCODE del dispositivo al que se va a transferir, que debería coincidir con el que se le pasa cuando se agrega el \ac{TAP} al código de \ac{openocd}. O quizá diferenciarse con el valor hexadecimal más significativo, que indica la versión del dispositivo. |
|
\begin{verbatim} |
\begin{lstlisting} |
... |
//Loading device with 'idcode' instruction. |
SIR 8 TDI (fe) SMASK (ff) ; |
217,7 → 247,7
//Boundary Scan Chain Contents |
//Position 1: xc9572xl |
... |
\end{verbatim} |
\end{lstlisting} |
|
La placa OOCD-Links cuenta con un dispositivo central, FT2232D. Éste dispositivo posee dos alimentaciones, por una parte la alimentación de núcleo del circuito integrado y por otro lado la alimentación de los interfaces de salida. La primera alimentación es tomada desde el puerto USB al que se encuentra conectado, mientas que la alimentación de sus puertos de conexión lo toma del conector \ac{jtag}, del \emph{Pin 1}. De tal manera que la tensión de los puertos de conexión \ac{jtag} del \textsl{interface} siempre tiene la misma tensión que maneja las señales \ac{jtag} de la placa conectada. Es decir, si se hace una conexión entre la placa OOCD-Links y una placa con un CPLD XC9572XL, ambas tendrán la misma tensión en sus puertos \ac{jtag}, en éste caso 3.3V. |
|
236,12 → 266,228
|
Todos éstos comandos son utilizados a la vez. La forma de trabajo es correr \emph{terminator} y luego dividir la pantalla en varios terminales al vez, eso será útil para ingresar comandos al puerto telnet 4444 donde se puede acceder al \textsl{interface} \ac{jtag}. Los otros \textsl{software} se utilizar a modo de \textsl{debugger}, pues nos permiten resaltar mensajes que genera \ac{openocd}. Por ejemplo, una forma estándar de ver la salida es, |
|
\begin{verbatim} |
\begin{lstlisting} |
luis@luis-laptop:~$ tailf codigo/jtag/openocd/find_tap/out.log | ccze -A -o scroll |
\end{verbatim} |
\end{lstlisting} |
|
También se podría utilizar \emph{grep} para filtrar o diferenciar las líenas en función si son \emph{\textsl{Error, Warning, Debug \& User}}. |
|
|
\section{\textsl{Software} \emph{xc3sprog}} |
\label{sec:soft-xc3sprog} |
|
Si bien el \ac{openocd} se consideró como el \textsl{software} a utilizar, se encontraron algunos inconvenientes a la hora de interactuar con la placa \ac{PHR}. El problema, en principio, se debía a que el \ac{openocd} no puede manejar archivos binarios que pesaran más de 2Mb[REF]. Existe la posibilidad de modificar \ac{openocd} de forma tal que se pueda transferir datos binarios con tamaños superiores a 2Mb pero quizá genere otro tipos de errores como consecuencia. |
|
Frente al inconveniente planteado en el párrafo anterior, se busco herramientas alternativas. Mediante el contacto con otros desarrolladores/usuarios de plataformas basadas en PLDs se encontró el \textsl{software} \emph{xc3sprog}. Este programa permite con unos simples comandos programar varias FPGAs, memorias PROM y hasta microcontroladores mediante el interfaz \ac{jtag}. |
|
En una aplicación típica, xc3sprog lee un archivo \texttt{.bit} generado por la herramienta de diseño de la FPGA y programará el chip PROM de la placa que contiene la FPGA. Como su nombre lo indica, xc3sprog fue diseñado originalmente para la familia de FPGA Sparta-3 de Xilinx. Sin embargo se ha extendido el manejo a varios otros tipos de dispositivos que incluyen otras FPGAs, CPLDs, XCF flash PROMs, microprocesadores AVRs de Atmel y memorias flash SPI. El \textsl{software} xc3sprog soporta varios cables JTAG, incluyendo cables de puerto paralelo y programadores USB. |
|
|
\subsection{Instalación del \textsl{software} xc3sprog} |
|
Para obtener el xc3sprog, primero se debe descargar el código fuente desde SourceForge\footnote{http://sourceforge.net/projects/xc3sprog/}. El proceso se realizará sobre un terminal del \ac{SO} GNU/Linux que estemos utilizando. |
|
\begin{lstlisting} |
luis@luis-laptop:~$ cd ~/ |
luis@luis-laptop:~$ mkdir sourceforge |
luis@luis-laptop:~$ cd sourceforge |
luis@luis-laptop:~$ svn co https://xc3sprog.svn.sourceforge.net/svnroot/xc3sprog/trunk xc3sprog |
\end{lstlisting} |
|
Luego se debe compilare e instalar el programa |
|
\begin{lstlisting} |
luis@luis-laptop:~$ cd xc3sprog |
luis@luis-laptop:~$ cmake . |
luis@luis-laptop:~$ make |
luis@luis-laptop:~$ make install |
\end{lstlisting} |
|
En esta sección no se hace referencia al \textsl{driver} de la placa OOCDLink pues los pasos para la instalación del controlador son los mismos que se describieron en la sección \ref{sec:instal-openocd}. |
|
\subsection{Documentación de comandos y \textsl{scripts}} |
|
Al igual que el \textsl{software} \ac{openocd}, xc3sprog recibe varios argumentos en función de como se quiera interactuar con los dispositivos a programar. Para listar las opciones que se tienen, se debe correo el programa desde el directorio donde se construyó el proyecto, llamado \texttt{build}, |
|
\begin{lstlisting} |
luis@luis-laptop:~$ cd ~/sourceforge/xc3sprog/build |
luis@luis-laptop:~$ ./xc3sprog |
XC3SPROG (c) 2004-2011 xc3sprog project $Rev$ OS: Linux |
Free software: If you contribute nothing, expect nothing! |
Feedback on success/failure/enhancement requests: |
http://sourceforge.net/mail/?group_id=170565 |
Check Sourceforge for updates: |
http://sourceforge.net/projects/xc3sprog/develop |
|
usage: xc3sprog -c cable [options] <file0spec> <file1spec> ... |
List of known cables is given with -c follow by no or invalid cablename |
filespec is filename:action:offset:style:length |
action on of 'w|W|v|r|R' |
w: erase whole area, write and verify |
W: Write with auto-sector erase and verify |
v: Verify device against filename |
r: Read from device,write to file, don't overwrite existing file |
R: Read from device and write to file, overwrite existing file |
Default action is 'w' |
|
Default offset is 0 |
|
style: One of BIT|BIN|MCS|IHEX|HEX |
BIT: Xilinx .bit format |
BIN: Binary format |
MCS: Intel Hex File, LSB first |
IHEX: INTEL Hex format, MSB first (Use for Xilinx .mcs files!) |
HEX: Hex dump format |
Default for FPGA|SPI|XCF is BIT |
Default for CPLD is JED |
Default for XMEGA is IHEX |
Default length is whole device |
\end{lstlisting} |
|
xc3sprog utiliza dos archivos más que ofrecen mayor información y configuración tanto al \textsl{interface} JTAG como también sobre los dispositivos que vayamos a programar. Estos archivos se encuentran en el mismo directorio \texttt{build} donde se compiló el programa, estos son: \texttt{cablelist.txt} y \texttt{devlist.txt}. |
|
\subsubsection{Configuración del \textsl{interface}} |
\label{sec:xc3sprog-cablelist} |
|
El archivo \texttt{cablelist.txt} contiene, por cada línea, diferentes tipos de configuraciones para \textsl{interface} de programación JTAG. Si bien son varios, a continuación se listan algunos de los más reconocidos en los sistemas embebidos. |
\begin{lstlisting} |
luis@luis-laptop:build$ cat cablelist.txt |
# Alias Type OptString Max_Freq |
# OptString for ftdi: |
# VID:PID:PRODDESC:INTERFACE:DBUS_DATA:DBUS_EN:CBUS_DAT:ACBUS_EN |
# OptString for pp: |
# OptString for xps: VID:PID |
# Max_Freq == 0 mean use maximum speed of device |
# Use 1500000 for all cable connected cables and max for all on board cables |
|
ftdi ftdi 1500000 0x0403:0x6010: |
ftdiphr ftdi 6000000 0x0403:0x6010: |
papilio ftdi 6000000 0x0403:0x6010: |
ft232h ftdi 1500000 0x0403:0x6014: |
amontec ftdi 1500000 0x0403:0xcff8::1:0x00:0x10:0x00:0x00 |
olimex ftdi 1500000 0x15b1:0x0003::1:0x00:0x10:0x00:0x08 |
knob2usb ftdi 0 0x0403:0x6010:KNOB2USB:0:0x00:0x10:0x00:0x40 |
xpc xpc 0 0x03fd:0x0008 |
llbbc08 fx2 0 0xfffe:0x0018 |
pp pp 0 NULL |
dlc5 pp 0 NULL |
jtaghs1 ftdi 1500000 0x0403:0x6010:Digilent Adept USB Device:0:0x80:0x80:0x00:0x0 |
turtelizer ftdi 1500000 0x0403:0xbdc8:Turtelizer JTAG/RS232 Adapter:0:0x00:0x10:0x00:0x0 |
arm-usb-ocd-h ftdi 1500000 0x15ba:0x002b::1:0x00:0x10:0x00:0x08 |
\end{lstlisting} |
Se puede ver que el formato de este documento consiste en |
\begin{itemize} |
\item El nombre con que se define el \textsl{inteface} |
\item El \textsl{hardware} que se utiliza, es decir, si se utiliza el puerto paralelo, el usb a través de un dispositivo FTDI, etc. |
\item La frecuencia en Hertz a la que trabajará el \textsl{interface} JTAG |
\item El identificador del \textsl{hardware} según el \ac{SO} GNU/Linux. |
\end{itemize} |
Se toma como ejemplo algunas de estas configuraciones que utilice como base el dispositivo FTDI y se agrega una nueva línea con la configuración de nuestra placa OOCDLink. Es la segunda configuración disponible del archivo \texttt{cablelist.txt}, |
\begin{lstlisting} |
ftdiphr ftdi 6000000 0x0403:0x6010: |
\end{lstlisting} |
|
\subsubsection{Dispositivos soportados} |
\label{sec:xc3sprog-devlist} |
|
El archivo \texttt{devlist.txt} contiene información de los diferentes dispositivos soportados por xc3sprog. Este documento se presente a modo descriptivo pues no tenemos por que modificar ninguna de las líneas de este archivo. El programa xc3sprog utiliza este documento para obtener fundamentalmente el tamaño de algunos registros mediante la identificación del \emph{IDCODE} que proporciona todo los dispositivos JTAG cuando son escaneados. Como se podrá apreciar, se ha evitado incluir todos los dispositivos ya que son varias líneas, por lo que se utilizó los puntos $\cdots$ para acortar el documento. |
|
\begin{lstlisting} |
luis@luis-laptop:build$$ cat devlist.txt |
# IDCODE IR_len ID_Cmd Text |
... |
04001093 6 0x9 XC6SLX9 |
04002093 6 0x9 XC6SLX16 |
04004093 6 0x9 XC6SLX25 |
... |
02210093 6 0x9 XC3S50A |
02218093 6 0x9 XC3S200A |
02220093 6 0x9 XC3S400A |
02228093 6 0x9 XC3S700A |
02230093 6 0x9 XC3S1400A |
... |
05044093 8 0xfe XCF01S |
05045093 8 0xfe XCF02S |
05046093 8 0xfe XCF04S |
... |
#XC95XL |
09602093 8 0xfe XC9536XL |
09604093 8 0xfe XC9572XL |
09608093 8 0xfe XC95144XL |
09616093 8 0xfe XC95288XL |
... |
#unsupported |
#Virtex2 |
01020093 6 5 XC2V500 |
#XC95 |
09502093 8 0xfd XC9536 |
09504093 8 0xfd XC9572 |
09506093 8 0xfd XC95108 |
... |
##Atmel |
#list should not care for the version part |
0978203f 4 0x1 AT90USB |
0958103f 4 0x1 AT90CAN32 |
0968103f 4 0x1 AT90CAN64 |
0978103f 4 0x1 AT90CAN128 |
... |
#ARM 7 in ICE Mode (e.g. AT91SAM7X) |
3f0f0f0f 4 0xe ARM-ICE-MODE |
4f1f0f0f 4 0xe ARM-ICE-MODE(ARM7TDMI-S rev4) |
|
#AVR32 |
01e8203f 5 0x1 AT32AP7000 |
|
#STM |
06410041 5 0x1 STM32L1_Med_density |
... |
#ARM Debug |
3BA00477 4 0xe ARM_Cortex-M3_r1p1-01rel0 |
4BA00477 4 0xe ARM-Cortex-M4F_r0p1 |
|
#Unsure about IR_Len... |
0270817f 11 0x1 BCM2835 |
|
#Manufacturer list |
00000093 99 0 Xilinx_Unknown |
0000003f 99 0 Atmel_Unknown |
\end{lstlisting} |
|
\subsubsection{Comandos básicos} |
\label{sec:xc3sprog-com-bas} |
|
En el \textsl{usage} del xc3sprog define una estructura básica para correr comandos. El comando se debe correr desde el directorio \texttt{build} donde se ha compilado el programa. |
\begin{lstlisting} |
xc3sprog -c cable [options] <file0spec> <file1spec> ... |
\end{lstlisting} |
En este comando, lo principal es definir que \emph{cable} se utilizará de la lista que tenemos en el archivo \texttt{cablelist.txt}. Para esto, se debe indicar luego del \texttt{-c} el nombre de la lista de \textsl{interfaces}. Una vez definido el cable, se concatenan demás tareas que debe procesar el xc3sprog, pero ya teniendo referencia a que tipo de \textsl{interface} está conectado. Los tareas son, |
\begin{description} |
\item[\textbf{\texttt{-j}}] Detecta la cadena JTAG e imprime una lista de dispositivos encontrados. La numeración de la posición del dispositivo en la cadena se cuenta desde el dispositivo conectado al pin TDO del \textsl{interface}. |
\item[\textbf{\texttt{-p val}}] Define a que dispositivo de la cadena JTAG se está por acceder, donde \texttt{val} es el número que ocupa en la cadena y es visualizado por el comando \texttt{-j}. El valor por defecto de \texttt{val} es 0. |
\item[\textbf{\texttt{-T n}}] Testea la cadena JTAG \texttt{n} veces. Cuando se corre en modo ISF, se testea la conexión SPI. |
\begin{itemize} |
\item Si \texttt{n} no se específica, el valor por defecto es de 10,000 veces. |
\item Si \texttt{n = 0} se mantendrá en un testeo para siempre. |
\end{itemize} |
\item[\textbf{\texttt{-J freq}}] Ejecuta a una frecuencia específica el clock del JTAG (\texttt{freq} se encuentra en Hz). Si no se proporciona este dato, o \texttt{freq = 0}, el \textsl{interface} trabajará a la máxima frecuencia que soporte y se encuentre definido en el archivo \texttt{cablelist.txt} (véase \ref{sec:xc3sprog-cablelist}). |
\item[\textbf{\texttt{-e}}] Borra el dispositivo seleccionado por el parámetro \texttt{-p}. |
\item[\textbf{\texttt{-I file}}] Define si se trabaja en modo ISF para programar una memoria serial \textsl{flash} interna. La memoria \textsl{flash} está junta al dispositivo JTAG primario, pero no es accesible directamente mediante la cadena JTAG. El \textsl{interface} JTAG primario es usado como un \emph{proxy} para enviar datos sobre SPI a la memoria \textsl{flash}. Si se especifica el argumento \texttt{file}, se comenzará por programar el bitfile especificado en el \textsl{interface} JTAG primario (típicamente una FPGA). |
\item[\textbf{\texttt{-R}}] Envía un comando de reconfiguración al dispositivo de memoria del \textsl{hardware} utilizado (por ejemplo: XVC, XCF, XCFP para las FPGA o directamente a los dispositivos XC3S, XC6S, XC2V). |
\item[\textbf{\texttt{-m mapdir}}] Búsqueda de archivos de mapeo (XC2C) en el directorio especificado por \texttt{mapdir}. Los archivos de mapeo (\textsl{map files}) son requeridos para manejar archivos JEDEC durante la programación de los CPLDs. Si se especifica el directorio, por defecto el valor que se toma es \texttt{\$XC\_MAPDIR}. |
\item[\textbf{\texttt{-d /dev/parportN}}] Especifica el puerto paralelo a utilizar. Si no es especificado, por defecto se utiliza el valor \texttt{\$XCPORT} o \texttt{/dev/parport0}. |
\item[\textbf{\texttt{-s serialnum}}] Utiliza el puerto USB con \textsl{string} de número de serie específico. |
\item[\textbf{\texttt{-L}}] Usa el controlador \emph{libFTD2XX} en luag de \emph{libftdi} para acceder a un \textsl{interface} basados en los dispositivos FTDI. |
\item[\textbf{\texttt{-D}}] Genera los archivos \texttt{cablelist.txt} y \texttt{devlist.txt} en el directorio actual. Si ya existiesen, xc3sprog intentará generar los mismos archivos pero agregando al nombre de los archivos un número que incrementará. |
\item[\textbf{\texttt{-v}}] Habilita la salida formal detallada (\textsl{verbose}). |
\item[\textbf{\texttt{-h}}] Imprime un texto de ayuda para el programa. |
\end{description} |
|
|
\subsection{Programación \ac{CPLD}} |
|
|
\subsection{\textsl{Debugging}} |
|
\section{Documentación} |
La documentación resulta fundamental en ésta etapa del desarrollo. Si bien se quiere lograr el correcto funcionamiento de las placas, la documentación sirve para realizar correciones a las versiones futuras de cada placa. Otro objetivo es documentar el funcionamiento de cada dispositivo que sirvan al reporte final como así también a los usuarios de la \emph{Plataforma de Hardware Reconfigurable}. |
|
/reports/schedule_2013-03-20/schedule.log
1,4 → 1,4
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2013.3.7) 12 NOV 2013 22:26 |
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2013.3.7) 19 MAR 2014 14:03 |
entering extended mode |
%&-line parsing enabled. |
**schedule.tex |
412,34 → 412,93
\symAMSb=\mathgroup5 |
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' |
(Font) U/euf/m/n --> U/euf/b/n on input line 96. |
)) (./schedule.aux) |
)) |
(/usr/share/texmf-texlive/tex/latex/fancyvrb/fancyvrb.sty |
Package: fancyvrb 2008/02/07 |
|
Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix |
<2008/02/07> (tvz) |
\FV@CodeLineNo=\count106 |
\FV@InFile=\read1 |
\FV@TabBox=\box54 |
\c@FancyVerbLine=\count107 |
\FV@StepNumber=\count108 |
\FV@OutFile=\write3 |
) (/usr/share/texmf-texlive/tex/latex/listings/listings.sty |
\lst@mode=\count109 |
\lst@gtempboxa=\box55 |
\lst@token=\toks23 |
\lst@length=\count110 |
\lst@currlwidth=\dimen125 |
\lst@column=\count111 |
\lst@pos=\count112 |
\lst@lostspace=\dimen126 |
\lst@width=\dimen127 |
\lst@newlines=\count113 |
\lst@lineno=\count114 |
\lst@maxwidth=\dimen128 |
|
(/usr/share/texmf-texlive/tex/latex/listings/lstmisc.sty |
File: lstmisc.sty 2007/02/22 1.4 (Carsten Heinz) |
\c@lstnumber=\count115 |
\lst@skipnumbers=\count116 |
\lst@framebox=\box56 |
) |
(/usr/share/texmf-texlive/tex/latex/listings/listings.cfg |
File: listings.cfg 2007/02/22 1.4 listings configuration |
)) |
Package: listings 2007/02/22 1.4 (Carsten Heinz) |
|
(/usr/share/texmf/tex/latex/xcolor/xcolor.sty |
Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) |
|
(/etc/texmf/tex/latex/config/color.cfg |
File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive |
) |
Package xcolor Info: Driver file: pdftex.def on input line 225. |
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. |
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. |
Package xcolor Info: Model `RGB' extended on input line 1353. |
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. |
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. |
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. |
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. |
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. |
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. |
) |
(/usr/share/texmf-texlive/tex/latex/listings/lstlang1.sty |
File: lstlang1.sty 2004/09/05 1.3 listings language file |
) |
(/usr/share/texmf-texlive/tex/latex/listings/lstlang1.sty |
File: lstlang1.sty 2004/09/05 1.3 listings language file |
) (./schedule.aux) |
\openout1 = `schedule.aux'. |
|
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 26. |
LaTeX Font Info: ... okay on input line 26. |
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 26. |
LaTeX Font Info: ... okay on input line 26. |
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 26. |
LaTeX Font Info: ... okay on input line 26. |
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 26. |
LaTeX Font Info: ... okay on input line 26. |
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 26. |
LaTeX Font Info: ... okay on input line 26. |
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 26. |
LaTeX Font Info: ... okay on input line 26. |
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 57. |
LaTeX Font Info: ... okay on input line 57. |
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 57. |
LaTeX Font Info: ... okay on input line 57. |
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 57. |
LaTeX Font Info: ... okay on input line 57. |
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 57. |
LaTeX Font Info: ... okay on input line 57. |
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 57. |
LaTeX Font Info: ... okay on input line 57. |
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 57. |
LaTeX Font Info: ... okay on input line 57. |
|
(/usr/share/texmf-texlive/tex/context/base/supp-pdf.mkii |
[Loading MPS to PDF converter (version 2006.09.02).] |
\scratchcounter=\count106 |
\scratchdimen=\dimen125 |
\scratchbox=\box54 |
\nofMPsegments=\count107 |
\nofMParguments=\count108 |
\everyMPshowfont=\toks23 |
\MPscratchCnt=\count109 |
\MPscratchDim=\dimen126 |
\MPnumerator=\count110 |
\everyMPtoPDFconversion=\toks24 |
\scratchcounter=\count117 |
\scratchdimen=\dimen129 |
\scratchbox=\box57 |
\nofMPsegments=\count118 |
\nofMParguments=\count119 |
\everyMPshowfont=\toks24 |
\MPscratchCnt=\count120 |
\MPscratchDim=\dimen130 |
\MPnumerator=\count121 |
\everyMPtoPDFconversion=\toks25 |
) |
*geometry auto-detecting driver* |
*geometry detected driver: pdftex* |
483,12 → 542,14
(1in=72.27pt, 1cm=28.45pt) |
----------------------- |
Package caption Info: Begin \AtBeginDocument code. |
Package caption Info: listings package is loaded. |
Package caption Info: End \AtBeginDocument code. |
LaTeX Font Info: Try loading font information for U+msa on input line 28. |
\c@lstlisting=\count122 |
LaTeX Font Info: Try loading font information for U+msa on input line 59. |
(/usr/share/texmf-texlive/tex/latex/amsfonts/umsa.fd |
File: umsa.fd 2009/06/22 v3.00 AMS symbols A |
) |
LaTeX Font Info: Try loading font information for U+msb on input line 28. |
LaTeX Font Info: Try loading font information for U+msb on input line 59. |
|
(/usr/share/texmf-texlive/tex/latex/amsfonts/umsb.fd |
File: umsb.fd 2009/06/22 v3.00 AMS symbols B |
499,32 → 560,40
<images/logov2_ES.pdf, id=1, 110.011pt x 34.529pt> |
File: images/logov2_ES.pdf Graphic file (type pdf) |
<use images/logov2_ES.pdf> |
(./schedule.toc |
Package acronym Info: Label `acro:openocd' newly defined as it shall be overrid |
den |
although it is yet undefined on input line 3. |
Package acronym Info: Label `acro:TAP' newly defined as it shall be overridden |
although it is yet undefined on input line 7. |
Package acronym Info: Label `acro:CPLD' newly defined as it shall be overridden |
|
although it is yet undefined on input line 9. |
) |
\tf@toc=\write4 |
\openout4 = `schedule.toc'. |
|
Package acronym Info: Label `acro:PHR' newly defined as it shall be overridden |
although it is yet undefined on input line 39. |
although it is yet undefined on input line 72. |
Package acronym Info: Label `acro:jtag' newly defined as it shall be overridden |
|
although it is yet undefined on input line 39. |
Package acronym Info: Label `acro:openocd' newly defined as it shall be overrid |
den |
although it is yet undefined on input line 43. |
although it is yet undefined on input line 72. |
[1 |
|
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./images/logov2_ES.pdf>] |
Package acronym Info: Label `acro:SO' newly defined as it shall be overridden |
although it is yet undefined on input line 55. |
although it is yet undefined on input line 87. |
Package acronym Info: Label `acro:GPL' newly defined as it shall be overridden |
although it is yet undefined on input line 55. |
although it is yet undefined on input line 87. |
Package acronym Info: Label `acro:OPENOCD' newly defined as it shall be overrid |
den |
although it is yet undefined on input line 103. |
|
[1 |
|
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./images/logov2_ES.pdf>] |
Overfull \hbox (179.60985pt too wide) in paragraph at lines 85--85 |
[]\OT1/cmtt/m/n/10.95 Bus 006 Device 002: ID 0403:6010 Future Technology Device |
s International, Ltd FT232 USB-Serial (UART) IC[] |
[] |
Package acronym Warning: Acronym `OPENOCD' is not defined on input line 103. |
|
|
Overfull \hbox (70.38478pt too wide) in paragraph at lines 85--85 |
[]\OT1/cmtt/m/n/10.95 Bus 001 Device 002: ID 0bda:0158 Realtek Semiconductor Co |
rp. USB 2.0 multicard reader[] |
[] |
Package acronym Warning: Acronym `OPENOCD' is not defined on input line 103. |
|
|
Package Fancyhdr Warning: \headheight is too small (12.0pt): |
533,104 → 602,69
This may cause the page layout to be inconsistent, however. |
|
[2] |
Package acronym Info: Label `acro:TAP' newly defined as it shall be overridden |
although it is yet undefined on input line 123. |
[3] |
Overfull \hbox (18.64659pt too wide) in paragraph at lines 156--156 |
[]\OT1/cmtt/m/n/10.95 Debug: 129 273 core.c:323 jtag_call_event_callbacks(): jt |
ag event: TAP reset[] |
[] |
LaTeX Font Info: Font shape `OT1/cmtt/bx/n' in size <9> not available |
(Font) Font shape `OT1/cmtt/m/n' tried instead on input line 128. |
|
|
Overfull \hbox (277.33754pt too wide) in paragraph at lines 156--156 |
[]\OT1/cmtt/m/n/10.95 Warn : 130 359 core.c:1145 jtag_examine_chain(): AUTO aut |
o0.tap - use "jtag newtap auto0 tap -expected-id 0x4f1f0f0f ..."[] |
[] |
Package acronym Warning: Acronym `OPENOCD' is not defined on input line 150. |
|
[3] |
|
Overfull \hbox (248.5941pt too wide) in paragraph at lines 156--156 |
[]\OT1/cmtt/m/n/10.95 Debug: 131 359 core.c:1323 jtag_tap_init(): Created Tap: |
auto0.tap @ abs position 0, irlen 0, capture: 0x1 mask: 0x3[] |
[] |
Package acronym Warning: Acronym `OPENOCD' is not defined on input line 194. |
|
|
Overfull \hbox (41.64134pt too wide) in paragraph at lines 156--156 |
[]\OT1/cmtt/m/n/10.95 Debug: 132 359 core.c:1208 jtag_validate_ircapture(): IR |
capture validation scan[] |
[] |
|
|
Overfull \hbox (93.37953pt too wide) in paragraph at lines 156--156 |
[]\OT1/cmtt/m/n/10.95 Warn : 133 369 core.c:1244 jtag_validate_ircapture(): AUT |
O auto0.tap - use "... -irlen 4"[] |
[] |
|
|
Overfull \hbox (41.64134pt too wide) in paragraph at lines 156--156 |
[]\OT1/cmtt/m/n/10.95 Debug: 134 369 core.c:1267 jtag_validate_ircapture(): aut |
o0.tap: IR capture 0x01[] |
[] |
|
|
Overfull \hbox (87.63084pt too wide) in paragraph at lines 169--169 |
[]\OT1/cmtt/m/n/10.95 jtag newtap arm_lpc2124 tap -irlen 4 -ircapture 0x01 -irm |
ask 0x3 -expected-id 0x4f1f0f0f[] |
[] |
|
[4] |
Package acronym Info: Label `acro:FPGA' newly defined as it shall be overridden |
|
although it is yet undefined on input line 172. |
although it is yet undefined on input line 204. |
Package acronym Info: Label `acro:PROM' newly defined as it shall be overridden |
|
although it is yet undefined on input line 172. |
[4] |
Package acronym Info: Label `acro:CPLD' newly defined as it shall be overridden |
|
although it is yet undefined on input line 191. |
although it is yet undefined on input line 204. |
Package acronym Info: Label `acro:SVF' newly defined as it shall be overridden |
although it is yet undefined on input line 192. |
[5] |
Overfull \hbox (58.8874pt too wide) in paragraph at lines 241--241 |
[]\OT1/cmtt/m/n/10.95 luis@luis-laptop:~$ tailf codigo/jtag/openocd/find_tap/o |
ut.log | ccze -A -o scroll[] |
[] |
although it is yet undefined on input line 223. |
|
|
Package Fancyhdr Warning: \headheight is too small (13.59999pt): |
Make it at least 14.4521pt. |
We now make it that large for the rest of the document. |
This may cause the page layout to be inconsistent, however. |
Package acronym Warning: Acronym `OPENOCD' is not defined on input line 240. |
|
[6] [7] |
Overfull \hbox (8.15585pt too wide) in paragraph at lines 274--276 |
[5] |
|
Package acronym Warning: Acronym `OPENOCD' is not defined on input line 273. |
|
[6] [7] [8] [9] [10] |
LaTeX Font Info: Font shape `OT1/cmtt/bx/n' in size <10.95> not available |
(Font) Font shape `OT1/cmtt/m/n' tried instead on input line 465. |
[11] [12] |
Overfull \hbox (8.15585pt too wide) in paragraph at lines 520--522 |
\OT1/cmr/m/n/10.95 ac-ce-der a los re-po-si-to-rios me-dian-te el si-guien-te l |
ink, \OT1/cmtt/m/n/10.95 http://opencores.org/project,phr |
[] |
|
[8] (./schedule.aux) ) |
[13] (./schedule.aux) ) |
Here is how much of TeX's memory you used: |
3965 strings out of 494999 |
53994 string characters out of 1180817 |
126955 words of memory out of 3000000 |
7099 multiletter control sequences out of 15000+50000 |
15480 words of font info for 58 fonts, out of 3000000 for 9000 |
6972 strings out of 494999 |
92193 string characters out of 1180817 |
312779 words of memory out of 3000000 |
10072 multiletter control sequences out of 15000+50000 |
16892 words of font info for 63 fonts, out of 3000000 for 9000 |
54 hyphenation exceptions out of 8191 |
36i,11n,43p,829b,481s stack positions out of 5000i,500n,10000p,200000b,50000s |
</usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/ |
cmbx10.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbx12.pfb> |
</usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbxsl10.pfb></usr/sha |
re/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texmf-tex |
live/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texmf-texlive/fonts/t |
ype1/public/amsfonts/cm/cmr17.pfb></usr/share/texmf-texlive/fonts/type1/public/ |
amsfonts/cm/cmr6.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/c |
mr8.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr9.pfb></usr |
/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb></usr/share/texm |
f-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texmf-texlive/f |
onts/type1/public/amsfonts/cm/cmti10.pfb></usr/share/texmf-texlive/fonts/type1/ |
public/amsfonts/cm/cmtt10.pfb> |
Output written on schedule.pdf (8 pages, 208596 bytes). |
37i,13n,49p,829b,2026s stack positions out of 5000i,500n,10000p,200000b,50000s |
</usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm |
/cmbx10.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbx12.pfb |
></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbxsl10.pfb></usr/sh |
are/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbxti10.pfb></usr/share/texmf |
-texlive/fonts/type1/public/amsfonts/cm/cmitt10.pfb></usr/share/texmf-texlive/f |
onts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texmf-texlive/fonts/type1/p |
ublic/amsfonts/cm/cmr12.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfon |
ts/cm/cmr17.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr6.p |
fb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/shar |
e/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr9.pfb></usr/share/texmf-texli |
ve/fonts/type1/public/amsfonts/cm/cmsl10.pfb></usr/share/texmf-texlive/fonts/ty |
pe1/public/amsfonts/cm/cmsy10.pfb></usr/share/texmf-texlive/fonts/type1/public/ |
amsfonts/cm/cmsy9.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/ |
cmti10.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmtt10.pfb> |
</usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmtt9.pfb> |
Output written on schedule.pdf (13 pages, 282905 bytes). |
PDF statistics: |
84 PDF objects out of 1000 (max. 8388607) |
116 PDF objects out of 1000 (max. 8388607) |
0 named destinations out of 1000 (max. 500000) |
6 words of extra memory for PDF output out of 10000 (max. 10000000) |
|
/reports/schedule_2013-03-20/Makefile
1,6 → 1,12
schedule.pdf: schedule.tex |
pdflatex $^ |
pdflatex $^ |
|
show: |
pdflatex schedule.tex |
pdflatex schedule.tex |
evince schedule.pdf & |
|
clean: |
rm schedule.pdf |
rm schedule.log |