Nios Icommand shell焼録
転載する
原文住所:http://www.cnblogs.com/liu_xf/archive/2011/10/23/2221880.html
niosにはhardwareとソフトウェアがあり、それぞれ2つのファイルがあり、システムに固化すると二次ダウンロードが必要です.hardwareをダウンロードするのはまあまあですが、quartus programerで直接操作すればいいのですが、softwareはnios ii IDEで操作するので便利ではありません.それに、nios ii download elfの时よくいくつかの问题が発生して、ソフトウェアのbugの原因なのかそれとも何なのか分からないで、本人はnios ii 10.0の下でep 3 c 16に対してelfをダウンロードするのはいつも成功しないで、そこで1つの新しい方法を采用して、やっとhwとswを硬化することに成功しました.
紹介:
ソフトウェアバージョン:10.0
ハードウェア:EP 3 C 16240 M 25 P 64
nios iiでflash programerを使用すると、次のプロンプトが表示されます.
時々failedの情報がない
しかし、電源を再起動すると、NIOSは動作せず、config_さえ接続されます.doneのランプは常に点灯しており(hw調製が完了した後、消えたはず)、前に硬化したpofさえ流してしまったようだ.
cycloneとcyclone iiの上ですべてできて、これまでこのような問題を出したことがなくて、今cyclone iiiの上でいつも成功していないで、Alteraは9.0ソフトウェアのバグだと言って、9.0 SP 2の上で解決して、しかし私はSP 2がなくて、10.0に変えた後にやはりだめです;最初はハードウェアの問題ではないかと疑いましたが、私はJTAGとASモードを使ってもいいし、JTAGでJICをダウンロードしても正常です.FLASHをEPCS 4に変えるのも同じです.これはハードウェアが問題ないことを示しています.epcs_contollerとnios iiの中.
苦しみは数日探したが,結局解決しなかったので,後で別の方法を探すしかなかった.
JTAGがJICをFLASHにダウンロードするのは正常だと思いますが、HWとHSを統合してJICにすることができるかどうか、答えは肯定的です.
1、HWとSWを一つのJICファイルに合成する
必要なファイル:sof,elf;
Step 1:まずハードウェアイメージとソフトウェアイメージをflashファイルに変換してnios II command shellを開き、入力:
Step 2:flashファイルをhexファイルに変換
Step 3:Quartusを開く® II Convert Programming Fileツールは、Flash Loaderにデバイスタイプを追加し、手順2で変換したhexファイルを追加します.hexファイルを追加する場合は、「絶対アドレス」オプションを選択します.
Gererateをクリックするとjicファイルが生成され、生成されたものがチェックされます.mapファイルにはhwimageがあります.Hexは、先頭アドレス0 x 0,swimageにある.hexファイルはhwimageにあります.Hex終了アドレス後の開始アドレス1 hwsw_file.mapはアドレス情報を表示します
もちろん、swimageだけを変換して、hwimageで直接sofを使えばいいのですが、これは試していません.ここで説明があります.
http://www.altera.com.cn/support/kdb/solutions/rd10132010_126.html
最后に、JICファイルをダウンロードして、ハッハッハッ、NIOSは総合的に走り始めました.
2、HWとSWを一つのSOFファイルに合成する
実はquartusでは、XilinxのEDKのようにhwとswを同じbitstreamに合成することもできます.ただしSWはシート内で運転しなければならない.
NIOS IIは自分でbootloaderを書く必要はないことを知っています.NIOS IIはあなたに書いてあげましたが、指定されたFLASH Loaderからしか書けません.しかし、他のメモリLoader、例えばSDカードからbootloaderを書く場合は、bootloaderとsofを1つのファイルに合成することができます.
この方法では、SOPC Builderにepcs_を追加する必要はありません.コントローラモジュール;
CPUのresetアドレスとvectorをonchip_に設定mem;
generate以降、Quartusプロジェクトをすぐに再コンパイルする必要はありません.
Nios II IDEではsystem libraryのプログラムmemary(.text)などをonchip_mem;次の図を示します.
再build project.
このときNios II IDEは自動的にonchip_を作成しますmemory初期化ファイルonchip_memory.Hexは、SOPC Builderシステムファイル(.ptf)と同じフォルダに保存されます.
そしてQuartusプロジェクトを再コンパイルすると自動的にonchip_memory.Hexコンテンツはsofファイルとpofファイルに含まれます.
そしてQuartus ProgrammerでPOFをASモードでダウンロードすればいいです.再び電源を入れなおすと、NIOSを見つけて走り出した.
締めくくり:
NIOSで問題が発生してもうまく解決できず、コンソールから出力された情報で問題の所在を判定するのが難しい問題もあり、さらにコンパイル時間が長いこともテストの時間を増やした.もちろん、ソフトウェアバグもありますが、タイミングの問題もあります.例えば、sopc builderを修正すると、総合的な結果が異なります.warringも違います.例えば、quartus 10.0でniosがonchip_にいます.memoryは100 M、SDRAM 140 Mまで走ることができますが、sdramで運転した後、RUNでveriflyエラーを提示し、NIOSは運転できません.90 M 100 Mに変更すればいいです.だから、warringに対する理解を身につけて、新しい解決方法もとても良くて、きっと時間は限られていて、目的が達成すれば、OKで、あなたは言います.
原文住所:http://www.cnblogs.com/liu_xf/archive/2011/10/23/2221880.html
niosにはhardwareとソフトウェアがあり、それぞれ2つのファイルがあり、システムに固化すると二次ダウンロードが必要です.hardwareをダウンロードするのはまあまあですが、quartus programerで直接操作すればいいのですが、softwareはnios ii IDEで操作するので便利ではありません.それに、nios ii download elfの时よくいくつかの问题が発生して、ソフトウェアのbugの原因なのかそれとも何なのか分からないで、本人はnios ii 10.0の下でep 3 c 16に対してelfをダウンロードするのはいつも成功しないで、そこで1つの新しい方法を采用して、やっとhwとswを硬化することに成功しました.
紹介:
ソフトウェアバージョン:10.0
ハードウェア:EP 3 C 16240 M 25 P 64
nios iiでflash programerを使用すると、次のプロンプトが表示されます.
#!/bin/sh
#
# This file was automatically generated by the Nios II IDE Flash Programmer.
#
# It will be overwritten when the flash programmer options change.
#
cd D:/vga_board_hdl_code/hello_nios_cy3/software/hello_world_0/Debug
# Creating .flash file for the FPGA configuration
"$SOPC_KIT_NIOS2/bin/sof2flash" --epcs --input="D:/vga_board_hdl_code/hello_nios
_cy3/hello_cy3.sof" --output="hello_cy3.flash"
Info: *******************************************************************
Info: Running Quartus II Convert_programming_file
Info: Command: quartus_cpf --no_banner --convert --device=EPCS128 --option=hello
_cy3.opt D:/vga_board_hdl_code/hello_nios_cy3/hello_cy3.sof hello_cy3.pof
Info: Quartus II Convert_programming_file was successful. 0 errors, 0 warnings
Info: Peak virtual memory: 93 megabytes
Info: Processing ended: Sun Oct 23 17:21:45 2011
Info: Elapsed time: 00:00:02
Info: Total CPU time (on all processors): 00:00:02
Info: *******************************************************************
Info: Running Quartus II Convert_programming_file
Info: Command: quartus_cpf --no_banner --convert hello_cy3.pof hello_cy3.rpd
Info: Quartus II Convert_programming_file was successful. 0 errors, 0 warnings
Info: Peak virtual memory: 91 megabytes
Info: Processing ended: Sun Oct 23 17:21:50 2011
Info: Elapsed time: 00:00:04
Info: Total CPU time (on all processors): 00:00:04
# Programming flash with the FPGA configuration
"$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=0x00000000 --sidp=0x0
0001818 --id=1579616574 --timestamp=1319355357 --instance=0 "hello_cy3.flash"
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
Reading System ID at address 0x00001818: verified
: Checksumming existing contents
00000000 : Verifying existing contents
00010000 : Verifying existing contents
00020000 : Verifying existing contents
00030000 : Verifying existing contents
00000000 : Reading existing contents
00010000 : Reading existing contents
00020000 : Reading existing contents
00030000 : Reading existing contents
Checksummed/read 61kB in 12.9s
00000000 ( 0%): Erasing
Erase failed at offset 0
Leaving target processor paused
# Creating .flash file for the project
"$SOPC_KIT_NIOS2/bin/elf2flash" --epcs --after="hello_cy3.flash" --input="hello_
world_0.elf" --output="epcs_flash_controller.flash"
# Programming flash with the project
"$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=0x00000000 --sidp=0x0
0001818 --id=1579616574 --timestamp=1319355357 --instance=0 "epcs_flash_controll
er.flash"
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
Reading System ID at address 0x00001818: verified
: Checksumming existing contents
00030000 : Verifying existing contents
00030000 : Reading existing contents
Checksummed/read 42kB in 4.4s
00030000 ( 0%): Erasing
Erased 64kB in 0.0s
00030000 ( 0%): Programming
Program failed
Leaving target processor paused
時々failedの情報がない
#!/bin/sh
#
# This file was automatically generated by the Nios II IDE Flash Programmer.
#
# It will be overwritten when the flash programmer options change.
#
cd D:/MySoftwares/QuartusII/Mywork/sopc_project/led_test/software/led_test/Debug
# Creating .flash file for the FPGA configuration
"$SOPC_KIT_NIOS2/bin/sof2flash" --epcs --input="D:/MySoftwares/QuartusII/Mywork/
sopc_project/led_test/led_test.sof" --output="led_test.flash"
Info: *******************************************************************
Info: Running Quartus II Convert_programming_file
Info: Command: quartus_cpf --no_banner --convert --device=EPCS128 --option=led_t
est.opt D:/MySoftwares/QuartusII/Mywork/sopc_project/led_test/led_test.sof led_t
est.pof
Info: Quartus II Convert_programming_file was successful. 0 errors, 0 warnings
Info: Peak virtual memory: 70 megabytes
Info: Processing ended: Wed Mar 30 12:34:48 2011
Info: Elapsed time: 00:00:02
Info: Total CPU time (on all processors): 00:00:02
Info: *******************************************************************
Info: Running Quartus II Convert_programming_file
Info: Command: quartus_cpf --no_banner --convert led_test.pof led_test.rpd
Info: Quartus II Convert_programming_file was successful. 0 errors, 0 warnings
Info: Peak virtual memory: 68 megabytes
Info: Processing ended: Wed Mar 30 12:34:51 2011
Info: Elapsed time: 00:00:03
Info: Total CPU time (on all processors): 00:00:02
# Programming flash with the FPGA configuration
"$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=0x01001800 --sidp=0x0
1002018 --id=1794073991 --timestamp=1301451768 --instance=0 "led_test.flash"
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
Reading System ID at address 0x01002018: verified
: Checksumming existing contents
00000000 : Verifying existing contents
00010000 : Verifying existing contents
00020000 : Verifying existing contents
00000000 : Reading existing contents
00010000 : Reading existing contents
00020000 : Reading existing contents
Checksummed/read 54kB in 1.4s
00000000 ( 0%): Erasing
00010000 (33%): Erasing
00020000 (66%): Erasing
Erased 192kB in 1.9s (101.0kB/s)
00000000 ( 0%): Programming
00010000 (33%): Programming
00020000 (66%): Programming
Programmed 139KB +53KB in 3.3s (58.1KB/s)
Did not attempt to verify device contents
Leaving target processor paused
# Creating .flash file for the project
"$SOPC_KIT_NIOS2/bin/elf2flash" --epcs --after="led_test.flash" --input="led_tes
t.elf" --output="epcs_controller.flash"
# Programming flash with the project
"$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=0x01001800 --sidp=0x0
1002018 --id=1794073991 --timestamp=1301451768 --instance=0 "epcs_controller.fla
sh"
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
Reading System ID at address 0x01002018: verified
: Checksumming existing contents
00020000 : Verifying existing contents
00020000 : Reading existing contents
Checksummed/read 42kB in 1.1s
00020000 ( 0%): Erasing
Erased 64kB in 0.6s (106.6kB/s)
00020000 ( 0%): Programming
Programmed 23KB +41KB in 0.7s (91.4KB/s)
Did not attempt to verify device contents
Leaving target processor paused
しかし、電源を再起動すると、NIOSは動作せず、config_さえ接続されます.doneのランプは常に点灯しており(hw調製が完了した後、消えたはず)、前に硬化したpofさえ流してしまったようだ.
cycloneとcyclone iiの上ですべてできて、これまでこのような問題を出したことがなくて、今cyclone iiiの上でいつも成功していないで、Alteraは9.0ソフトウェアのバグだと言って、9.0 SP 2の上で解決して、しかし私はSP 2がなくて、10.0に変えた後にやはりだめです;最初はハードウェアの問題ではないかと疑いましたが、私はJTAGとASモードを使ってもいいし、JTAGでJICをダウンロードしても正常です.FLASHをEPCS 4に変えるのも同じです.これはハードウェアが問題ないことを示しています.epcs_contollerとnios iiの中.
苦しみは数日探したが,結局解決しなかったので,後で別の方法を探すしかなかった.
JTAGがJICをFLASHにダウンロードするのは正常だと思いますが、HWとHSを統合してJICにすることができるかどうか、答えは肯定的です.
1、HWとSWを一つのJICファイルに合成する
必要なファイル:sof,elf;
Step 1:まずハードウェアイメージとソフトウェアイメージをflashファイルに変換してnios II command shellを開き、入力:
sof2flash --input=hello_cy3.sof --output=hwimage.flash --epcs --verbose
elf2flash --input=hello_world_0.elf --output=swimage.flash --epcs --after=hwimage.flash --verbose
Step 2:flashファイルをhexファイルに変換
nios2-elf-objcopy -I srec -O ihex hwimage.flash hwimage.hex
nios2-elf-objcopy -I srec -O ihex swimage.flash swimage.hex
Step 3:Quartusを開く® II Convert Programming Fileツールは、Flash Loaderにデバイスタイプを追加し、手順2で変換したhexファイルを追加します.hexファイルを追加する場合は、「絶対アドレス」オプションを選択します.
Gererateをクリックするとjicファイルが生成され、生成されたものがチェックされます.mapファイルにはhwimageがあります.Hexは、先頭アドレス0 x 0,swimageにある.hexファイルはhwimageにあります.Hex終了アドレス後の開始アドレス1 hwsw_file.mapはアドレス情報を表示します
BLOCK START ADDRESS END ADDRESS
hwimage.hex 0x00000000 0x00030FA5
swimage.hex 0x00030FA6 0x0003131D
Note: All the addresses in this file are byte addresses
もちろん、swimageだけを変換して、hwimageで直接sofを使えばいいのですが、これは試していません.ここで説明があります.
http://www.altera.com.cn/support/kdb/solutions/rd10132010_126.html
最后に、JICファイルをダウンロードして、ハッハッハッ、NIOSは総合的に走り始めました.
2、HWとSWを一つのSOFファイルに合成する
実はquartusでは、XilinxのEDKのようにhwとswを同じbitstreamに合成することもできます.ただしSWはシート内で運転しなければならない.
NIOS IIは自分でbootloaderを書く必要はないことを知っています.NIOS IIはあなたに書いてあげましたが、指定されたFLASH Loaderからしか書けません.しかし、他のメモリLoader、例えばSDカードからbootloaderを書く場合は、bootloaderとsofを1つのファイルに合成することができます.
この方法では、SOPC Builderにepcs_を追加する必要はありません.コントローラモジュール;
CPUのresetアドレスとvectorをonchip_に設定mem;
generate以降、Quartusプロジェクトをすぐに再コンパイルする必要はありません.
Nios II IDEではsystem libraryのプログラムmemary(.text)などをonchip_mem;次の図を示します.
再build project.
このときNios II IDEは自動的にonchip_を作成しますmemory初期化ファイルonchip_memory.Hexは、SOPC Builderシステムファイル(.ptf)と同じフォルダに保存されます.
そしてQuartusプロジェクトを再コンパイルすると自動的にonchip_memory.Hexコンテンツはsofファイルとpofファイルに含まれます.
そしてQuartus ProgrammerでPOFをASモードでダウンロードすればいいです.再び電源を入れなおすと、NIOSを見つけて走り出した.
締めくくり:
NIOSで問題が発生してもうまく解決できず、コンソールから出力された情報で問題の所在を判定するのが難しい問題もあり、さらにコンパイル時間が長いこともテストの時間を増やした.もちろん、ソフトウェアバグもありますが、タイミングの問題もあります.例えば、sopc builderを修正すると、総合的な結果が異なります.warringも違います.例えば、quartus 10.0でniosがonchip_にいます.memoryは100 M、SDRAM 140 Mまで走ることができますが、sdramで運転した後、RUNでveriflyエラーを提示し、NIOSは運転できません.90 M 100 Mに変更すればいいです.だから、warringに対する理解を身につけて、新しい解決方法もとても良くて、きっと時間は限られていて、目的が達成すれば、OKで、あなたは言います.