Mercurial > ~darius > hgwebdir.cgi > stm32temp
annotate flash.h @ 27:5c9d2e3d6591
Add flashread/writeblock commands which read/write a block of data to
flash with a CRC.
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Tue, 20 Nov 2012 21:54:06 +1030 |
parents | a9cc07caa801 |
children | 03592ca4d37e |
rev | line source |
---|---|
21
bd8e2cf04034
- Add flash erase, write & read commands (needs more work).
Daniel O'Connor <darius@dons.net.au>
parents:
8
diff
changeset
|
1 void flashcmd(char **, int); |
8
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
2 uint16_t flashreadid(void); |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
3 uint8_t flashreadstatus(void); |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
4 void flashwritestatus(uint8_t status); |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
5 void flashwritectl(int enable); |
21
bd8e2cf04034
- Add flash erase, write & read commands (needs more work).
Daniel O'Connor <darius@dons.net.au>
parents:
8
diff
changeset
|
6 void flash4kerase(uint32_t addr); |
bd8e2cf04034
- Add flash erase, write & read commands (needs more work).
Daniel O'Connor <darius@dons.net.au>
parents:
8
diff
changeset
|
7 uint8_t flashread(uint32_t addr); |
bd8e2cf04034
- Add flash erase, write & read commands (needs more work).
Daniel O'Connor <darius@dons.net.au>
parents:
8
diff
changeset
|
8 void flashenablewrite(void); |
bd8e2cf04034
- Add flash erase, write & read commands (needs more work).
Daniel O'Connor <darius@dons.net.au>
parents:
8
diff
changeset
|
9 void flashwrite(uint32_t addr, uint8_t data); |
25
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
10 void flashwait(void); |
27
5c9d2e3d6591
Add flashread/writeblock commands which read/write a block of data to
Daniel O'Connor <darius@dons.net.au>
parents:
25
diff
changeset
|
11 int flashreadblock(uint32_t addr, uint32_t len, void *_data); |
5c9d2e3d6591
Add flashread/writeblock commands which read/write a block of data to
Daniel O'Connor <darius@dons.net.au>
parents:
25
diff
changeset
|
12 void flashwriteblock(uint32_t addr, uint32_t len, void *_data); |
25
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
13 |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
14 /* Streaming read/write */ |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
15 void flashstartread(uint32_t addr); |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
16 uint8_t flashreadbyte(void); |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
17 void flashstartwrite(uint32_t addr, uint16_t data); |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
18 void flashwriteword(uint16_t data); |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
19 void flashstopread(void); |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
20 void flashstopwrite(void); |
8
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
21 |
21
bd8e2cf04034
- Add flash erase, write & read commands (needs more work).
Daniel O'Connor <darius@dons.net.au>
parents:
8
diff
changeset
|
22 #define FL_BUSY (1<<0) |
bd8e2cf04034
- Add flash erase, write & read commands (needs more work).
Daniel O'Connor <darius@dons.net.au>
parents:
8
diff
changeset
|
23 #define FL_WEL (1<<1) |
8
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
24 #define FL_BP0 (1<<2) |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
25 #define FL_BP1 (1<<3) |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
26 #define FL_BP2 (1<<4) |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
27 #define FL_BP3 (1<<5) |
21
bd8e2cf04034
- Add flash erase, write & read commands (needs more work).
Daniel O'Connor <darius@dons.net.au>
parents:
8
diff
changeset
|
28 #define FL_AAI (1<<6) |
8
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
29 #define FL_BPL (1<<7) |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
30 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
31 #define FL_READ 0x03 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
32 #define FL_HSREAD 0x0b |
21
bd8e2cf04034
- Add flash erase, write & read commands (needs more work).
Daniel O'Connor <darius@dons.net.au>
parents:
8
diff
changeset
|
33 #define FL_4KERASE 0x20 |
8
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
34 #define FL_32KERASE 0x52 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
35 #define FL_64KERASE 0xd8 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
36 #define FL_CHIPERASE 0x60 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
37 #define FL_BYTEPROG 0x02 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
38 #define FL_AAIWP 0xad |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
39 #define FL_RDSR 0x05 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
40 #define FL_EWSR 0x50 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
41 #define FL_WRSR 0x01 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
42 #define FL_WREN 0x06 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
43 #define FL_WRDI 0x04 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
44 #define FL_RDID 0x90 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
45 #define FL_JEDECID 0x9f |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
46 #define FL_EBSY 0x70 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
47 #define FL_DBSY 0x80 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
48 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
49 |