差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
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であることを利用して判別するしかなさそう。
  
altera/qsys/epcsインターフェース.1411171843.txt.gz · 最終更新: 2014/09/20 00:10 by kimu_shu
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0