Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
TivaFlash.hxx
Go to the documentation of this file.
1
34#ifndef _FREERTOS_DRIVERS_TI_TIVAFLASH_HXX_
35#define _FREERTOS_DRIVERS_TI_TIVAFLASH_HXX_
36
37#include "Devtab.hxx"
38
52class TivaFlash : public Node
53{
54public:
62 const char *name, const void *ptr, size_t length, uint32_t page_size)
63 : Node(name)
64 , base_(static_cast<const uint8_t *>(ptr))
65 , len_(length)
66 , pageSize_(page_size)
67 {
68 HASSERT(!(read_address() & (page_size - 1)));
69 }
70
72 ssize_t read(File *, void *, size_t) OVERRIDE;
74 ssize_t write(File *, const void *, size_t) OVERRIDE;
75
76 void enable() OVERRIDE {}
77 void disable() OVERRIDE {}
79
80private:
82 uint32_t subpage_mask() {
83 return pageSize_ - 1;
84 }
85
87 uint32_t page_mask() {
88 return ~subpage_mask();
89 }
90
92 uint32_t write_page_mask() {
93 return ~(write_page_size()-1);
94 }
95
97 uint32_t write_page_size() {
98 return 0x80;
99 }
100
103 const uint8_t* read_pointer() {
104 return base_;
105 }
106
108 uint32_t read_address() {
109 return reinterpret_cast<uint32_t>(base_);
110 }
111
113 const uint8_t *base_;
115 size_t len_;
117 size_t pageSize_;
118};
119
120#endif // _FREERTOS_DRIVERS_TI_TIVAFLASH_HXX_
const char * name
device name
Definition Devtab.hxx:266
Node information.
Definition Devtab.hxx:549
Flash-backed file.
Definition TivaFlash.hxx:53
void disable() OVERRIDE
This will be called when reference count goes from non-zero to 0.
Definition TivaFlash.hxx:77
size_t pageSize_
Page size (how often to erase).
uint32_t write_page_mask()
Returns a bitmask with one bits to get the page address.
Definition TivaFlash.hxx:92
uint32_t read_address()
TivaFlash(const char *name, const void *ptr, size_t length, uint32_t page_size)
Constructor.
Definition TivaFlash.hxx:61
size_t len_
Number of bytes in the file.
uint32_t write_page_size()
Returns a bitmask with one bits to get the page address.
Definition TivaFlash.hxx:97
uint32_t page_mask()
Returns a bitmask with one bits to get the page address.
Definition TivaFlash.hxx:87
void enable() OVERRIDE
This will be called once when reference-count goes from 0 to positive.
Definition TivaFlash.hxx:76
uint32_t subpage_mask()
Returns a bitmask with one bits to get the within-page address.
Definition TivaFlash.hxx:82
void flush_buffers() OVERRIDE
Instructs the device driver to drop all TX and RX queues.
Definition TivaFlash.hxx:78
const uint8_t * base_
Base pointer.
ssize_t read(File *, void *, size_t) OVERRIDE
Read method.
Definition TivaFlash.cxx:40
const uint8_t * read_pointer()
ssize_t write(File *, const void *, size_t) OVERRIDE
Write method.
Definition TivaFlash.cxx:57
#define OVERRIDE
Function attribute for virtual functions declaring that this funciton is overriding a funciton that s...
Definition macros.h:180
#define HASSERT(x)
Checks that the value of expression x is true, else terminates the current process.
Definition macros.h:138
File information.
Definition Devtab.hxx:52