Tools: rename OFFBOARD_GUIDED to AP_PLANE_OFFBOARD_GUIDED_SLEW_ENABLED
[ardupilot.git] / libraries / AP_Logger / AP_Logger_Flash_JEDEC.h
blob1a85e51575e4e5330faf3ca4d3ce8917043d5afa
1 /*
2 logging for block based dataflash devices on SPI
3 */
4 #pragma once
6 #include <AP_HAL/AP_HAL.h>
8 #include "AP_Logger_Block.h"
10 #if HAL_LOGGING_FLASH_JEDEC_ENABLED
12 class AP_Logger_Flash_JEDEC : public AP_Logger_Block {
13 public:
14 AP_Logger_Flash_JEDEC(AP_Logger &front, LoggerMessageWriter_DFLogStart *writer) :
15 AP_Logger_Block(front, writer) {}
16 static AP_Logger_Backend *probe(AP_Logger &front,
17 LoggerMessageWriter_DFLogStart *ls) {
18 return NEW_NOTHROW AP_Logger_Flash_JEDEC(front, ls);
20 void Init(void) override;
21 bool CardInserted() const override { return !flash_died && df_NumPages > 0; }
23 private:
24 void BufferToPage(uint32_t PageAdr) override;
25 void PageToBuffer(uint32_t PageAdr) override;
26 void SectorErase(uint32_t SectorAdr) override;
27 void Sector4kErase(uint32_t SectorAdr) override;
28 void StartErase() override;
29 bool InErase() override;
30 void send_command_addr(uint8_t cmd, uint32_t address);
31 void WaitReady();
32 bool Busy();
33 uint8_t ReadStatusReg();
34 void Enter4ByteAddressMode(void);
36 void WriteEnable();
37 bool getSectorCount(void);
39 AP_HAL::OwnPtr<AP_HAL::SPIDevice> dev;
40 AP_HAL::Semaphore *dev_sem;
42 bool flash_died;
43 uint32_t erase_start_ms;
44 uint8_t erase_cmd;
45 bool use_32bit_address;
46 bool read_cache_valid;
49 #endif // HAL_LOGGING_FLASH_JEDEC_ENABLED