Mercurial > ~darius > hgwebdir.cgi > stm32temp
annotate flash.h @ 70:aaf0603d7f88
Add routine to CRC a block of flash. Use it to verify a flash block write.
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Sun, 14 Apr 2013 22:53:50 +0930 |
parents | 03592ca4d37e |
children |
rev | line source |
---|---|
31
03592ca4d37e
Port tempctrl.c from AVR. I removed the beep code as I don't have a
Daniel O'Connor <darius@dons.net.au>
parents:
27
diff
changeset
|
1 void flashcmd(int argc, char **argv); |
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); |
70
aaf0603d7f88
Add routine to CRC a block of flash. Use it to verify a flash block write.
Daniel O'Connor <darius@dons.net.au>
parents:
31
diff
changeset
|
12 int flashwriteblock(uint32_t addr, uint32_t len, void *_data); |
aaf0603d7f88
Add routine to CRC a block of flash. Use it to verify a flash block write.
Daniel O'Connor <darius@dons.net.au>
parents:
31
diff
changeset
|
13 uint32_t flashcrcblock(uint32_t addr, uint32_t len); |
25
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
14 |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
15 /* Streaming read/write */ |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
16 void flashstartread(uint32_t addr); |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
17 uint8_t flashreadbyte(void); |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
18 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
|
19 void flashwriteword(uint16_t data); |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
20 void flashstopread(void); |
a9cc07caa801
Add stream read/write commands.
Daniel O'Connor <darius@dons.net.au>
parents:
21
diff
changeset
|
21 void flashstopwrite(void); |
8
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
22 |
21
bd8e2cf04034
- Add flash erase, write & read commands (needs more work).
Daniel O'Connor <darius@dons.net.au>
parents:
8
diff
changeset
|
23 #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
|
24 #define FL_WEL (1<<1) |
8
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
25 #define FL_BP0 (1<<2) |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
26 #define FL_BP1 (1<<3) |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
27 #define FL_BP2 (1<<4) |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
28 #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
|
29 #define FL_AAI (1<<6) |
8
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
30 #define FL_BPL (1<<7) |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
31 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
32 #define FL_READ 0x03 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
33 #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
|
34 #define FL_4KERASE 0x20 |
8
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
35 #define FL_32KERASE 0x52 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
36 #define FL_64KERASE 0xd8 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
37 #define FL_CHIPERASE 0x60 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
38 #define FL_BYTEPROG 0x02 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
39 #define FL_AAIWP 0xad |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
40 #define FL_RDSR 0x05 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
41 #define FL_EWSR 0x50 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
42 #define FL_WRSR 0x01 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
43 #define FL_WREN 0x06 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
44 #define FL_WRDI 0x04 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
45 #define FL_RDID 0x90 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
46 #define FL_JEDECID 0x9f |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
47 #define FL_EBSY 0x70 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
48 #define FL_DBSY 0x80 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
49 |
58d76cf522ff
Split out code into separate files.
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
50 |