2014-03-07 09:23 AM
Hi. I'm writing a pc tool for flashing STM32F407 using USART. I got familiar with AN2606 (bootloader) and AN3155 (USART protocol). One thing I don't know is the BIN file specification. Can I just write to STM32 the content of BIN file? Or maybe is there any other data except program code in it? Anybody can help me?
#flashing-stm32 #bin-file2014-03-07 09:30 AM
Normally a bin file is just raw data you write to flash as is. There is no addressing or other info in the file, just binary program data. So nice and easy for your program to write using the ST bootloader.
2014-03-07 09:38 AM
Thanks for the reply.
When I use Flash Loader Demo, then I choose an option concerning erasing: ''erase only necessary pages'', so I thought there is some other information in BIN file like memory address.2014-03-07 09:45 AM
Hi
''BIN'' is short for binary. As Trevor says - it is just the raw binary (assembler op codes). ''When I use Flash Loader Demo, then I choose an option concerning erasing: ''erase only necessary pages'', so I thought there is some other information in BIN file like memory address.'' I bet the Erase will not work is there is no file loaded - it must be measuring the size of the raw binary and erasing the number of flash Sectors to match.2014-03-07 11:43 AM
''it is just the raw binary (assembler op codes)''
No, raw binary is not assembler opcodes!Raw binary is the machine instructions - and a BIN file will also contain some data...2014-03-07 11:54 AM
Can you give me more details about BIN file? What kind of data? Do you know BIN specification?
2014-03-07 12:05 PM
It's a collection of 8-bit bytes, nothing magic, it doesn't have a ''definition''. You have to specify the address the data resides at, it's not in the file. The size can be inferred from the file system.
Can you use standard io functions? fopen? f = fopen(''some.bin'', ''rb''); Want to examine the content, get a file viewer or hex editor type application.2014-03-07 12:12 PM
Hello World type app .BIN dumped out
[Offset] [ Binary Data in File ] [ASCII equivalent]
00000000 : 18 04 00 20 9D 01 00 08 - 03 03 00 08 FF 02 00 08 ... ............
00000010 : 01 03 00 08 F5 01 00 08 - 1D 06 00 08 00 00 00 00 ................
00000020 : 00 00 00 00 00 00 00 00 - 00 00 00 00 E9 03 00 08 ................
00000030 : F7 01 00 08 00 00 00 00 - 09 03 00 08 AD 04 00 08 ................
00000040 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000050 : C3 01 00 08 C3 01 00 08 - F9 01 00 08 C3 01 00 08 ................
00000060 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000070 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000080 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000090 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
000000A0 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
000000B0 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
000000C0 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
000000D0 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
000000E0 : C3 01 00 08 C3 01 00 08 - 07 03 00 08 C3 01 00 08 ................
000000F0 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000100 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000110 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000120 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000130 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000140 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 05 03 00 08 ................
00000150 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000160 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000170 : C3 01 00 08 C3 01 00 08 - C3 01 00 08 C3 01 00 08 ................
00000180 : C3 01 00 08 C3 01 00 08 - DF F8 0C D0 00 F0 20 F8 .............. .
00000190 : 00 48 00 47 95 06 00 08 - 18 04 00 20 09 48 01 68 .H.G....... .H.h
000001A0 : 41 F4 70 01 01 60 08 48 - 80 47 08 48 00 47 00 00 A.p..`.H.G.H.G..
000001B0 : FE E7 FE E7 FE E7 FE E7 - FE E7 FE E7 FE E7 FE E7 ................
000001C0 : FE E7 FE E7 88 ED 00 E0 - B1 04 00 08 89 01 00 08 ................
000001D0 : 06 4C 07 4D 06 E0 E0 68 - 40 F0 01 03 94 E8 07 00 .L.M...h@.......
000001E0 : 98 47 10 34 AC 42 F6 D3 - FF F7 D2 FF B8 06 00 08 .G.4.B..........
000001F0 : D8 06 00 08 FE E7 70 47 - 70 47 00 00 1C B5 4F F4 ......pGpG....O.
00000200 : C0 60 00 90 02 20 8D F8 - 04 00 00 21 8D F8 06 10 .`... .....!....
00000210 : 8D F8 07 10 08 4C 8D F8 - 05 00 69 46 20 46 00 F0 .....L....iF F..
00000220 : 0D F8 07 22 09 21 20 46 - 00 F0 59 F8 07 22 0A 21 ...''.! F..Y..''.!
00000230 : 20 46 00 F0 54 F8 1C BD - 00 00 02 40 F0 B5 00 23 F..T......@...#
00000240 : 01 24 03 27 0D 68 04 FA - 03 F2 15 40 95 42 42 D1 .$.'.h.....@.BB.
00000250 : D0 F8 00 C0 5E 00 07 FA - 06 F5 2C EA 05 0C C0 F8 ....^.....,.....
00000260 : 00 C0 91 F8 04 C0 D0 F8 - 00 E0 0C FA 06 FC 4C EA ..............L.
00000270 : 0E 0C C0 F8 00 C0 91 F8 - 04 C0 BC F1 01 0F 02 D0 ................
00000280 : BC F1 02 0F 1F D1 D0 F8 - 08 C0 2C EA 05 0C C0 F8 ..........,.....
00000290 : 08 C0 91 F8 05 C0 D0 F8 - 08 E0 0C FA 06 FC 4C EA ..............L.
000002A0 : 0E 0C C0 F8 08 C0 D0 F8 - 04 C0 2C EA 02 0C C0 F8 ..........,.....
000002B0 : 04 C0 42 68 91 F8 06 C0 - 0C FA 03 FC 1F FA 8C FC ..Bh............
000002C0 : 42 EA 0C 02 42 60 C2 68 - AA 43 C2 60 CA 79 C5 68 B...B`.h.C.`.y.h
000002D0 : B2 40 2A 43 C2 60 5B 1C - 10 2B B3 D3 F0 BD 4B 07 .@*C.`[..+....K.
000002E0 : DB 0E 9A 40 C9 08 10 B5 - 00 EB 81 00 01 6A 0F 24 ...@.........j.$
000002F0 : 9C 40 A1 43 01 62 01 6A - 11 43 01 62 10 BD FE E7 .@.C.b.j.C.b....
00000300 : FE E7 70 47 70 47 70 47 - 70 47 00 00 04 4A 00 29 ..pGpGpGpG...J.)
00000310 : 11 68 01 D0 01 43 00 E0 - 81 43 11 60 70 47 00 00 .h...C...C.`pG..
00000320 : 30 38 02 40 04 4A 00 29 - 11 68 01 D0 01 43 00 E0 @.J.).h...C..
00000330 : 81 43 11 60 70 47 00 00 - 44 38 02 40 10 B5 01 21 .C.`pG..D8.@...!
00000340 : 10 20 FF F7 EF FF 01 21 - BD E8 10 40 08 46 FF F7 . .....!...@.F..
00000350 : DD BF 00 00 70 B5 21 4A - 11 68 21 4B 11 F0 0C 01 ....p.!J.h!K....
00000360 : 04 D0 5D 10 04 29 03 D0 - 08 29 03 D0 03 60 1B E0 ..]..)...)...`..
00000370 : 05 60 19 E0 19 49 09 1F - 0C 68 C4 F3 80 56 0C 68 .`...I...h...V.h
00000380 : 04 F0 3F 04 16 B1 B5 FB - F4 F3 01 E0 B3 FB F4 F3 ..?.............
00000390 : 0C 68 09 68 C4 F3 88 14 - 63 43 C1 F3 01 41 49 1C .h.h....cC...AI.
000003A0 : 49 00 B3 FB F1 F1 01 60 - 11 68 0E 4B 01 F0 F0 01 I......`.h.K....
000003B0 : 09 09 5C 5C 01 68 E1 40 - 41 60 14 68 04 F4 E0 54 ..\\.h.@A`.h...T
000003C0 : A4 0A 1C 5D 21 FA 04 F4 - 84 60 12 68 02 F4 60 42 ...]!....`.h..`B
000003D0 : 52 0B 9A 5C D1 40 C1 60 - 70 BD 00 00 08 38 02 40 R..\.@.`p....8.@
000003E0 : 00 24 F4 00 04 00 00 20 - 70 47 00 00 29 48 00 21 .$..... pG..)H.!
000003F0 : 02 68 42 F4 80 32 02 60 - 4F F4 A0 63 02 68 01 F1 .hB..2.`O..c.h..
00000400 : 01 01 12 F4 00 3F 01 D1 - 99 42 F7 D1 01 68 8A 03 .....?...B...h..
00000410 : 21 49 2F D5 20 4A 38 32 - 13 68 43 F0 80 53 13 60 !I/. JhC..S.`
00000420 : 1E 4A 13 68 43 F4 80 43 - 13 60 0A 68 0A 60 0A 68 .J.hC..C.`.h.`.h
00000430 : 42 F4 00 42 0A 60 0A 68 - 42 F4 A0 52 0A 60 0B 1F B..B.`.hB..R.`..
00000440 : 17 4A 1A 60 02 68 42 F0 - 80 72 02 60 02 68 92 01 .J.`.hB..r.`.h..
00000450 : FC D5 14 4B 40 F2 05 62 - 1A 60 0A 68 22 F0 03 02 ...K@..b.`.h''...
00000460 : 0A 60 0A 68 42 F0 02 02 - 0A 60 0A 68 C2 F3 81 02 .`.hB....`.h....
00000470 : 02 2A FA D1 0A 68 22 F4 - 00 02 0A 60 06 4A 0A 49 .*...h''....`.J.I
00000480 : 7C 32 11 60 01 68 41 F0 - 80 61 01 60 01 68 09 01 |2.`.hA..a.`.h..
00000490 : FC D5 70 47 00 38 02 40 - 08 38 02 40 00 70 00 40 ..pG.8.@.8.@.p.@
000004A0 : 08 54 40 07 00 3C 02 40 - 00 30 00 50 70 47 00 00 .T@..<.@.0.PpG..
000004B0 : 0F 48 10 B5 01 68 41 F0 - 01 01 01 60 0C 4A 00 21 .H...hA....`.J.!
000004C0 : 08 32 11 60 02 68 0B 4B - 1A 40 02 60 03 1D 0A 4A .2.`.h.K.@.`...J
000004D0 : 1A 60 02 68 22 F4 80 22 - 02 60 05 48 0C 30 01 60 .`.h''..''.`.H.0.`
000004E0 : FF F7 84 FF 05 49 4F F0 - 00 60 08 60 10 BD 00 00 .....IO..`.`....
000004F0 : 00 38 02 40 FF FF F6 FE - 10 30 00 24 08 ED 00 E0 .8.@.....0.$....
00000500 : 1F B5 4F F4 16 50 00 90 - 00 20 AD F8 04 00 AD F8 ..O..P... ......
00000510 : 06 00 AD F8 08 00 AD F8 - 0C 00 0C 20 05 4C AD F8 ........... .L..
00000520 : 0A 00 69 46 20 46 00 F0 - 19 F8 01 21 20 46 00 F0 ..iF F.....! F..
00000530 : 03 F8 1F BD 00 10 01 40 - 00 29 81 89 02 D0 41 F4 .......@.)....A.
00000540 : 00 51 01 E0 21 F4 00 51 - 81 81 70 47 02 46 00 20 .Q..!..Q..pG.F.
00000550 : 12 88 0A 42 00 D0 01 20 - 70 47 00 00 7F B5 04 46 ...B... pG.....F
00000560 : 00 8A 0D 46 20 F4 40 51 - E8 88 08 43 20 82 A0 89 ...F .@Q...C ...
00000570 : 41 F2 0C 61 88 43 A9 88 - 2A 89 11 43 6A 89 02 43 A..a.C..*..Cj..C
00000580 : 11 43 A1 81 A0 8A 20 F4 - 40 71 A8 89 08 43 A0 82 .C.... .@q...C..
00000590 : 68 46 FF F7 DF FE 1D 48 - 84 42 02 D0 1C 48 84 42 hF.....H.B...H.B
000005A0 : 01 D1 03 98 00 E0 02 98 - A1 89 09 04 00 29 00 EB .............)..
000005B0 : C0 01 01 EB 00 10 29 68 - 02 DA 4F EA 41 01 01 E0 ......)h..O.A...
000005C0 : 4F EA 81 01 B0 FB F1 F2 - 64 20 B2 FB F0 F1 4F EA O.......d ....O.
000005D0 : 01 11 4F EA 11 13 6F F0 - 18 05 6B 43 02 EB 83 02 ..O...o...kC....
000005E0 : A3 89 1D 04 4F F0 32 03 - 06 D5 03 EB C2 02 B2 FB ....O.2.........
000005F0 : F0 F0 00 F0 07 00 05 E0 - 03 EB 02 12 B2 FB F0 F0 ................
00000600 : 00 F0 0F 00 08 43 20 81 - 7F BD 00 00 00 10 01 40 .....C ........@
00000610 : 00 14 01 40 C1 F3 08 01 - 81 80 70 47 FE E7 00 00 ...@......pG....
00000620 : 01 4A 02 49 00 F0 13 B8 - 71 06 00 08 00 00 00 20 .J.I....q......
00000630 : 02 E0 08 C8 12 1F 08 C1 - 00 2A FA D1 70 47 70 47 .........*..pGpG
00000640 : 00 20 01 E0 01 C1 12 1F - 00 2A FB D1 70 47 2D E9 . .......*..pG-.
00000650 : F0 41 16 46 0F 46 04 46 - 00 25 03 E0 39 46 B0 47 .A.F.F.F.%..9F.G
00000660 : 6D 1C 64 1C 20 78 00 28 - F8 D1 28 46 BD E8 F0 81 m.d. x.(..(F....
00000670 : 70 B5 07 4D 04 46 80 21 - 28 46 FF F7 67 FF 00 28 p..M.F.!(F..g..(
00000680 : F9 D0 A1 B2 28 46 FF F7 - C5 FF 20 46 70 BD 00 00 ....(F.... Fp...
00000690 : 00 10 01 40 FF F7 52 FE - FF F7 B0 FD FF F7 30 FF ...@..R.......0.
000006A0 : 01 A0 FF F7 BD FF FB E7 - 48 65 6C 6C 6F 20 57 6F ........Hello Wo
000006B0 : 72 6C 64 21 0D 0A 00 00 - D8 06 00 08 00 00 00 20 rld!...........
000006C0 : 14 00 00 00 30 06 00 08 - EC 06 00 08 14 00 00 20 ....0..........
000006D0 : 04 04 00 00 40 06 00 08 - 00 00 00 00 00 00 00 00 ....@...........
000006E0 : 01 02 03 04 01 02 03 04 - 06 07 08 09 ** ** ** ** ............