差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
altera:qsys:epcsインターフェース [2014/09/20 00:10] kimu_shu [CycloneIII/CycloneIVの場合] |
altera:qsys:epcsインターフェース [2014/09/20 02:10] (現在) kimu_shu [CycloneIII/CycloneIVの場合] |
||
---|---|---|---|
ライン 37: | ライン 37: | ||
===== CycloneIII/CycloneIVの場合 ===== | ===== CycloneIII/CycloneIVの場合 ===== | ||
- | - 0x27~0x21バイト目のbit3を繋げる→長さ情報のbit31~25の値。 | + | - 0x27~0x21バイト目のbit3を繋げる→長さ情報のbit31~25の値。<code> |
- | <code> | + | |
0020: 6A F7 F7 F7 F7 F7 F7 F3 FB F2 F9 FA F9 F1 F8 F8 | 0020: 6A F7 F7 F7 F7 F7 F7 F3 FB F2 F9 FA F9 F1 F8 F8 | ||
- | ^0 ^0 ^0 ^0 ^0 ^0 ^0 | + | (bit3) ^0 ^0 ^0 ^0 ^0 ^0 ^0 |
- | 25 26 27 28 29 30 31 | + | (位置) 25 26 27 28 29 30 31 |
</code> | </code> | ||
- | - 0x48~0x30バイト目のbit2を繋げる→長さ情報のbit24~0の値 | + | - 0x48~0x30バイト目のbit2を繋げる→長さ情報のbit24~0の値 <code> |
- | <code> | + | |
0030: FC F8 F9 FA FF F9 FC F8 FB FB FF FF F9 FD FD FC | 0030: FC F8 F9 FA FF F9 FC F8 FB FB FF FF F9 FD FD FC | ||
- | ^1 ^0 ^0 ^0 ^1 ^0 ^1 ^0 ^0 ^0 ^1 ^1 ^0 ^1 ^1 ^1 | + | (bit2) ^1 ^0 ^0 ^0 ^1 ^0 ^1 ^0 ^0 ^0 ^1 ^1 ^0 ^1 ^1 ^1 |
- | 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | + | (位置) 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 |
0040: F8 F8 FC FC FA FE FA FA FA 2B 88 FF FF FF FF FF | 0040: F8 F8 FC FC FA FE FA FA FA 2B 88 FF FF FF FF FF | ||
- | ^0 ^0 ^1 ^1 ^0 ^1 ^0 ^0 ^0 | + | (bit2) ^0 ^0 ^1 ^1 ^0 ^1 ^0 ^0 ^0 |
- | 16 17 18 19 20 21 22 23 24 | + | (位置) 16 17 18 19 20 21 22 23 24 |
</code> | </code> | ||
- 繋げると、0b00000000_00101100_11101100_01010001 → 0x002cec51 | - 繋げると、0b00000000_00101100_11101100_01010001 → 0x002cec51 | ||
- この値はビット単位なので、8で割ってバイト単位にする。→ 368010.125 | - この値はビット単位なので、8で割ってバイト単位にする。→ 368010.125 | ||
- 切り上げたら完成。→ 368011 | - 切り上げたら完成。→ 368011 | ||
- | - ためしに、ツールで読み取ったサイズと比較してみる。 | + | - ためしに、ツールで読み取ったサイズと比較してみる。<code> |
- | <code> | + | |
$ sof2flash --input=mruby.sof --output=mruby.flash --offset=0 | $ sof2flash --input=mruby.sof --output=mruby.flash --offset=0 | ||
$ nios2-elf-size mruby.flash | $ nios2-elf-size mruby.flash | ||
ライン 63: | ライン 61: | ||
↑合ってる! | ↑合ってる! | ||
</code> | </code> | ||
+ | - なお、rbfのファイルサイズともぴったり一致する。 | ||
+ | |||
+ | ===== 圧縮時の注意 ===== | ||
+ | Compressionを有効にすると、上記のルールで読み取ったサイズよりも1バイト大きくなる模様。 | ||
+ | 最終サイズが偶数のときも奇数のときもあるので、バウンダリの関係でもないようだ。 | ||
+ | ヘッダから圧縮の有無を判別する方法が分からないので、コンフィグレーションデータの末端数十バイトが0xFFであることを利用して判別するしかなさそう。 | ||