Hexdump /~heha/basteln/PC/FunkUsb/FunkUsb.zip/FunkUsb/com

Pixeldump
000000  2F 2A 2A 2A  2A 2A 2A 2A  2A 2A 2A 2A  2A 2A 2A 2A  /***************
000010  2A 2A 2A 2A  2A 2A 2A 2A  2A 2A 2A 2A  2A 2A 2A 2A  ****************
000020  2A 2A 2A 2A  2A 2A 2A 2A  2A 2A 5C 0A  20 2A 20 46  **********\␊␣*␣F
000030  6C 61 73 68  2D 53 70 65  69 63 68 65  72 20 6D 69  lash-Speicher␣mi
000040  74 20 77 61  68 6C 66 72  65 69 65 6D  20 5A 75 67  t␣wahlfreiem␣Zug
000050  72 69 66 66  20 2A 0A 5C  2A 2A 2A 2A  2A 2A 2A 2A  riff␣*␊\********
000060  2A 2A 2A 2A  2A 2A 2A 2A  2A 2A 2A 2A  2A 2A 2A 2A  ****************
000070  2A 2A 2A 2A  2A 2A 2A 2A  2A 2A 2A 2A  2A 2A 2A 2A  ****************
000080  2A 2F 0A 23  69 66 6E 64  65 66 20 5F  46 4C 41 53  */␊#ifndef␣_FLAS
000090  48 5F 52 57  5F 48 5F 0A  23 64 65 66  69 6E 65 20  H_RW_H_␊#define␣
0000A0  5F 46 4C 41  53 48 5F 52  57 5F 48 5F  0A 0A 2F 2A  _FLASH_RW_H_␊␊/*
0000B0  20 46 C3 BC  72 20 41 54  74 69 6E 79  38 35 3A 20  ␣Für␣ATtiny85:␣
0000C0  44 69 65 20  53 45 4C 46  50 52 47 45  4E 2D 46 75  Die␣SELFPRGEN-Fu
0000D0  73 65 20 6D  75 73 73 20  67 65 62 72  61 6E 6E 74  se␣muss␣gebrannt
0000E0  20 28 3D 30  29 20 73 65  69 6E 21 0A  20 2A 20 41  ␣(=0)␣sein!␊␣*␣A
0000F0  54 74 69 6E  79 20 68 61  62 65 6E 20  6B 65 69 6E  Ttiny␣haben␣kein
000100  65 6E 20 42  6F 6F 74 6C  6F 61 64 65  72 2D 42 65  en␣Bootloader-Be
000110  72 65 69 63  68 21 20 28  47 65 6E 61  75 65 72 3A  reich!␣(Genauer:
000120  20 52 57 57  2D 53 65 6B  74 69 6F 6E  2E 29 0A 20  ␣RWW-Sektion.)␊␣
000130  2A 20 44 61  68 65 72 20  62 6C 6F 63  6B 69 65 72  *␣Daher␣blockier
000140  74 20 64 61  73 20 46 6C  61 73 68 2D  53 63 68 72  t␣das␣Flash-Schr
000150  65 69 62 65  6E 20 69 6D  6D 65 72 20  64 69 65 20  eiben␣immer␣die␣
000160  43 50 55 2E  0A 20 2A 20  0A 20 2A 20  45 69 67 6E  CPU.␊␣*␣␊␣*␣Eign
000170  65 74 20 73  69 63 68 20  64 75 72 63  68 61 75 73  et␣sich␣durchaus
000180  20 66 C3 BC  72 20 65 69  6E 65 20 41  72 74 20 4D  ␣für␣eine␣Art␣M
000190  69 6E 69 2D  4D 61 73 73  65 6E 73 70  65 69 63 68  ini-Massenspeich
0001A0  65 72 20 69  6D 20 41 56  52 2E 0A 20  2A 20 44 65  er␣im␣AVR.␊␣*␣De
0001B0  6E 6E 20 64  65 72 20 46  6C 61 73 68  20 69 73 74  nn␣der␣Flash␣ist
0001C0  20 76 69 65  6C 20 73 63  68 6E 65 6C  6C 65 72 20  ␣viel␣schneller␣
0001D0  62 65 69 6D  20 53 63 68  72 65 69 62  65 6E 20 61  beim␣Schreiben␣a
0001E0  6C 73 20 64  65 72 20 45  45 50 52 4F  4D 2E 0A 20  ls␣der␣EEPROM.␊␣
0001F0  2A 20 42 65  64 65 6E 6B  65 2C 20 61  75 63 68 20  *␣Bedenke,␣auch␣
000200  64 69 65 20  4C 75 6E 74  65 20 69 6E  20 64 65 72  die␣Lunte␣in␣der
000210  20 48 61 6E  64 20 7A 75  20 68 61 62  65 6E 2C 20  ␣Hand␣zu␣haben,␣
000220  64 65 6E 20  4B 6F 64 65  20 7A 75 20  C3 BC 62 65  den␣Kode␣zu␣übe
000230  72 73 63 68  72 65 69 62  65 6E 2E 0A  20 2A 20 4F  rschreiben.␊␣*␣O
000240  64 65 72 20  61 62 65 72  20 67 65 7A  69 65 6C 74  der␣aber␣gezielt
000250  20 73 65 6C  62 73 74 6D  6F 64 69 66  69 7A 69 65  ␣selbstmodifizie
000260  72 65 6E 64  65 6E 20 4B  6F 64 65 20  7A 75 20 73  renden␣Kode␣zu␣s
000270  63 68 72 65  69 62 65 6E  2E 0A 20 2A  0A 20 2A 20  chreiben.␊␣*␊␣*␣
000280  42 65 69 6D  20 53 74 61  72 74 75 70  20 6D 75 73  Beim␣Startup␣mus
000290  73 20 47 50  49 4F 52 30  20 42 69 74  20 36 20 67  s␣GPIOR0␣Bit␣6␣g
0002A0  65 6C C3 B6  73 63 68 74  20 77 65 72  64 65 6E 21  elöscht␣werden!
0002B0  21 0A 20 2A  20 28 44 69  65 73 20 69  73 74 20 64  !␊␣*␣(Dies␣ist␣d
0002C0  61 73 20 44  69 72 74 79  2D 46 6C 61  67 2E 29 0A  as␣Dirty-Flag.)␊
0002D0  20 2A 20 42  65 69 20 61  6C 6C 65 6E  20 52 6F 75  ␣*␣Bei␣allen␣Rou
0002E0  74 69 6E 65  6E 20 77 69  72 64 20 73  65 69 28 29  tinen␣wird␣sei()
0002F0  20 76 6F 72  61 75 73 67  65 73 65 74  7A 74 2E 0A  ␣vorausgesetzt.␊
000300  20 2A 20 44  69 65 20 52  6F 75 74 69  6E 65 6E 20  ␣*␣Die␣Routinen␣
000310  73 69 6E 64  20 28 65 72  77 61 72 74  75 6E 67 73  sind␣(erwartungs
000320  67 65 6D C3  A4 C3 9F 3F  29 20 6E 69  63 68 74 20  gemäß?)␣nicht␣
000330  6D 75 6C 74  69 74 68 72  65 61 64 2D  73 69 63 68  multithread-sich
000340  65 72 2E 0A  20 2A 2F 0A  0A 23 69 6E  63 6C 75 64  er.␊␣*/␊␊#includ
000350  65 20 3C 61  76 72 2F 70  67 6D 73 70  61 63 65 2E  e␣<avr/pgmspace.
000360  68 3E 0A 0A  2F 2A 20 44  65 72 20 5A  75 67 72 69  h>␊␊/*␣Der␣Zugri
000370  66 66 20 65  72 66 6F 6C  67 74 20 73  6F 6C 61 6E  ff␣erfolgt␣solan
000380  67 65 20 C3  BC 62 65 72  20 65 69 6E  65 6E 20 28  ge␣über␣einen␣(
000390  6E 75 72 20  65 69 6E 65  6E 21 29 20  48 69 6C 66  nur␣einen!)␣Hilf
0003A0  73 70 75 66  66 65 72 20  69 6D 20 52  41 4D 2C 0A  spuffer␣im␣RAM,␊
0003B0  20 2A 20 62  69 73 20 65  69 6E 20 61  6E 64 65 72  ␣*␣bis␣ein␣ander
0003C0  65 72 20 53  65 6B 74 6F  72 20 67 65  6C 65 73 65  er␣Sektor␣gelese
0003D0  6E 20 77 65  72 64 65 6E  20 6D 75 73  73 2E 0A 20  n␣werden␣muss.␊␣
0003E0  2A 20 53 6F  6D 69 74 20  6B 61 6E 6E  20 6D 61 6E  *␣Somit␣kann␣man
0003F0  20 6B 6C 65  69 6E 65 20  44 61 74 65  6E 70 6F 72  ␣kleine␣Datenpor
000400  74 69 6F 6E  65 6E 20 73  63 68 72 65  69 62 65 6E  tionen␣schreiben
000410  2C 0A 20 2A  20 6F 68 6E  65 20 64 65  6E 20 46 6C  ,␊␣*␣ohne␣den␣Fl
000420  61 73 68 20  7A 75 20 73  74 61 72 6B  20 7A 75 20  ash␣zu␣stark␣zu␣
000430  76 65 72 62  72 61 75 63  68 65 6E 0A  20 2A 20 42  verbrauchen␊␣*␣B
000440  65 73 6F 6E  64 65 72 73  20 62 65 69  20 73 65 71  esonders␣bei␣seq
000450  75 65 6E 7A  69 65 6C 6C  65 6D 20 5A  75 67 72 69  uenziellem␣Zugri
000460  66 66 2E 0A  0A 09 09 09  E2 94 8C E2  94 80 E2 94  ff.␊␊␉␉␉┌─â”
000470  80 E2 94 80  E2 94 80 E2  94 80 E2 94  80 E2 94 80  €â”€â”€â”€â”€â”€
000480  E2 94 90 0A  09 09 09 E2  94 82 53 65  6B 74 6F 72  â” ␊␉␉␉│Sektor
000490  33 E2 94 82  09 09 52 41  4D 0A 09 09  09 E2 94 94  3│␉␉RAM␊␉␉␉â””
0004A0  E2 94 80 E2  94 80 E2 94  80 E2 94 80  E2 94 80 E2  ─────â
0004B0  94 80 E2 94  80 E2 94 98  0A E2 94 8C  E2 94 80 E2  ”€â”€â”˜␊┌─â
0004C0  94 80 E2 94  80 E2 94 80  E2 94 80 E2  94 80 E2 94  ”€â”€â”€â”€â”€â”
0004D0  80 E2 94 AC  E2 94 80 E2  94 80 E2 94  80 E2 94 80  €â”¬â”€â”€â”€â”€
0004E0  E2 94 80 E2  94 80 E2 94  80 E2 94 AC  E2 94 80 E2  ───┬─â
0004F0  94 80 E2 94  80 E2 94 80  E2 94 80 E2  94 80 E2 94  ”€â”€â”€â”€â”€â”
000500  80 E2 94 AC  E2 94 80 E2  94 80 E2 94  80 E2 94 80  €â”¬â”€â”€â”€â”€
000510  E2 94 80 E2  94 80 E2 94  80 E2 94 AC  E2 94 80 E2  ───┬─â
000520  94 80 E2 94  80 E2 94 80  E2 94 80 E2  94 80 E2 94  ”€â”€â”€â”€â”€â”
000530  80 E2 94 AC  E2 94 80 E2  94 80 E2 94  80 E2 94 80  €â”¬â”€â”€â”€â”€
000540  5C 0A E2 94  82 53 65 6B  74 6F 72 30  E2 94 82 53  \␊│Sektor0│S
000550  65 6B 74 6F  72 31 E2 94  82 53 65 6B  74 6F 72 32  ektor1│Sektor2
000560  E2 94 82 58  58 58 58 58  58 58 E2 94  82 53 65 6B  │XXXXXXX│Sek
000570  74 6F 72 34  E2 94 82 53  65 6B 74 2F  09 46 6C 61  tor4│Sekt/␉Fla
000580  73 68 0A E2  94 94 E2 94  80 E2 94 80  E2 94 80 E2  sh␊└───â
000590  94 80 E2 94  80 E2 94 80  E2 94 80 E2  94 B4 E2 94  ”€â”€â”€â”€â”´â”
0005A0  80 E2 94 80  E2 94 80 E2  94 80 E2 94  80 E2 94 80  €â”€â”€â”€â”€â”€
0005B0  E2 94 80 E2  94 B4 E2 94  80 E2 94 80  E2 94 80 E2  ─┴───â
0005C0  94 80 E2 94  80 E2 94 80  E2 94 80 E2  94 B4 E2 94  ”€â”€â”€â”€â”´â”
0005D0  80 E2 94 80  E2 94 80 E2  94 80 E2 94  80 E2 94 80  €â”€â”€â”€â”€â”€
0005E0  E2 94 80 E2  94 B4 E2 94  80 E2 94 80  E2 94 80 E2  ─┴───â
0005F0  94 80 E2 94  80 E2 94 80  E2 94 80 E2  94 B4 E2 94  ”€â”€â”€â”€â”´â”
000600  80 E2 94 80  E2 94 80 E2  94 80 5C 0A  09 09 46 6C  €â”€â”€â”€\␊␉␉Fl
000610  61 73 68 50  74 72 E2 86  91 0A 0A 20  2A 20 4D 61  ashPtr↑␊␊␣*␣Ma
000620  6E 20 64 61  72 66 20 61  62 65 72 20  6B 65 69 6E  n␣darf␣aber␣kein
000630  20 6D 65 6D  63 70 79 5F  50 20 75 2E  61 2E 20 61  ␣memcpy_P␣u.a.␣a
000640  75 66 20 64  65 6E 20 69  6E 66 72 61  67 65 0A 20  uf␣den␣infrage␊␣
000650  2A 20 6B 6F  6D 6D 65 6E  64 65 6E 20  46 6C 61 73  *␣kommenden␣Flas
000660  68 2D 42 65  72 65 69 63  68 20 62 65  6E 75 74 7A  h-Bereich␣benutz
000670  65 6E 21 0A  20 2A 20 53  6F 6E 64 65  72 6E 20 6D  en!␊␣*␣Sondern␣m
000680  75 73 73 20  66 6C 61 73  68 5F 72 65  61 64 28 29  uss␣flash_read()
000690  20 76 65 72  77 65 6E 64  65 6E 2C 20  65 73 20 6B  ␣verwenden,␣es␣k
0006A0  6C 61 6D 6D  65 72 74 20  64 65 6E 20  67 65 72 61  lammert␣den␣gera
0006B0  64 65 20 75  6E 67 C3 BC  6C 74 69 67  65 6E 0A 20  de␣ungültigen␊␣
0006C0  2A 20 46 6C  61 73 68 2D  42 65 72 65  69 63 68 20  *␣Flash-Bereich␣
0006D0  61 75 73 20  75 6E 64 20  6C 69 65 73  74 20 61 75  aus␣und␣liest␣au
0006E0  73 20 64 65  6D 20 48 69  6C 66 73 70  75 66 66 65  s␣dem␣Hilfspuffe
0006F0  72 2E 0A 20  2A 20 4F 64  65 72 20 6D  61 6E 20 73  r.␊␣*␣Oder␣man␣s
000700  74 65 6C 6C  74 20 6D 69  74 20 66 6C  61 73 68 5F  tellt␣mit␣flash_
000710  66 6C 75 73  68 28 29 20  73 69 63 68  65 72 2C 20  flush()␣sicher,␣
000720  64 61 73 73  20 64 65 72  20 46 6C 61  73 68 20 61  dass␣der␣Flash␣a
000730  75 73 67 65  73 63 68 72  69 65 62 65  6E 20 69 73  usgeschrieben␣is
000740  74 2E 0A 20  2A 0A 20 2A  20 66 6C 61  73 68 5F 77  t.␊␣*␊␣*␣flash_w
000750  72 69 74 65  28 29 20 6B  C3 BC 6D 6D  65 72 74 20  rite()␣kümmert␣
000760  73 69 63 68  20 61 75 74  6F 6D 61 74  69 73 63 68  sich␣automatisch
000770  20 75 6D 20  50 75 66 66  65 72 61 6B  74 75 61 6C  ␣um␣Pufferaktual
000780  69 73 69 65  72 75 6E 67  65 6E 0A 20  2A 20 75 6E  isierungen␊␣*␣un
000790  64 20 6B 61  6E 6E 20 64  61 68 65 72  20 66 C3 BC  d␣kann␣daher␣fü
0007A0  72 20 65 69  6E 69 67 65  20 4D 69 6C  6C 69 73 65  r␣einige␣Millise
0007B0  6B 75 6E 64  65 6E 20 62  6C 6F 63 6B  69 65 72 65  kunden␣blockiere
0007C0  6E 2E 0A 20  2A 20 45 73  20 77 69 72  64 20 6E 69  n.␊␣*␣Es␣wird␣ni
0007D0  63 68 74 73  20 75 6E 74  65 72 6E 6F  6D 6D 65 6E  chts␣unternommen
0007E0  2C 20 77 65  6E 6E 20 73  69 63 68 20  6E 69 63 68  ,␣wenn␣sich␣nich
0007F0  74 73 20 C3  A4 6E 64 65  72 74 21 0A  20 2A 20 41  ts␣ändert!␊␣*␣A
000800  6C 6C 65 20  41 72 74 65  6E 20 76 6F  6E 20 C3 9C  lle␣Arten␣von␣Ãœ
000810  62 65 72 6C  61 70 70 75  6E 67 65 6E  20 75 6E 64  berlappungen␣und
000820  20 47 72 65  6E 7A C3 BC  62 65 72 67  C3 A4 6E 67  ␣Grenzübergäng
000830  65 6E 20 73  69 6E 64 20  65 72 6C 61  75 62 74 2E  en␣sind␣erlaubt.
000840  0A 20 2A 0A  20 2A 20 66  6C 61 73 68  5F 66 6C 75  ␊␣*␊␣*␣flash_flu
000850  73 68 28 29  20 E2 80 9E  6C 65 65 72  74 E2 80 9C  sh()␣„leert“
000860  20 64 65 6E  20 50 75 66  66 65 72 20  28 77 65 6E  ␣den␣Puffer␣(wen
000870  6E 20 67 65  66 C3 BC 6C  6C 74 2C 20  73 6F 6E 73  n␣gefüllt,␣sons
000880  74 20 70 61  73 73 69 65  72 74 20 6E  69 63 68 74  t␣passiert␣nicht
000890  73 29 2C 0A  20 2A 20 75  6E 64 20 62  6C 6F 63 6B  s),␊␣*␣und␣block
0008A0  69 65 72 74  20 69 6E 20  64 69 65 73  65 6D 20 46  iert␣in␣diesem␣F
0008B0  61 6C 6C 20  69 6D 6D 65  72 20 66 C3  BC 72 20 63  all␣immer␣für␣c
0008C0  61 2E 20 37  20 6D 73 2E  0A 20 2A 2F  0A 0A 76 6F  a.␣7␣ms.␊␣*/␊␊vo
0008D0  69 64 20 66  6C 61 73 68  5F 72 65 61  64 28 76 6F  id␣flash_read(vo
0008E0  69 64 20 2A  64 73 74 2C  20 50 47 4D  5F 56 4F 49  id␣*dst,␣PGM_VOI
0008F0  44 5F 50 20  73 72 63 2C  20 73 69 7A  65 5F 74 20  D_P␣src,␣size_t␣
000900  6C 65 6E 29  3B 0A 76 6F  69 64 20 66  6C 61 73 68  len);␊void␣flash
000910  5F 77 72 69  74 65 28 50  47 4D 5F 56  4F 49 44 5F  _write(PGM_VOID_
000920  50 20 64 73  74 2C 20 63  6F 6E 73 74  20 76 6F 69  P␣dst,␣const␣voi
000930  64 20 2A 73  72 63 2C 20  73 69 7A 65  5F 74 20 6C  d␣*src,␣size_t␣l
000940  65 6E 29 3B  0A 76 6F 69  64 20 66 6C  61 73 68 5F  en);␊void␣flash_
000950  66 6C 75 73  68 28 76 6F  69 64 29 3B  0A 0A 2F 2A  flush(void);␊␊/*
000960  20 44 69 65  20 6C 61 6E  67 65 20 55  6E 74 65 72  ␣Die␣lange␣Unter
000970  62 72 65 63  68 75 6E 67  73 7A 65 69  74 20 76 65  brechungszeit␣ve
000980  72 73 63 68  6C 65 63 68  74 65 72 74  20 64 69 65  rschlechtert␣die
000990  20 49 6D 70  75 6C 73 6C  C3 A4 6E 67  65 6E 6D 65  ␣Impulslängenme
0009A0  73 73 75 6E  67 2E 0A 20  2A 20 44 61  20 6F 68 6E  ssung.␊␣*␣Da␣ohn
0009B0  65 68 69 6E  20 6B 65 69  6E 20 48 61  72 64 77 61  ehin␣kein␣Hardwa
0009C0  72 65 2D 43  61 70 74 75  72 65 20 7A  75 72 20 56  re-Capture␣zur␣V
0009D0  65 72 66 C3  BC 67 75 6E  67 20 73 74  65 68 74 2C  erfügung␣steht,
0009E0  0A 20 2A 20  73 6F 6C 6C  74 65 20 54  69 6D 65 72  ␊␣*␣sollte␣Timer
0009F0  31 20 64 65  6E 20 57 65  72 74 20 76  6F 6E 20 54  1␣den␣Wert␣von␣T
000A00  30 4E 54 20  6B 6F 72 72  69 67 69 65  72 65 6E 2C  0NT␣korrigieren,
000A10  0A 20 2A 20  64 61 6D 69  74 20 77 65  6E 69 67 73  ␊␣*␣damit␣wenigs
000A20  74 65 6E 73  20 64 69 65  20 44 69 66  66 65 72 65  tens␣die␣Differe
000A30  6E 7A 65 6E  20 73 74 69  6D 6D 65 6E  2E 0A 20 2A  nzen␣stimmen.␊␣*
000A40  20 44 61 68  65 72 20 77  69 72 64 20  76 6F 6E 20  ␣Daher␣wird␣von␣
000A50  66 6C 61 73  68 5F 77 72  69 74 65 28  29 20 62 65  flash_write()␣be
000A60  69 20 42 65  64 61 72 66  20 65 78 74  65 72 6E 5F  i␣Bedarf␣extern_
000A70  66 6C 61 73  68 5F 66 6C  75 73 68 28  29 20 61 75  flash_flush()␣au
000A80  66 67 65 72  75 66 65 6E  2E 0A 20 2A  20 4A 65 6E  fgerufen.␊␣*␣Jen
000A90  65 20 50 72  6F 7A 65 64  75 72 20 6D  75 73 73 20  e␣Prozedur␣muss␣
000AA0  7A 75 6D 69  6E 64 65 73  74 20 66 6C  61 73 68 5F  zumindest␣flash_
000AB0  66 6C 75 73  68 28 29 20  61 75 66 72  75 66 65 6E  flush()␣aufrufen
000AC0  2E 0A 20 2A  2F 0A 76 6F  69 64 20 65  78 74 65 72  .␊␣*/␊void␣exter
000AD0  6E 5F 66 6C  61 73 68 5F  66 6C 75 73  68 28 76 6F  n_flash_flush(vo
000AE0  69 64 29 3B  0A 0A 2F 2A  20 45 69 6E  65 20 41 6B  id);␊␊/*␣Eine␣Ak
000AF0  74 75 61 6C  69 73 69 65  72 75 6E 67  73 72 6F 75  tualisierungsrou
000B00  74 69 6E 65  20 66 C3 BC  72 20 64 65  6E 20 45 45  tine␣für␣den␣EE
000B10  50 52 4F 4D  3A 0A 20 2A  20 4B 61 6E  6E 20 6D 61  PROM:␊␣*␣Kann␣ma
000B20  6E 20 69 6D  6D 65 72 20  77 69 65 64  65 72 20 28  n␣immer␣wieder␣(
000B30  67 65 6C 65  67 65 6E 74  6C 69 63 68  29 20 61 75  gelegentlich)␣au
000B40  66 72 75 66  65 6E 2C 0A  20 2A 20 75  6D 20 70 65  frufen,␊␣*␣um␣pe
000B50  72 73 69 73  74 65 6E 64  65 20 44 61  74 65 6E 2C  rsistende␣Daten,
000B60  20 64 69 65  20 61 6C 73  20 4B 6F 70  69 65 20 69  ␣die␣als␣Kopie␣i
000B70  6D 20 52 41  4D 20 73 74  65 68 65 6E  2C 0A 20 2A  m␣RAM␣stehen,␊␣*
000B80  20 61 75 74  6F 6D 61 74  69 73 63 68  20 72 C3 BC  ␣automatisch␣rü
000B90  63 6B 73 63  68 72 65 69  62 65 6E 20  7A 75 20 6C  ckschreiben␣zu␣l
000BA0  61 73 73 65  6E 2E 0A 20  2A 20 45 74  77 61 20 66  assen.␊␣*␣Etwa␣f
000BB0  C3 BC 72 20  55 53 42 2D  48 49 44 2D  46 65 61 74  ür␣USB-HID-Feat
000BC0  75 72 65 2D  52 65 70 6F  72 74 73 2C  20 64 69 65  ure-Reports,␣die
000BD0  20 45 69 6E  73 74 65 6C  6C 75 6E 67  65 6E 20 76  ␣Einstellungen␣v
000BE0  6F 72 6E 65  68 6D 65 6E  2E 0A 20 2A  20 28 44 61  ornehmen.␊␣*␣(Da
000BF0  6D 69 74 20  73 63 68 61  66 66 74 20  6D 61 6E 20  mit␣schafft␣man␣
000C00  73 69 63 68  20 73 6F 20  65 74 77 61  73 20 77 69  sich␣so␣etwas␣wi
000C10  65 20 65 69  6E 20 53 74  C3 BC 63 6B  20 66 65 72  e␣ein␣Stück␣fer
000C20  72 6F 65 6C  65 6B 74 72  69 73 63 68  65 6E 20 52  roelektrischen␣R
000C30  41 4D 2C 0A  20 2A 20 20  64 65 72 20  6F 72 64 65  AM,␊␣*␣␣der␣orde
000C40  6E 74 6C 69  63 68 20 61  64 72 65 73  73 69 65 72  ntlich␣adressier
000C50  62 61 72 20  69 73 74 20  75 6E 64 20  73 63 68 6E  bar␣ist␣und␣schn
000C60  65 6C 6C 20  62 65 69 6D  20 53 63 68  72 65 69 62  ell␣beim␣Schreib
000C70  65 6E 20 69  73 74 2E 29  0A 20 2A 20  4C 69 65 66  en␣ist.)␊␣*␣Lief
000C80  65 72 74 20  64 69 65 20  53 74 65 6C  6C 65 20 69  ert␣die␣Stelle␣i
000C90  6E 20 3C 73  72 63 3E 2C  20 64 69 65  20 67 65 72  n␣<src>,␣die␣ger
000CA0  61 64 65 20  67 65 62 72  61 6E 6E 74  20 77 69 72  ade␣gebrannt␣wir
000CB0  64 2E 0A 20  2A 20 4E 55  4C 4C 20 77  65 6E 6E 20  d.␊␣*␣NULL␣wenn␣
000CC0  61 6C 6C 65  73 20 67 6C  65 69 63 68  20 69 73 74  alles␣gleich␣ist
000CD0  20 4F 44 45  52 20 67 65  72 61 64 65  20 67 65 62  ␣ODER␣gerade␣geb
000CE0  72 61 6E 6E  74 20 77 69  72 64 2E 0A  20 2A 20 44  rannt␣wird.␊␣*␣D
000CF0  69 65 73 65  20 52 6F 75  74 69 6E 65  20 62 6C 6F  iese␣Routine␣blo
000D00  63 6B 69 65  72 74 20 6E  69 63 68 74  2C 20 69 6D  ckiert␣nicht,␣im
000D10  20 47 65 67  65 6E 73 61  74 7A 20 7A  75 20 65 65  ␣Gegensatz␣zu␣ee
000D20  70 72 6F 6D  5F 77 72 69  74 65 5F 62  6C 6F 63 6B  prom_write_block
000D30  28 29 2E 0A  20 2A 2F 0A  76 6F 69 64  2A 65 65 70  ().␊␣*/␊void*eep
000D40  72 6F 6D 5F  75 70 64 61  74 65 28 76  6F 69 64 2A  rom_update(void*
000D50  64 73 74 2C  20 63 6F 6E  73 74 20 76  6F 69 64 2A  dst,␣const␣void*
000D60  73 72 63 2C  20 73 69 7A  65 5F 74 20  6C 65 6E 29  src,␣size_t␣len)
000D70  3B 0A 0A 23  65 6E 64 69  66 2F 2F 5F  46 4C 41 53  ;␊␊#endif//_FLAS
000D80  48 5F 52 57  5F 48 5F 0A                            H_RW_H_␊
Detected encoding: UTF-80