mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 05:29:32 +00:00
dev-manual: Updated links to SDK manual.
SDK manual title changes so the links into that manual needed updating. (From yocto-docs rev: e59d1cb22d46b00e9413deb5c7a70a14be880dc1) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
34befd259d
commit
9737e192f5
@@ -1509,8 +1509,8 @@
|
||||
You can find a complete description of the
|
||||
<filename>devtool add</filename> command in the
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-a-closer-look-at-devtool-add'>A Closer Look at <filename>devtool</filename> add</ulink>"
|
||||
section in the Yocto Project Software Development Kit
|
||||
(SDK) Developer's Guide.
|
||||
section in the Yocto Project Application Development
|
||||
and the Extensible Software Development Kit (eSDK) manual.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
@@ -3775,9 +3775,9 @@
|
||||
clean a recipe or have <filename>rm_work</filename> enabled,
|
||||
the
|
||||
<ulink url='&YOCTO_DOCS_SDK_URL;#using-devtool-in-your-sdk-workflow'><filename>devtool</filename> workflow</ulink>
|
||||
as described in the Yocto Project Software Development Kit
|
||||
(SDK) Developer's Guide is a safer development flow than the
|
||||
flow that uses Quilt.
|
||||
as described in the Yocto Project Application Development
|
||||
and the Extensible Software Development Kit (eSDK) manual
|
||||
is a safer development flow than the flow that uses Quilt.
|
||||
</note>
|
||||
</para>
|
||||
|
||||
@@ -9993,182 +9993,6 @@ Some notes from Cal:
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<!--
|
||||
<section id='platdev-gdb-remotedebug-setup'>
|
||||
<title>Set Up the Cross-Development Debugging Environment</title>
|
||||
|
||||
<para>
|
||||
Before you can initiate a remote debugging session, you need
|
||||
to be sure you have set up the cross-development environment,
|
||||
toolchain, and sysroot.
|
||||
The <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-intro'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>
|
||||
describes this process.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id="platdev-gdb-remotedebug-launch-gdbserver">
|
||||
<title>Launch gdbserver on the Target</title>
|
||||
|
||||
<para>
|
||||
Make sure gdbserver is installed on the target.
|
||||
If it is not, install the package
|
||||
<filename>gdbserver</filename>, which needs the
|
||||
<filename>libthread-db1</filename> package.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Here is an example, that when entered from the host,
|
||||
connects to the target and launches gdbserver in order to
|
||||
"debug" a binary named <filename>helloworld</filename>:
|
||||
<literallayout class='monospaced'>
|
||||
$ gdbserver localhost:2345 /usr/bin/helloworld
|
||||
</literallayout>
|
||||
gdbserver should now be listening on port 2345 for debugging
|
||||
commands coming from a remote GDB process that is running on
|
||||
the host computer.
|
||||
Communication between gdbserver and the host GDB are done
|
||||
using TCP.
|
||||
To use other communication protocols, please refer to the
|
||||
<ulink url='http://www.gnu.org/software/gdb/'>Gdbserver documentation</ulink>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id="platdev-gdb-remotedebug-launch-gdb">
|
||||
<title>Launch GDB on the Host Computer</title>
|
||||
|
||||
<para>
|
||||
Running GDB on the host computer takes a number of stages, which
|
||||
this section describes.
|
||||
</para>
|
||||
|
||||
<section id="platdev-gdb-remotedebug-launch-gdb-buildcross">
|
||||
<title>Build the Cross-GDB Package</title>
|
||||
<para>
|
||||
A suitable GDB cross-binary is required that runs on your
|
||||
host computer but also knows about the the ABI of the
|
||||
remote target.
|
||||
You can get this binary from the
|
||||
<link linkend='cross-development-toolchain'>Cross-Development Toolchain</link>.
|
||||
Here is an example where the toolchain has been installed
|
||||
in the default directory
|
||||
<filename>/opt/poky/&DISTRO;</filename>:
|
||||
<literallayout class='monospaced'>
|
||||
/opt/poky/&DISTRO;/sysroots/i686-pokysdk-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb
|
||||
</literallayout>
|
||||
where <filename>arm</filename> is the target architecture
|
||||
and <filename>linux-gnueabi</filename> is the target ABI.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Alternatively, you can use BitBake to build the
|
||||
<filename>gdb-cross</filename> binary.
|
||||
Here is an example:
|
||||
<literallayout class='monospaced'>
|
||||
$ bitbake gdb-cross
|
||||
</literallayout>
|
||||
Once the binary is built, you can find it here:
|
||||
<literallayout class='monospaced'>
|
||||
tmp/sysroots/<replaceable>host-arch</replaceable>/usr/bin/<replaceable>target-platform</replaceable>/<replaceable>target-abi</replaceable>-gdb
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id='create-the-gdb-initialization-file'>
|
||||
<title>Create the GDB Initialization File and Point to Your Root Filesystem</title>
|
||||
|
||||
<para>
|
||||
Aside from the GDB cross-binary, you also need a GDB
|
||||
initialization file in the same top directory in which
|
||||
your binary resides.
|
||||
When you start GDB on your host development system, GDB
|
||||
finds this initialization file and executes all the
|
||||
commands within.
|
||||
For information on the <filename>.gdbinit</filename>, see
|
||||
"<ulink url='http://sourceware.org/gdb/onlinedocs/gdb/'>Debugging with GDB</ulink>",
|
||||
which is maintained by
|
||||
<ulink url='http://www.sourceware.org'>sourceware.org</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You need to add a statement in the
|
||||
<filename>~/.gdbinit</filename> file that points to your
|
||||
root filesystem.
|
||||
Here is an example that points to the root filesystem for
|
||||
an ARM-based target device:
|
||||
<literallayout class='monospaced'>
|
||||
set sysroot ~/sysroot_arm
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id="platdev-gdb-remotedebug-launch-gdb-launchhost">
|
||||
<title>Launch the Host GDB</title>
|
||||
|
||||
<para>
|
||||
Before launching the host GDB, you need to be sure
|
||||
you have sourced the cross-debugging environment script,
|
||||
which if you installed the root filesystem in the default
|
||||
location is at <filename>/opt/poky/&DISTRO;</filename>
|
||||
and begins with the string "environment-setup".
|
||||
For more information, see the
|
||||
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-manual'>Yocto Project Software Development Kit (SDK) Developer's
|
||||
Guide</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Finally, switch to the directory where the binary resides
|
||||
and run the <filename>cross-gdb</filename> binary.
|
||||
Provide the binary file you are going to debug.
|
||||
For example, the following command continues with the
|
||||
example used in the previous section by loading
|
||||
the <filename>helloworld</filename> binary as well as the
|
||||
debugging information:
|
||||
<literallayout class='monospaced'>
|
||||
$ arm-poky-linux-gnuabi-gdb helloworld
|
||||
</literallayout>
|
||||
The commands in your <filename>.gdbinit</filename> execute
|
||||
and the GDB prompt appears.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id='platdev-gdb-connect-to-the-remote-gdb-server'>
|
||||
<title>Connect to the Remote GDB Server</title>
|
||||
|
||||
<para>
|
||||
From the target, you need to connect to the remote GDB
|
||||
server that is running on the host.
|
||||
You need to specify the remote host and port.
|
||||
Here is the command continuing with the example:
|
||||
<literallayout class='monospaced'>
|
||||
target remote 192.168.7.2:2345
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id="platdev-gdb-remotedebug-launch-gdb-using">
|
||||
<title>Use the Debugger</title>
|
||||
|
||||
<para>
|
||||
You can now proceed with debugging as normal - as if you were debugging
|
||||
on the local machine.
|
||||
For example, to instruct GDB to break in the "main" function and then
|
||||
continue with execution of the inferior binary use the following commands
|
||||
from within GDB:
|
||||
<literallayout class='monospaced'>
|
||||
(gdb) break main
|
||||
(gdb) continue
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
For more information about using GDB, see the project's online documentation at
|
||||
<ulink url="http://sourceware.org/gdb/download/onlinedocs/"/>.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
-->
|
||||
|
||||
<section id='debugging-with-the-gnu-project-debugger-gdb-on-the-target'>
|
||||
<title>Debugging with the GNU Project Debugger (GDB) on the Target</title>
|
||||
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
<listitem><para>
|
||||
<emphasis>Redundant Step-by-step Instructions:</emphasis>
|
||||
For example, the
|
||||
<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>
|
||||
contains detailed instructions on how to install an
|
||||
<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
|
||||
manual contains detailed instructions on how to install an
|
||||
SDK, which is used to develop applications for target
|
||||
hardware.
|
||||
</para></listitem>
|
||||
|
||||
@@ -164,7 +164,8 @@
|
||||
<trademark class='trade'>Eclipse</trademark> IDE
|
||||
and SDK development practices.
|
||||
For more information, see the
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>".
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>"
|
||||
manual.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Keep your cross-development toolchains updated.
|
||||
|
||||
@@ -29,9 +29,9 @@
|
||||
<emphasis>Install QEMU:</emphasis>
|
||||
See
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;#the-qemu-emulator'>The QEMU Emulator</ulink>"
|
||||
section in the Yocto Project Software Development Kit (SDK)
|
||||
Developer's Guide for information on how to install
|
||||
QEMU.
|
||||
section in the Yocto Project Application Development and
|
||||
the Extensible Software Development Kit (eSDK) manual
|
||||
for information on how to install QEMU.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Setting Up the Environment:</emphasis>
|
||||
@@ -85,9 +85,9 @@
|
||||
|
||||
<para>See the
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extracting-the-root-filesystem'>Extracting the Root Filesystem</ulink>"
|
||||
section in the Yocto Project Software Development Kit (SDK)
|
||||
Developer's Guide for information on how to extract a
|
||||
root filesystem.
|
||||
section in the Yocto Project Application Development and
|
||||
the Extensible Software Development Kit (eSDK) manual
|
||||
for information on how to extract a root filesystem.
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
<emphasis>Run QEMU:</emphasis>
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
<emphasis>Eclipse Development:</emphasis>
|
||||
See the
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-eclipse-project'>Developing Applications Using <trademark class='trade'>Eclipse</trademark></ulink>"
|
||||
Chapter in the Yocto Project Software Development Kit (SDK)
|
||||
Developer's Guide.
|
||||
Chapter in the Yocto Project Application Development and the
|
||||
Extensible Software Development Kit (eSDK) manual.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
@@ -131,8 +131,8 @@
|
||||
section.
|
||||
If you are going to use the Extensible SDK, see the
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>Using the Extensible SDK</ulink>"
|
||||
Chapter in the Yocto Project Software Development Kit (SDK)
|
||||
Developer's Guide.
|
||||
Chapter in the Yocto Project Application Development and the
|
||||
Extensible Software Development Kit (eSDK) manual.
|
||||
If you want to work on the kernel, see the
|
||||
<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>.
|
||||
If you are going to use Toaster, see the
|
||||
@@ -241,8 +241,8 @@
|
||||
section.
|
||||
If you are going to use the Extensible SDK container, see the
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>Using the Extensible SDK</ulink>"
|
||||
Chapter in the Yocto Project Software Development Kit (SDK)
|
||||
Developer's Guide.
|
||||
Chapter in the Yocto Project Application Development and the
|
||||
Extensible Software Development Kit (eSDK) manual.
|
||||
If you are going to use the Toaster container, see the
|
||||
"<ulink url='&YOCTO_DOCS_TOAST_URL;#toaster-manual-setup-and-use'>Setting Up and Using Toaster</ulink>"
|
||||
section in the Toaster User Manual.
|
||||
@@ -676,8 +676,8 @@
|
||||
For information on how to use
|
||||
<filename>devtool</filename> to build images, see the
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;#using-devtool-in-your-sdk-workflow'>Using <filename>devtool</filename> in Your SDK Workflow</ulink>"
|
||||
section in the Yocto Project Software Development Kit
|
||||
(SDK) Developer's Guide.
|
||||
section in the Yocto Project Application Development and
|
||||
the Extensible Software Development Kit (eSDK) manual.
|
||||
</para></listitem>
|
||||
</itemizedlist>
|
||||
</note>
|
||||
@@ -744,56 +744,6 @@
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<!--
|
||||
<section id='using-pre-built-binaries-and-qemu'>
|
||||
<title>Using Pre-Built Binaries and QEMU</title>
|
||||
|
||||
<para>
|
||||
Another option you have to get started is to use pre-built binaries.
|
||||
The Yocto Project provides many types of binaries with each release.
|
||||
See the "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
|
||||
chapter in the Yocto Project Reference Manual
|
||||
for descriptions of the types of binaries that ship with a Yocto Project
|
||||
release.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Using a pre-built binary is ideal for developing software
|
||||
applications to run on your target hardware.
|
||||
To do this, you need to be able to access the appropriate
|
||||
cross-toolchain tarball for the architecture on which you are
|
||||
developing.
|
||||
If you are using an SDK type image, the image ships with the complete
|
||||
toolchain native to the architecture (i.e. a toolchain designed to
|
||||
run on the
|
||||
<ulink url='&YOCTO_DOCS_REF_URL;#var-SDKMACHINE'><filename>SDKMACHINE</filename></ulink>).
|
||||
If you are not using an SDK type image, you need to separately download
|
||||
and install the stand-alone Yocto Project cross-toolchain tarball.
|
||||
See the
|
||||
"<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-appendix-obtain'>Obtaining the SDK</ulink>"
|
||||
appendix in the Yocto Project Software Development Kit (SDK)
|
||||
Developer's Guide for more information on locating and installing
|
||||
cross-toolchains.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Regardless of the type of image you are using, you need to download the pre-built kernel
|
||||
that you will boot in the QEMU emulator and then download and extract the target root
|
||||
filesystem for your target machine’s architecture.
|
||||
You can get architecture-specific binaries and file systems from
|
||||
<ulink url='&YOCTO_MACHINES_DL_URL;'>machines</ulink>.
|
||||
You can get installation scripts for stand-alone toolchains from
|
||||
<ulink url='&YOCTO_TOOLCHAIN_DL_URL;'>toolchains</ulink>.
|
||||
Once you have all your files, you set up the environment to emulate the hardware
|
||||
by sourcing an environment setup script.
|
||||
Finally, you start the QEMU emulator.
|
||||
You can find details on all these steps in the
|
||||
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-manual'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
|
||||
You can learn more about using QEMU with the Yocto Project in the
|
||||
"<link linkend='dev-manual-qemu'>Using the Quick EMUlator (QEMU)</link>"
|
||||
section.
|
||||
</para>
|
||||
</section>
|
||||
-->
|
||||
</chapter>
|
||||
<!--
|
||||
|
||||
Reference in New Issue
Block a user