docs: application: document "make flash" conventions

This is an important part of the workflow, which is missing from the
documentation.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
diff --git a/doc/application/application.rst b/doc/application/application.rst
index 6247fef..1abf331 100644
--- a/doc/application/application.rst
+++ b/doc/application/application.rst
@@ -675,18 +675,51 @@
 #. Rebuild the application normally following the steps specified
    in `Build an Application`_ above.
 
-
+.. _application_run:
 
 Run an Application
 ******************
 
-An application image can be run on real or emulated hardware. The kernel has
-built-in emulator support for QEMU. It allows you to run and test an application
-virtually, before (or in lieu of) loading and running it on actual target
-hardware.
+An application image can be run on real or emulated hardware.
 
-#. Open a terminal console and navigate to the application directory
-   :file:`~/app`.
+Most boards supported by Zephyr let you flash a compiled binary using
+the Make ``flash`` target to copy the binary to the board and run it.
+Follow these instructions to flash and run an application on real
+hardware:
+
+#. Open a terminal console on your host computer, and navigate to the
+   application directory, :file:`~/app`.
+
+#. Enter the following command to build and run the application on
+   your board, which you will usually attach via USB.
+
+   .. code-block:: console
+
+       $ make [BOARD=<type> ...] flash
+
+   The Zephyr build system integrates with the board support files to
+   use hardware-specific tools to flash the Zephyr binary to your
+   hardware, then run it.
+
+   In cases where board support is incomplete, ``make flash`` may not
+   be supported. If you receive an error message about flash support
+   being unavailable when running this command, consult :ref:`your
+   board's documentation <boards>` for additional information on how
+   to flash your board.
+
+.. note:: When developing on Linux, it's common to need to install
+          board-specific udev rules to enable USB device access to
+          your board as a non-root user. If ``make flash`` fails,
+          consult your board's documentation to see if this is
+          necessary.
+
+The kernel has built-in emulator support for QEMU. It allows you to
+run and test an application virtually, before (or in lieu of) loading
+and running it on actual target hardware. Follow these instructions to
+run an application via QEMU:
+
+#. Open a terminal console on your host computer, and navigate to the
+   application directory :file:`~/app`.
 
 #. Enter the following command to build and run the application
    using a QEMU-supported board configuration, such as qemu_cortex_m3 or