versadac  1
versadac - Scalable Recorder Firmware
nvol_task.h
1 /*****************************************************************************
2 FILE : nvol_task.h
3 AUTHOR : Steve Robinson
4 SYSTEM : GNU C++ for ARM
5 DESCRIPTION : nvol class declarations
6 *****************************************************************************/
7 
8 #ifndef NVOL_TASK_H
9 #define NVOL_TASK_H
10 
11 #include "OSTask.h"
12 
13 typedef struct
14 {
15  CISP_t cisp;
16  uint16 offset;
17 } remap_t;
18 
19 extern "C"
20 {
21  #include "nvol_write.h"
22  STATUS nvol_load_and_validate_eeprom_values();
23  void nvol_coldstart();
24  bool nvol_is_PAdatabase_invalid();
25  bool nvol_is_nvol_section_invalid();
26  void nvol_verify_all_checksums();
27  void nvol_verify_checksums();
28  void nvol_generate_checksums();
29  void nvol_allocate_memory();
30  void nvol_features_write_pending();
31  void nvol_retrieve_features();
32  void nvol_set_invalid_cold_start_msg();
33  void nvol_database_startup_operations();
34  void nvol_process_byte_write_pending();
35  void nvol_retrieve_process_byte();
36  bool nvol_adjusting_database();
37 }
38 
39 //debug define
40 #define NVOL_TASK_DEBUG 0
41 
42 //periodic validation counter
43 #define NVOL_PERIODIC_VALIDATION_COUNT (40)
44 
45 #define MAX_LOADING_ATTEMPTS (3)
46 #define MAX_CONSECUTIVE_READ_ATTEMPTS (10)
47 
48 //database revision status
49 #define DB_LOAD_EXISTING 0
50 #define DB_ADJUST 1
51 #define DB_CSTART_INVALID 2
52 #define DB_CSTART_VIRGIN 3
53 #define DB_CSTART_STARTUP_FLAG 4
54 
55 #define DB_STARTUP_OPERATION 0xA5
56 #define DB_STARTUP_COMPLETE 0x00
57 
58 class nvol_task : public OSRunnableTask
59 {
60  public:
61 
62  nvol_task();
63  virtual ~nvol_task();
64  void runTask();
65 
66  private:
67 
68  uint8 nvol_counter;
69 
70  void next_transaction();
71 
72 };
73 
74 #endif // NVOL_TASK_H
75 
Definition: ostask.h:16
Definition: nvol_task.h:13
Definition: nvol_task.h:58