developing.rst: stress artiq-dev setup

closes #814
This commit is contained in:
Robert Jördens 2017-08-29 16:22:57 +02:00
parent 43d551f1d8
commit c0eb2ad0b7
1 changed files with 12 additions and 8 deletions

View File

@ -3,15 +3,17 @@ Developing ARTIQ
We describe two different approaches to creating a development environment for ARTIQ. We describe two different approaches to creating a development environment for ARTIQ.
The first method uses existing pre-compiled Anaconda packages for the development environment. The first method uses existing pre-compiled Anaconda packages and the ``artiq-dev`` meta-package for the development environment.
This is fast and convenient because it avoids compiling the entire toolchain but developing individual components within the toolchain requires extra care. This is fast and convenient because it avoids compiling the entire toolchain.
Consequently, some ARTIQ developers as well as the buildbot that's used for continuous integration all employ this method to build the ``artiq`` Anaconda packages and the bitstreams.
It is completely sufficient to develop and tweak the ARTIQ code and to build It is completely sufficient to develop and tweak the ARTIQ code and to build
bitstreams. bitstreams.
Some ARTIQ developers as well as the buildbot employs this method for continuous integration to build the ``artiq`` Anaconda packages and the bitstreams.
The second method builds most components in the toolchain from their sources. But with the meta-pakage developing individual components within the toolchain requires extra care.
This takes time and and care to reproduce precisely but it gives absolute control over the components and an immediate handle at developing them. Consequently, the second method builds most components in the toolchain from their sources.
Some ARTIQ developers use this method. This takes time and care to reproduce accurately but it gives absolute control over the components and an immediate handle at developing them.
Some ARTIQ developers use this second method of building the entire toolchain
from sources.
It is only recommended for developers and advanced users. It is only recommended for developers and advanced users.
.. _develop-from-conda: .. _develop-from-conda:
@ -38,6 +40,7 @@ ARTIQ Anaconda development environment
7. :ref:`Obtain and install the JTAG SPI flash proxy bitstream <install-bscan-spi>` 7. :ref:`Obtain and install the JTAG SPI flash proxy bitstream <install-bscan-spi>`
8. :ref:`Configure OpenOCD <setup-openocd>` 8. :ref:`Configure OpenOCD <setup-openocd>`
9. :ref:`Build target binaries <build-target-binaries>` 9. :ref:`Build target binaries <build-target-binaries>`
10. :ref:`Flash target binaries <flash-target-binaries>`
.. _install-from-source: .. _install-from-source:
@ -215,14 +218,15 @@ These steps are required to generate gateware bitstream (``.bit``) files, build
.. note:: Add ``--toolchain ise`` if you wish to use ISE instead of Vivado. ISE needs a separate installation step. .. note:: Add ``--toolchain ise`` if you wish to use ISE instead of Vivado. ISE needs a separate installation step.
.. _flash-target-binaries:
* Then, gather the binaries and flash them: :: * Then, gather the binaries and flash them: ::
$ mkdir binaries $ mkdir binaries
$ cp misoc_nist_qcX_<board>/gateware/top.bit binaries $ cp misoc_nist_qcX_<board>/gateware/top.bit binaries
$ cp misoc_nist_qcX_<board>/software/bios/bios.bin binaries $ cp misoc_nist_qcX_<board>/software/bios/bios.bin binaries
$ cp misoc_nist_qcX_<board>/software/runtime/runtime.fbi binaries $ cp misoc_nist_qcX_<board>/software/runtime/runtime.fbi binaries
$ cd binaries $ artiq_flash -d binaries
$ artiq_flash -d .
* Check that the board boots by running a serial terminal program (you may need to press its FPGA reconfiguration button or power-cycle it to load the gateware bitstream that was newly written into the flash): :: * Check that the board boots by running a serial terminal program (you may need to press its FPGA reconfiguration button or power-cycle it to load the gateware bitstream that was newly written into the flash): ::