12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- /**
- * @defgroup HAL_FLASH Generic NOR Flash Interface
- * @brief HAL Generic NOR Flash Driver Interface.
- *
- * @section flash_1 Driver State Machine
- * The flash driver implements a state machine internally, not all the driver
- * functionalities can be used in any moment, any transition not explicitly
- * shown in the following diagram has to be considered an error and shall
- * be captured by an assertion (if enabled).
- * @dot
- digraph example {
- rankdir="LR";
- node [shape=circle, fontname=Helvetica, fontsize=8, fixedsize="true", width="0.9", height="0.9"];
- edge [fontname=Helvetica, fontsize=8];
- stop [label="FLS_STOP\nLow Power"];
- uninit [label="FLS_UNINIT", style="bold"];
- ready [label="FLS_READY\nClock Enabled"];
- read [label="FLS_READ\nReading"];
- pgm [label="FLS_PGM\nProgramming"];
- erase [label="FLS_ERASE\nErasing"];
- uninit -> stop [label=" xxxInit()", constraint=false];
- stop -> stop [label=" xxxStop()"];
- stop -> ready [label=" xxxStart()"];
- ready -> stop [label=" xStop()"];
- ready -> read [label=" flashRead()\nflashVerifyErase()"];
- read -> ready [label=" return"];
- ready -> pgm [label=" flashProgram()"];
- pgm -> ready [label=" return"];
- ready -> erase [label=" \n\nflashEraseAll()\nflashEraseSector()"];
- erase -> ready [label=" flashQueryErase()\nFLASH_NO_ERROR\nFLASH_ERROR_*"];
- erase -> erase [label=" flashQueryErase()\nflashProgram()\nflashRead()\nFLASH_BUSY_ERASING"];
- }
- * @enddot
- *
- * @ingroup HAL_ABSTRACT_PERIPHERALS
- */
|