狠狠撸
Submit Search
颁プログラムを异なるマイコンで动作させる际のエンディアンとビットフィールドの取り扱い
2 likes
447 views
Gou Sawada
例えばH8用のCプログラムの一部をWindowsで動作させたいとする。 H8はビッグエンディアン、Intel CPUはリトルエンディアンなので 外部のバイナリファイルを読み込むときなどに問題になる。
Technology
Read more
1 of 12
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
More Related Content
Similar to 颁プログラムを异なるマイコンで动作させる际のエンディアンとビットフィールドの取り扱い
(8)
PDF
Runtime c++editing
Seiya Ishibashi
?
PDF
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
TetsuroMatsumura
?
PDF
JIT Code Profiling with VTune
MITSUNARI Shigeo
?
PDF
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
Hideharu MATSUFUJI
?
PDF
【学习メモ#1蝉迟】12ステップで作る组込み翱厂自作入门
sandai
?
PDF
翱辫别苍颁尝に触れてみよう
You&I
?
KEY
ひのきのぼうだけで全クリ目指す
AromaBlack
?
PDF
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
?
Runtime c++editing
Seiya Ishibashi
?
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
TetsuroMatsumura
?
JIT Code Profiling with VTune
MITSUNARI Shigeo
?
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
Hideharu MATSUFUJI
?
【学习メモ#1蝉迟】12ステップで作る组込み翱厂自作入门
sandai
?
翱辫别苍颁尝に触れてみよう
You&I
?
ひのきのぼうだけで全クリ目指す
AromaBlack
?
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
?
Recently uploaded
(13)
PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
?
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
?
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
PDF
第3回テ?シ?タル理学疗法学会のシンポジウム「デジタル理学疗法の组织活用:教育?管理?研究を繋ぐ新たな地平」での话题提供
Matsushita Laboratory
?
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
?
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
PDF
第3回デジタル理学疗法研究会学术大会シンポジウム「デジタル理学疗法の组织活用:教育?管理?研究を繋ぐ新たな地平」の讲演资料.
Matsushita Laboratory
?
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
?
PDF
渔船に搭载されている电子装备と渔法について冲痴搁颁海洋学研究会冲海の尝罢会発表资料
Yuuitirou528 default
?
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
?
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
?
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
?
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
?
第3回テ?シ?タル理学疗法学会のシンポジウム「デジタル理学疗法の组织活用:教育?管理?研究を繋ぐ新たな地平」での话题提供
Matsushita Laboratory
?
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
?
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
?
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
?
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
?
第3回デジタル理学疗法研究会学术大会シンポジウム「デジタル理学疗法の组织活用:教育?管理?研究を繋ぐ新たな地平」の讲演资料.
Matsushita Laboratory
?
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
?
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
?
渔船に搭载されている电子装备と渔法について冲痴搁颁海洋学研究会冲海の尝罢会発表资料
Yuuitirou528 default
?
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
?
Ad
颁プログラムを异なるマイコンで动作させる际のエンディアンとビットフィールドの取り扱い
1.
Cプログラムを異なるマイコンで動作させる際の エンディアンとビットフィールドの取り扱い Gou Sawada 2017/6/20
2.
1.エンディアンについて
3.
例えばH8用のCプログラムの一部を Windowsで動作させたいとする。 H8はビッグエンディアン、Intel CPUはリトルエンディアンなので 外部のバイナリファイルを読み込むときなどに問題になる。
4.
sample1.c UB ReadFile[100]; //外部のバイナリファイルを読んで 1バイトずつ格納するための配列 typedef
struct test{ UH Code; // コード(2byte) UB yobi[14]; // 予備 }TEST; TEST *file_ptr; //(中略:ReadFileに外部のバイナリファイルを1バイトずつ格納する処理) file_ptr = (TEST*)&ReadFile[0];
5.
ReadFileの値が以下であったとする。 ReadFile[0]=0x01 ReadFile[1]=0x02 このとき、"file_ptr->Code"の値は以下のようになる。 H8 Intel 0x0102 0x0201
6.
sample2.c UH code; //2バイト UB
*ptr; ptr = (UB*)&code; *ptr = 0x01; ptr++; *ptr = 0x02; このときも、"code"の値は以下のようになる。 0x0102 0x0201 H8 Intel
7.
2.ビットフィールドについて
8.
実は共用体のビット定義も逆になっている。 ※注:設定によって変更することも可能 sample3.c typedef union { UH
data; //2バイト struct { UH bf1:7; UH bf2:5; UH bf3:4; } bit; } BIT_TEST1;
9.
sample3.cはCPUによって 先頭メンバのビットフィールドが逆順になる。 bit15~12 bit11~7 bit6~0 bit15~9
bit8~4 bit3~0 Intel bf3 :4bit bf2 :5bit bf1 :7bit H8 bf1 :7bit bf2 :5bit bf3 :4bit
10.
ただし先頭メンバが配列のときは、 配列の要素ごとにビットフィールドが逆になる。 sample4.c typedef union { UB
data[2]; //1byte×2の配列 struct { UB bf1:4; UB bf2:4; UB bf3:4; UB bf4:4; } bit; } BIT_TEST2;
11.
sample4.cのビットフィールドは以下のようになる。 bf3 :4bitbf4 :4bitbf1
:4bitbf2 :4bit bit7~4 bit3~0 bit7~4 bit3~0 bit3~0bit7~4bit3~0bit7~4 Intel data[0] data[1] bf4 :4bitbf3 :4bitbf2 :4bitbf1 :4bit data[0] data[1] H8
12.
※本资料は蚕颈颈迟补に投稿したものを再编集したものです。
Download