SSブログ

バイナリファイルをC言語のデータ配列に変換する [Arduino]

大きなデータを扱うにあたり、ファイル操作が可能なシステムならファイルの読み書きで対応が可能ですが、Arduino単体ではプログラム領域上にデータを持つしかありません。
数~数10kBのFlashメモリにデータを置き、そこから読み込むということになります。
テキストデータならプログラム上に載せるのもなんとかなりそうですが、バイナリデータの場合にはデータをどうやって持ってくるか考えてしまいます。
通常大きなデータというのはファイルに保存されているので、それをそのまま配列に変換するのが現実的と思います。
というわけで、HTML5 + JavaScript で変換スクリプトつくりました。
サンプルプログラムの寄せ集め+スタイルシートが雑ですが、Drag & Dropするだけなので使いやすいと思います。

pgmsakuzo.png
次のコードをテキストエディタでhtmlとして保存します。HTML5なのでUnicode(UTF-8)です。

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>PROGMEM作蔵さん</title>
<style>
  html, body {  height: 90%;  background:#ffffff;  }
  h1         {  border:dotted 2px;  border-radius:20px;  padding:20px;  }
  h1, h3, p  {  color:#776666;  text-align:center;  margin:50px;  }
  code       {  color:#444444;  font-size:75%;  }
</style>
<script>
function DragOver( event ) {
    event.preventDefault();                 // ブラウザデフォルト処理(禁止マーク)を阻止
}
function Drop( event ) {
    event.preventDefault();                 // ブラウザデフォルト処理(ページ移動)を阻止
    var f = event.dataTransfer.files[0];    // イベントに格納されたファイルを取り出し
    var code = "<pre><code>"
    code += "// " + "file name : " + f.name + "\n";
    code += "// " + "file size : " + f.size + " bytes\n\n";
    code += "const uint8_t bindata[] PROGMEM = {";
    var reader = new FileReader();
    reader.onloadend = function(){
        var uint8array = new Uint8Array(reader.result);
        for( var i = 0; i < f.size; i++) {
            if( i != 0 )    code += ",";
            if( !(i % 16) ) code += "\n  ";
            code += ( uint8array[i] > 15 ? "0x" : "0x0" );
            code += ( uint8array[i].toString(16) );
        }
        code += "\n};\n\n</code></pre>";
        document.getElementById("main").innerHTML = code;
    };
    reader.readAsArrayBuffer( f );
}
</script>
<body ondragover="DragOver(event);" ondrop="Drop(event);" id="main" >
<h1>PROGMEM作蔵さん</h1>
<h3>バイナリファイルをC言語のデータ形式に変換</h3>
<p>ここにファイルをドロップ</p>
</body>
</html>

const uint8_t bindata[] PROGMEM = { ... };
のかわりに、
var bindata = [ ... ]; (最近はvarよりlet, const?)
にすれば、JavaScript にも応用が可能です。

nice!(0)  コメント(8)  トラックバック(0) 

nice! 0

コメント 8

смотреть фильмы 2020 720

В хорошем качестве HD 1080 показать фильм полный фильм смотреть фильм гражданин никто смотреть кино хорошем качестве 2020 новинки http://klavamaster.ru/news/onlayn_kazino_s_vuvodom_dlya_novichkov.html online смотреть

ютуб мультфильм смотреть бесплатно в хорошем В хорошем качестве где идет фильм http://www.saratovturizm.ru/forum/topic.php?forum=12&topic=5115 2 торрент фильмшки купить

смотреть мультфильм неоспоримый 4 https://www.youtube.com/watch?v=P0rC93FlfXI Метод 2 сезон как снимали сериал - lego видео фильм полный фильм https://eva.ru/passport/757801 смотреть сериал 50 https://forum.antichat.ru/members/402130/ В хорошем качестве HD 720 фильм онлайн бесплатно полный фильм

фильмы онлайн смотреть бесплатно в хорошем лучший фильм 2 смотреть бесплатно смотреть кино 2020 фильмы порно бесплатно онлайн смотреть хорошего качества

смотреть кино 2 сезон http://gazoton.com/forum/index.php?PAGE_NAME=profile_view&UID=19743 смотреть в 3d полный фильм смотреть лучшие мультфильм hd 720 http://www.studio-moda.it/index.php?option=com_k2&view=itemlist&task=user&id=678875 смотреть порно фильмы бесплатно без регистрации https://informpskov.ru/libraries/inc/?chto_vliyaet_na_reyting_belorusskih_kazino_.html

jurassic world 2020 полный фильм специальный показ https://lincolnsu.com/?URL=rabotaonlinefree.ru/uskorennaya-indeksaciya-stranic-sajta-metody В хорошем качестве HD 720 смотреть бесплатно фильм полный фильм фильмы типа седьмого сына полный фильм

смотреть фильм красная королева все серии фильм бесплатно скачать реклама лучшие фильмы 2020 смотреть онлайн в hd http://primspinning.ru/blog.php?cp=1154 скачать треки из фильма фильм бесплатно https://subscribe.ru/author/25954568

сериал смотреть бесплатно 2020 новинки хороши качеством где можно посмотреть смотреть фильм киного полный фильм смотреть фильм звездные войны

http://test0305.ru

<a href=http://test0305.ru>http://test0305.ru</a>
by смотреть фильмы 2020 720 (2021-05-04 13:56) 

фильм jurassic world 2020

смотреть лучшие российские кино смотреть сериал последний сезон скачать торрент mkv https://www.prayingmedic.com/wp-content/plugins/elements/?casino_non_aams___un_modo_per_guadagnare_con_la_tua_passione.html мультфильм саранча смотреть онлайн http://m2motors.com.ua/index.php?subaction=userinfo&user=ilawyto

смотреть в хорошем качестве кино без http://69dom.ru/redirect?url=http://lidaflat.ru новый мир 3 сезон https://hudsonltd.com/?URL=lidaflat.ru смотреть мультфильм 50 серого https://socialsocial.social/source/rabotaonlinefree.ru/uskorennaya-indeksaciya-stranic-sajta-metody смотреть сериал свет

2 часть https://www.ixbt.com/live/profile/221750/ смотреть российские мультфильм 2020 русские сериал новинка смотреть бесплатная https://www.mapleprimes.com/users/Yarnfabric2804 2 затерянный мир читать https://coub.com/structum1405

смотреть кино чемпионы http://www.thetravelboards.com/member.php?action=profile&uid=248 фильмы новый мир полный фильм http://palais.beesims.com/phpbb/viewtopic.php?f=2&t=81676 На телефон В хорошем качестве HD 720 2020 скачать http://airbnb-reviews-horror-stories.com/showthread.php?tid=65694&pid=272066#pid272066 россия полный фильм

смотреть фильм лестница в небо смотреть фильм экипаж смотреть сериал онлайн бесплатно мелодрамы https://www.feedbooks.com/user/7334524/profile смотреть фильм тюрьма http://umanfootball.com.ua/index.php?subaction=userinfo&user=delightfullatch

дивергент 3 смотреть полный сериал http://www.google.tk/url?q=http://rabotaonlinefree.ru/uskorennaya-indeksaciya-stranic-sajta-metody динозавры из фильма фото http://www.4mark.net/story/3399047/what-are-the-benefits-of-watching-movies-online В хорошем качестве HD 720 скачать хорошее качество полный фильм http://mjump.vip2ch.com/http://rabotaonlinefree.ru В хорошем качестве HD 720 смотреть 720

смотреть бесплатно мультфильм дивергент 3 смотреть на намбе полный фильм https://vk.com/news.serials Товары с доставкой на дом интернет магазин --- смотреть мультфильм самый день https://www.kickstarter.com/profile/198828977/about когда выйдет 2020

фильм скачать бесплатно полный фильм https://amharareg.gov.et/index.php?option=com_kunena&func=view&catid=2&id=9521&Itemid=137&lang=en#9521 В хорошем качестве HD 720 2020 полный фильм полный фильм https://sat-extreme.pl/mybb/showthread.php?tid=113840 смотреть фильм бесплатно иви http://xn--80adivsdbfjc1d.xn--p1ai/communication/forum/messages/forum5/message14577/14483-kinoteatr-forsazh-9-smotret-kinomaks?sessid=d37383cd161a590fd51c967248657022&TOPIC_SUBSCRIBE=Y&FORUM_SUBSCRIBE=Y&result=new фильмы в качестве 720 смотреть онлайн бесплатно https://nulled.gg/showthread.php?tid=63

http://test0305.ru

<a href=http://test0305.ru>http://test0305.ru</a>
by фильм jurassic world 2020 (2021-05-16 13:51) 

Как выбрать лучшее казино для игры ?

Волей Сервис <a href=https://gsmin.ru/include/php/igrovue_avtomatu_onlayn_na_dengi_v_armenii.html>Онлайн казино Белоруссии</a> http://macroclub.ru/glr/inc/sovremennue_mobilnue_azartnue_klubu__1.html Вместе весело играть - блэкджек Вместе весело играть - блэкджек https://alehan.ru/sizes/wj/?kak_skachat_besplatno_igrovue_apparatu_na_telefon_.html Психология азартных игр - Вывоз чёрного лома от 2000кг! Психология азартных игр - Вывоз чёрного лома от 2000кг!
by Как выбрать лучшее казино для игры ? (2021-06-01 15:05) 

москва наследство без завещания

наследство юристы цены <a href=http://it-module.com.ua/club/user/14/blog/40/>оценка оружия для наследства москва</a> https://delozadelo.ru//post/kogda-vam-potrebuetsya-advokat-po-nasledstvu-1159.html адвокат юрист наследство услуги юриста по наследству https://food2china.ru/people/user/38/blog/198/ оценка авто для наследства москва адвокат наследство уфа
by москва наследство без завещания (2021-06-03 04:39) 

Киев без кондиционера

Киев сколько кондиционер <a href=https://www.zdravzona.ru/forum.php?PAGE_NAME=profile_view&UID=204745>лучшие кондиционеры</a> http://asmetalwork.1gb.ua/forum/user/profile/44848.page Киев заправил кондиционер рено логан кондиционер https://www.dobrepole.com.ua/forum/54-5571-1 авито кондиционер кондиционер лачетти
by Киев без кондиционера (2021-06-05 21:11) 

квин

ресторан караоке <a href=http://xn----8sbmoxnheff0i.xn--p1ai/forums/users/testsole1/>ресторан квин</a> http://ukrfootball.com.ua/users/starverich1 рестораны киева левый берег лучшие рестораны киева https://acadomia.ru/forum/user/10982/ пузата хата ресторан киев ресторан марио киев
by квин (2021-06-06 01:55) 

видеонаблюдение через

видеонаблюдение <a href=http://prosat.ru/modules.html?name=Journal&file=display&jid=5005>готовые комплекты видеонаблюдения</a> http://drforum.gemini.edu/users/lefwenlai0/ камеры видеонаблюдения купить установленные камеры видеонаблюдения https://pbase.com/topics/repria15u6/whataret307 видеонаблюдение каком удаленная камера видеонаблюдения
by видеонаблюдение через (2021-06-06 16:37) 

Shop Skrypin сайт каталог интернет магазинов

дочки сыночки интернет магазин <a href=http://altoris.com.ua/forum/user/33774/>Shop Skrypin м видео интернет магазин</a> http://osvita.ch.ua/index.php?subaction=userinfo&user=ytizuzut Shop Skrypin интернет магазин официальный каталог товаров Shop Skrypin интернет магазин каталог цены http://www.kleversys.com.ua/index.php?subaction=userinfo&user=egodededo Shop Skrypin вайлдберриз интернет магазин официальный большой интернет магазин
by Shop Skrypin сайт каталог интернет магазинов (2021-06-07 23:31) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。