Zerocat Chipflasher  v0.4.10-182-333b622f
Flash free firmware to BIOS chips, kick the Management Engine.
doc/modules.dox File Reference

Doxygen Group Definitions. More...

Detailed Description

Code

/**
  @file

  # Code

  @verbinclude doc/modules.dox

  # “In file” Documentation

  @brief Doxygen Group Definitions

  Groups aka Modules are a nice way to create a structural overview of sources, they can
  easily be re-arranged within this one file.

**/

/**
  @defgroup FILE_PROCESSING File Processing
  @brief Objects that help to deal with ROM files.
**/

/**
  @defgroup MOTOROLA_MODULE  Motorola Module
  @ingroup FILE_PROCESSING
  @brief Objects required to deal with the “Motorola S” file format.
**/

/**
  @defgroup HEXDUMP_MODULE  Hexdump Module
  @ingroup FILE_PROCESSING
  @brief Objects required to deal with the “Hexdump” file format.
**/


/**
  @defgroup HOST_COMMUNICATION  Host Communication
  @brief Objects that help to set up communication protocols.
**/

/**
  @defgroup MODES_MAIN  Main Modes
  @ingroup HOST_COMMUNICATION
  @brief Modes used by @ref main().
**/

/**
  @defgroup SERIAL_CODES  Serial Control Codes
  @ingroup HOST_COMMUNICATION

  @brief
  One-char codes that help to build a simple protocol for
  the `kick`-`connect` communication.

  @todo Add member comments.

**/

/**
  @defgroup ERROR_CODES   Error Codes
  @ingroup HOST_COMMUNICATION
  @brief One-char error codes that help to deal with runtime and communication errors.

  These codes are used by `kick`, some are used by `connect`, and some are used by both.

  @todo Add member comments.

**/


/**
  @defgroup CHIP_SPECIFICATION  Chip Specification
  @brief Objects that help to manage chip specifications.
**/

/**
  @defgroup FLASH_BLOCK_SIZES   Flash Block And Page Sizes
  @ingroup CHIP_SPECIFICATION
  @brief Shortcuts for commonly used “power-of-two” block sizes.
**/


/**
  @defgroup ID_JEDEC  JEDEC Chip IDs
  @ingroup CHIP_SPECIFICATION
  @brief Internal chip IDs according to JEDEC standard.

  Flash chips carry an internal ID, which can be read by the flasher in order to load matching
  specifications during runtime. Unfortunately, some of these IDs according to JEDEC Standard match
  multiple chip definitions. This is the case with @ref ID_JEDEC_MX25L1605D_06E,
  @ref ID_JEDEC_MX25L3205D_06E and @ref ID_JEDEC_MX25L6405D_06E_45E, for instance.
  As a result, we should report IDs rather than chipnames (which might be wrong) in @ref menu().
  The user might then use a look-up table within the documentation to see which chipnames should
  match to the marking of the chip on his target board.

**/

/**
  @defgroup SPI_COMMAND_FLAGS   SPI Command Flags
  @ingroup CHIP_SPECIFICATION
  @brief Flag numbers that help to set and test register flags in respect to the @ref SPI_COMMAND_SET.

  A register tracks the list of activated (or cleared) commands of the @ref SPI_COMMAND_SET.
  @n Flags are set or tested by means of an n-shifted logical true:
  @n Flags are set as like `cmdset |= (1 << X03_READ)`, see @ref chipspec for instance.
  @n Flags are tested as like `cmdset & (1 << X03_READ)`, see @ref key_config() for instance.

  @note
  Take care to not exceed index 31, as the corresponding register @ref tag_chipspec.cmdset
  has 32 bits only.

**/

/**
  @defgroup SPI_COMMAND_SET   SPI Command Set
  @ingroup CHIP_SPECIFICATION
  @brief Selected SPI commands that are known to the chipflasher.
**/

/**
  @defgroup SPI_FLASH_BITS  SPI Flash Register Bits
  @ingroup CHIP_SPECIFICATION
  @brief Common Bit Names of important SPI Flash Registers.
**/


/**
  @defgroup PROPELLER Propeller Microcontroller
  @brief Objects specific to the Parallax Propeller microcontroller.

**/

/**
  @defgroup PROPELLER_PINS  Propeller Pin Usage
  @ingroup PROPELLER

  @brief
  These pins are used on the chipflasher board. Pins may be
  accessed via bitmasks over DIRA, OUTA, INA directly.

  @note
  Pins 0..8 are directly addressable, see @ref SPI_BUS_ACCESS for usage.

**/

/**
  @defgroup XCOG0_MODULE  Extra COG0 Module
  @ingroup PROPELLER
  @brief Objects that make use of extra cog #0 (i.e. cog1): Function @ref burn() and friends.
**/

/**
  @defgroup XCOG1_MODULE  Extra COG1 Module
  @ingroup PROPELLER
  @brief Objects that make use of extra cog #1 (i.e. cog2): Function @ref ledstat() and friends.
**/


/**
  @defgroup SPI_BUS   SPI Bus
  @brief Objects that help to control the SPI Bus.
**/

/**
  @defgroup SPI_BUS_POWER   SPI Bus Power
  @ingroup SPI_BUS
  @brief Objects that help to control the SPI Bus power state.
**/

/**
  @defgroup SPI_BUS_ACCESS  SPI Bus Access
  @ingroup SPI_BUS

  @brief
  Propeller Pins 0..8 are directly thus fast accessible and are
  therefore used to form the SPI bus.

  Usage of assembler code even speeds up the bus signals.
  @n Additional timing macros are defined, their names are commonly found on datasheets.
  @n The timing granularity is one @ref NOP operation.
  @n @ref PIN_HOLDn is not directly addressible, didicated assembler code is not defined.

**/


/**
  @defgroup CHIP_COMMUNICATION  Chip Communication
  @brief Objects that help to communicate with an attached SPI Flash Chip.
**/

/**
  @defgroup WIP_POLLING   WIP Polling
  @ingroup CHIP_COMMUNICATION
  @brief Objects that help to make use of chip’s @ref WIP bit.
**/

“In file” Documentation

Groups aka Modules are a nice way to create a structural overview of sources, they can easily be re-arranged within this one file.