State Chart - Host (software) - mandatory

HS_PowerOn
1. Unconditional -> HS_Reset

HS_RandomOperation
1. eh.h_Reset -> HS_Reset
2. eh.h_ReadDeviceID -> HS_ReadDeviceID
3. eh.h_ReadONFIID -> HS_ReadONFIID
4. eh.h_PageProgram
  • lunSelected set to false
-> HS_PageProgram
5. eh.h_PageProgram
  • lunSelected set to true
-> HS_PageProgram
6. eh.h_BlockErase
  • lunSelected set to false
-> HS_BlockErase
7. eh.h_BlockErase
  • lunSelected set to true
-> HS_BlockErase
8. eh.h_Read
  • lunSelected set to false
-> HS_Read
9. eh.h_Read
  • lunSelected set to true
-> HS_Read
10. eh.h_MultiRead -> HS_MultiRead

HS_Reset Event: ht_ioCmd.cmdFFh
1. Unconditional -> HS_WaitForReady

HS_ReadDeviceID
  1. Event: ht_ioCmd.cmd90h
  2. Event: ht_ioAddress.false
  3. Event: ht_read
  4. Event: ht_ioDataOut.true
  5. Event: ht_read
  6. Event: ht_ioDataOut.false
1. Unconditional -> HS_WaitForReady

HS_ReadONFIID
  1. Event: ht_ioCmd.cmd90h
  2. Event: ht_ioAddress.true
  3. Event: ht_read
  4. Event: ht_ioDataOut.true
  5. Event: ht_read
  6. Event: ht_ioDataOut.false
  7. Event: ht_read
  8. Event: ht_ioDataOut.false
  9. Event: ht_read
  10. Event: ht_ioDataOut.true
1. Unconditional -> HS_WaitForReady

HS_ReadParameterPage
  1. Event: ht_ioCmd.cmdECh
  2. Event: ht_ioAddress.false
1. Unconditional -> HS_WaitForReady

HS_PageProgram
  1. Event: ht_ioCmd.cmd80h
  2. Event: ht_ioAddress.true
  3. Event: ht_ioAddress.false
  4. Event: ht_ioAddress.true
  5. Event: ht_ioAddress.false
  6. Event: ht_ioAddress.lunSelected
  7. Event: ht_ioDataIn.true
  8. Event: ht_ioCmd.cmd10h
1. Unconditional -> HS_WaitForReady

HS_BlockErase
  1. Event: ht_ioCmd.cmd60h
  2. Event: ht_ioAddress.true
  3. Event: ht_ioAddress.lunSelected
  4. Event: ht_ioCmd.cmdD0h
1. Unconditional -> HS_WaitForReady

HS_Read
  1. Event: ht_ioCmd.cmd00h
  2. Event: ht_ioAddress.true
  3. Event: ht_ioAddress.false
  4. Event: ht_ioAddress.true
  5. Event: ht_ioAddress.false
  6. Event: ht_ioAddress.lunSelected
  7. Event: ht_ioCmd.cmd30h
1. Unconditional -> HS_ReadWait

HS_ReadWait
  1. Event: ht_ioCmd.cmd70h
  2. Event: ht_read
1. ht_ioDataOut.false -> HS_ReadWait
2. ht_ioDataOut.true -> HS_ReadFinish

HS_ReadFinish
  1. Event: ht_ioCmd.cmd00h
  2. Event: ht_read
  3. Event: ht_ioDataOut.false
1. Unconditional -> HS_WaitForReady

HS_MultiRead
  1. Event: ht_ioCmd.cmd00h
  2. Event: ht_ioAddress.true
  3. Event: ht_ioAddress.false
  4. Event: ht_ioAddress.true
  5. Event: ht_ioAddress.false
  6. Event: ht_ioAddress.false
  7. Event: ht_ioCmd.cmd30h
  8. Event: ht_ioCmd.cmd00h
  9. Event: ht_ioAddress.true
  10. Event: ht_ioAddress.false
  11. Event: ht_ioAddress.true
  12. Event: ht_ioAddress.false
  13. Event: ht_ioAddress.true
  14. Event: ht_ioCmd.cmd30h
1. -> HS_MultiReadWait0
2. -> HS_MultiReadWait1

HS_MultiReadWait0
  1. Event: ht_ioCmd.cmd78h
  2. Event: ht_ioAddress.true
  3. Event: ht_ioAddress.false
  4. Event: ht_ioAddress.false
  5. Event: ht_read
1. ht_ioDataOut.false -> HS_MultiReadWait0
2. ht_ioDataOut.true
  • lun0Ready set to true
-> HS_MultiReadFinish0

HS_MultiReadFinish0
  1. Event: ht_ioCmd.cmd00h
  2. Event: ht_read
  3. Event: ht_ioDataOut.false
1. (if lun1Ready==false) -> HS_MultiReadWait1
2. (if lun1Ready==true)
  • lun0Ready set to false
  • lun1Ready set to false
-> HS_RandomOperation

HS_MultiReadWait1
  1. Event: ht_ioCmd.cmd78h
  2. Event: ht_ioAddress.true
  3. Event: ht_ioAddress.false
  4. Event: ht_ioAddress.true
  5. Event: ht_read
1. ht_ioDataOut.false -> HS_MultiReadWait1
2. ht_ioDataOut.true
  • lun1Ready set to true
-> HS_MultiReadFinish1

HS_MultiReadFinish1
  1. Event: ht_ioCmd.cmd00h
  2. Event: ht_read
  3. Event: ht_ioDataOut.false
1. (if lun0Ready==false) -> HS_MultiReadWait0
2. (if lun0Ready==true)
  • lun0Ready set to false
  • lun1Ready set to false
-> HS_RandomOperation

HS_WaitForReady
  1. Event: ht_ioCmd!cmd70h
  2. Event: ht_read
1. ht_ioDataOut.false -> HS_WaitForReady
2. ht_ioDataOut.true
  • lunSelected set to false
-> HS_RandomOperation

HS_ReadStatusEnhanced
  1. Event: ht_ioCmd!cmd78h
  2. Event: ht_ioAddress.true
  3. Event: ht_ioAddress.false
  4. Event: ht_ioAddress.lunSelected
  5. Event: ht_read
1. ht_ioDataOut.true
  • lunSelected set to false
-> HS_RandomOperation

Valid XHTML 1.0 Strict

HTML generated on 2008-08-14T16:55:08.101+01:00