技術コラム

XyloniボードへのSapphire SoC実装とファームウエア開発プロジェクトの構築

作成者:mou-mou

まず、XyloniボードでEfinixの開発環境などを学ぶ場合、Xyloni Resource Centerにあるチュートリアルであったり、GitHubに置かれているサンプルデザインをもとに進めていくことになると思います。

ただ、GitHubに置かれているプロジェクトは、OpalSoCを使用していて、かつSDKのチュートリアルはあるが、SoCをハードウエアに組み込む部分に関しての説明が見当たりません。また、ROM化してデバイスへ書き込む方法についてはチュートリアルにはありません。マニュアルには記載がありますが、正直な感想としては、少しわかりにくいと思います。

そこで、Xyloniボードにおいて

  • Sapphire SoC の 実装
  • RISC-V SDKでのプロジェクト作成、ビルド、デバッグ
  • ROM化してXyloniボードのFlashROMへの書き込み

の手順をご紹介いたします。

前提として、以下の記事の内容を実践して開発環境が整っていることを前提とします。

また、Sapphire SoCのIP生成においてJavaが必要となります。Efinityのユーザーガイドやインストールユーザーガイドでは OpenJDK 16 などが記載されておりますが、OpenJDK 18.0.1.1で正常に動作しております。もしJavaが入っていない場合は、

を参考に環境構築を行ってください。

RISC-V SDKを取得していない場合は、

を参考に事前に環境構築を行ってください。

Sapphire SoC の 実装

まずは、以下の手順でSapphire SoCが実装されたXyloniボード用のプロジェクトを作っていきます。

  • Xyloniボードに搭載されているTRION T8F81C2のプロジェクトを生成
  • Sapphire SoCのIP生成およびサンプルコードの生成
  • サンプルコードからのTOP層のソースコードおよび制約ファイルの取り込み
  • TOP層のソースコードの修正
  • Xyloni Resource Centerに掲載されているGitHubに置かれているサンプルデザイン(soc_Opal)からインタフェースに関するファイルを取り込む
  • Interface Designerで設定を修正変更
  • コンパイル
  • Fhash ROMへの書き込み
Sapphire SoC の 実装
Sapphire SoC の 実装
Xyloniボードに搭載されているTRION T8F81C2のプロジェクトを生成
Chapter 1

Xyloniボードに搭載されている
TRION T8F81C2のプロジェクトを生成
Efinityを起動します
プロジェクトを作成します
プロジェクト名とロケーションを入力して、デバイスを選択
OKボタンをクリック
プロジェクトが作成されました
Sapphire SoCのIP生成およびサンプルコードの生成
Chapter 2

Sapphire SoCのIP生成および
サンプルコードの生成
IP > New IPをクリック
IPカタログが開きます
リストを開いていき、Sapphire SoCを選択してNextボタンをクリック
周波数は25MHzに設定、T8デバイスはメモリブロックが少ないのでキャッシュは使用しません
外部メモリはXyloniにはないのでAXI3はDisableにし、OnChipRAMはデフォルトのまま4KBとします
Target OpenOCDはXyloniを選択
UARTはデフォルトのままにします
xyloniはFlashとSDカードの2CHのSPIを使用するのでSPI1をEnableにします。
I2Cはディフォルトのままにします
GPIO0は16bitにします
今回はAPB Slave0をDisableにします
AXI SlaveもDisableにします
User InterruptもDisableにします
User Timerは使用頻度が高いと思いますのでEnableにします
Base AddressはデフォルトのままAUTOにしておきます
TitaniumのExample Designは不要なのでチェックをはずします
モジュールネームを入力
Generateボタンをクリック
Generateボタンをクリック
IP生成が成功しましたのでOKボタンをクリック(Javaが入っていないとここでエラーが発生)
SapphireSoCのIPがプロジェクトツリーに組み込まれています
サンプルコードからのTOP層のソースコードおよび制約ファイルの取り込み
Chapter 3

サンプルコードからのTOP層のソースコード
および制約ファイルの取り込み
デザインファイルを追加します
ブラウザが開きます
先ほど生成したExample designからtop_soc.vを選択してCopy to Projectで開きます
制約ファイルを追加します
ブラウザが開くので、同じくExample designから制約ファイルを選択してCopy to Projectで開きます
topデザインと制約ファイルがプロジェクトツリーに組み込まれました
Synthesisボタンをクリックしてコンパイル
アサインできていないピンの指摘以外はコンパイル成功
TOP層のソースコードの修正
Chapter 4

TOP層のソースコードの修正
top_soc.vを開く
spi1のポート定義を追加します(spi_0からコピペしてspi_1に変更)
memoryCheckerPassは不要です
削除します
socのspi_1は接続されていません
spi_1をポートと接続します(spi_0からコピペしてspi_1に変更)
top_socの変更はここまでなので保存します
コンパイルしてみます
ピンの未接続以外は特にエラーはありません
ここまでで一度Efinityを終了します
サンプルデザイン(soc_Opal)からインタフェース定義ファイルを取り込む
Chapter 5

サンプルデザイン(soc_Opal)から
インタフェース定義ファイルを取り込む
ピン設定などをすべて入力するのは手間なのでXyloniのExample designからで設定ファイルを取得します
Go to GitHubをクリック(すでにダウンロード済みの場合は不要です)
CodeからZIPファイルをダウンロードします
ダウンロードしたファイルを開きます
フォルダを選択していき、soc_opalSoc.reri.xmlをxyloni_sapphireのフォルダへコピーします
soc_opalSoc.peri.xmlがコピーできました
ファイル名を変更します
プロジェクトファイルを同じファイル名に変更します(.peri.xmlはそのまま)
Interface Designerで設定を修正変更
Chapter 6

Interface Designerで設定を修正変更
再びEfinityを起動してプロジェクトを開きます
インタフェースデザイナを開きます
GPIO Resource Assignerを開きます
gpioはbit0とbit1しか割り込みを受け付けない為、スイッチとLEDのピンを入れ替えます
gpioのbit0をB3からC9に変更します
C9はgpio bit15で使用されているとメッセージが出ますがスワップが目的なのでOK
bit15はピンがアサインされていない状態になっています
元bit0にアサインされていたB3をbit15にアサインします
GPIOのピンスワップは完了
GPIO Resource Assignerを閉じます
PLLの設定を変更していきます
何故かxyloni Opalの設定ではVCOの設定値が異常です(500MHz~1200MHzの範囲にしなければなりません)
Pin NameとVCOのMul/Div設定を変えていきます
Post DivとOutput Clock 0の設定を変更していきます
Post divを1、Output divを32にすることでClock0は25MHz出力となります
ピン名をtop_soc.vに合わせていきます
io_astncResetの末尾にnを追加します
check designを行います
問題がなければ 0 issueとなります(この時点で変更内容は保存されます)
コンパイルおよびFhash ROMへの書き込み
Chapter 7

コンパイルおよびFhash ROMへの書き込み
Efinityに戻ってSynthesisボタンをクリックしてコンパイル
特にエラーは表示されていません
未接続ピンは0になりました(Missing Interfase Pinsは5で問題ありません)
プログラマを開きます
イメージファイルを選択します
Flash ROMに書き込むのでhexファイルを選択します
SPI Activeモードを選択します
書き込みを実行します
書き込み成功です
ご閲覧ありがとございました
ご閲覧ありがとございました
previous arrow
next arrow
 
Sapphire SoC の 実装
Xyloniボードに搭載されているTRION T8F81C2のプロジェクトを生成
Efinityを起動します
プロジェクトを作成します
プロジェクト名とロケーションを入力して、デバイスを選択
OKボタンをクリック
プロジェクトが作成されました
Sapphire SoCのIP生成およびサンプルコードの生成
IP > New IPをクリック
IPカタログが開きます
リストを開いていき、Sapphire SoCを選択してNextボタンをクリック
周波数は25MHzに設定、T8デバイスはメモリブロックが少ないのでキャッシュは使用しません
外部メモリはXyloniにはないのでAXI3はDisableにし、OnChipRAMはデフォルトのまま4KBとします
Target OpenOCDはXyloniを選択
UARTはデフォルトのままにします
xyloniはFlashとSDカードの2CHのSPIを使用するのでSPI1をEnableにします。
I2Cはディフォルトのままにします
GPIO0は16bitにします
今回はAPB Slave0をDisableにします
AXI SlaveもDisableにします
User InterruptもDisableにします
User Timerは使用頻度が高いと思いますのでEnableにします
Base AddressはデフォルトのままAUTOにしておきます
TitaniumのExample Designは不要なのでチェックをはずします
モジュールネームを入力
Generateボタンをクリック
Generateボタンをクリック
IP生成が成功しましたのでOKボタンをクリック(Javaが入っていないとここでエラーが発生)
SapphireSoCのIPがプロジェクトツリーに組み込まれています
サンプルコードからのTOP層のソースコードおよび制約ファイルの取り込み
デザインファイルを追加します
ブラウザが開きます
先ほど生成したExample designからtop_soc.vを選択してCopy to Projectで開きます
制約ファイルを追加します
ブラウザが開くので、同じくExample designから制約ファイルを選択してCopy to Projectで開きます
topデザインと制約ファイルがプロジェクトツリーに組み込まれました
Synthesisボタンをクリックしてコンパイル
アサインできていないピンの指摘以外はコンパイル成功
TOP層のソースコードの修正
top_soc.vを開く
spi1のポート定義を追加します(spi_0からコピペしてspi_1に変更)
memoryCheckerPassは不要です
削除します
socのspi_1は接続されていません
spi_1をポートと接続します(spi_0からコピペしてspi_1に変更)
top_socの変更はここまでなので保存します
コンパイルしてみます
ピンの未接続以外は特にエラーはありません
ここまでで一度Efinityを終了します
サンプルデザイン(soc_Opal)からインタフェース定義ファイルを取り込む
ピン設定などをすべて入力するのは手間なのでXyloniのExample designからで設定ファイルを取得します
Go to GitHubをクリック(すでにダウンロード済みの場合は不要です)
CodeからZIPファイルをダウンロードします
ダウンロードしたファイルを開きます
フォルダを選択していき、soc_opalSoc.reri.xmlをxyloni_sapphireのフォルダへコピーします
soc_opalSoc.peri.xmlがコピーできました
ファイル名を変更します
プロジェクトファイルを同じファイル名に変更します(.peri.xmlはそのまま)
Interface Designerで設定を修正変更
再びEfinityを起動してプロジェクトを開きます
インタフェースデザイナを開きます
GPIO Resource Assignerを開きます
gpioはbit0とbit1しか割り込みを受け付けない為、スイッチとLEDのピンを入れ替えます
gpioのbit0をB3からC9に変更します
C9はgpio bit15で使用されているとメッセージが出ますがスワップが目的なのでOK
bit15はピンがアサインされていない状態になっています
元bit0にアサインされていたB3をbit15にアサインします
GPIOのピンスワップは完了
GPIO Resource Assignerを閉じます
PLLの設定を変更していきます
何故かxyloni Opalの設定ではVCOの設定値が異常です(500MHz~1200MHzの範囲にしなければなりません)
Pin NameとVCOのMul/Div設定を変えていきます
Post DivとOutput Clock 0の設定を変更していきます
Post divを1、Output divを32にすることでClock0は25MHz出力となります
ピン名をtop_soc.vに合わせていきます
io_astncResetの末尾にnを追加します
check designを行います
問題がなければ 0 issueとなります(この時点で変更内容は保存されます)
コンパイルおよびFhash ROMへの書き込み
Efinityに戻ってSynthesisボタンをクリックしてコンパイル
特にエラーは表示されていません
未接続ピンは0になりました(Missing Interfase Pinsは5で問題ありません)
プログラマを開きます
イメージファイルを選択します
Flash ROMに書き込むのでhexファイルを選択します
SPI Activeモードを選択します
書き込みを実行します
書き込み成功です
ご閲覧ありがとございました
previous arrow
next arrow

RISC-V SDKでのプロジェクト作成、ビルド、デバッグ

次に、以下の手順でRISC-V SDKのプロジェクトを作成して、ビルドおよびデバッグ環境を構築します。ここでは、Sapphire SoCを生成したときに、自動で生成されるデモソースのうちuartEchoDemoを使用して作業をすすめていきます。

  • RISC-V SDKを起動してワークスペースをつくる
  • uartEchoDemoのプロジェクトを生成してビルドする
  • RUN/DEBUGの設定を行う
  • RUNでuartEchoDemoを実行する
  • Debug用の環境変数を設定してDEBUG実行する
RISC-V SDK プロジェクト作成、ビルド、デバッグ
RISC-V SDK
プロジェクト作成、ビルド、デバッグ
RISC-V SDKを起動してワークスペースをつくる
Chapter 1

RISC-V SDKを起動してワークスペースをつくる
コマンドプロンプトを起動します
SDK_Windowsのフォルダに移動します
run_eclipse.batを実行します
SOCの選択メニューが出力されます
1.SapphireSoCを選択します
Eclipse IDE Lancherが起動します
Workspace Directory はEmbedded_sw\SapphireSoCを選択します
Launchボタンをクリックします
Eclipse(RISC-V SDK) が起動しました
uartEchoDemoのプロジェクトを生成してビルドする
Chapter 2

uartEchoDemoのプロジェクトを
生成してビルドする
Welcomeは不要なので閉じます
Create a new Makefile … をクリックします
New Projject ウインドが開くので、Browseボタンをクリックします
uartEchoDemoフォルダを選択します
Project NameにuartEchoDemoと入力してFinishボタンをクリック(Location選択時に自動的にProject Nameが入力される場合がある)
uartEchoDemoプロジェクトが出来ました
uartEchoDemoの中にはsecとmakefileがあります
srcの中にはmain.cがあります
Importを選択します
C/C++ Project Settingを選択します
Browseボタンをクリックする
project_settings_soc.xmlを開く
Select settings to importにインクルードパスとシンボルが入っていることを確認してFinishボタンをクリック
includeがプロジェクトに追加されています
クリーンプロジェクト実行します
成功しました
ビルドプロジェクトを実行します
成功しました
RUN/DEBUGの設定を行う
Chapter 3

RUN/DEBUGの設定を行う
Importを選択します
Launch Configrationを選択
Browseボタンをクリック
configフォルダを選択
configのチェックボックスをチェックします
3種類のLaunchがチェックされています
default.launch以外のチェックボックスは外してから、Finishボタンをクリック
Run AsからRun Configrationsをクリックします
Run Configrationsウインドが開きます
GDB OpenOCD Debuggingのdefaultをクリック
Project選択のBrowserボタンをクリック
uartEchoDemoが選択されているのでOKボタンをクリック
C/C++ Application選択のBrowserボタンをクリック
uartEchoDemo\buildにあるelfファイルを開きます
Debuggerタブに切り替えます
ここではConfig optionsを修正する必要があります
cpu0.yamlのパスをフルパスでかつ、パス区切り文字は¥¥に書き換えます
Applyボタンをクリックします
RUNでuartEchoDemoを実行する
Chapter 4

RUNでuartEchoDemoを実行する
Runボタンをクリックしてプログラムを実行します
OpenOCDが起動しています
プログラムは実行されている状態です
デバイスマネージャでUSB Serial Portを確認します
XyloniのFT4232Hのうち1chのみFTDIのVCPのままでCOMポートして存在します
Terminalを起動します
Serial Terminalを選択します
先ほど確認したFTDIのCOMポートを選択します
他の設定はディフォルト(115200-8-N-1)のままでOKボタンをクリック
Terminalが下部のウインドに起動しています
キーボードから1を入力すると、echo character:1と出力されます
キーボードから2を入力すると、echo character:2と出力されます
キーボードから3を入力すると、echo character:3と出力されます
一旦Terminalをクローズします
Open OCD Debuggingを終了します
Debug用の環境変数を設定してDEBUG実行する
Chapter 5

Debug用の環境変数を設定してDEBUG実行する
Windows から Preferencesを選択
C/C++ Build のEnvironmentで環境変数を追加します
変数名 DEBUG 値は noで追加する
もう一つ環境変数を追加します
変数名 DEBUG_OG 値は noで追加する
Apply and Closeボタンをクリックする
プロジェクト(uartEchoDemo)のPropertyを開く
C/C++ BuildのEnvironmentを開く
DEBUGを選択します
Editボタンをクリック
値をyesに設定
DEBUG_OGを選択します
Editボタンをクリック
最適化オプションをデバッグに対して最適化します(ステップ実行などしなければnoのままで良い)
Apply and Closeボタンをクリックする
クリーンプロジェクト実行します
成功しました
ビルドプロジェクトを実行します
成功しました
Debug AsからDebug configurationsを選択
Debugボタンをクリックしてデバッグ開始します
Switchボタンをクリックすることで、Perspectiveをdebugに切り替えます
main関数の先頭でBreakがかかります
Terminalを起動します
設定はそのままでOKボタンをクリックします
52行目にBreak Pointを設定する為、ダブルクリックします
ブレークポイントのマークがつきます
Resumeアイコンをクリック
プログラムが実行されCOM10にメッセージが出力されます
Terminalからaを入力するとブレークがかかり、Variableウインドを見るとdatに’a’が入っていることを確認できます
Resumeアイコンをクリック
echo character:aとTerminalに出力されます
Terminalを終了します
Open OCD Debuggingを終了します
Open OCD Debuggingが終了しました
ご閲覧ありがとございました
ご閲覧ありがとございました
previous arrow
next arrow
 
RISC-V SDK プロジェクト作成、ビルド、デバッグ
RISC-V SDKを起動してワークスペースをつくる
コマンドプロンプトを起動します
SDK_Windowsのフォルダに移動します
run_eclipse.batを実行します
SOCの選択メニューが出力されます
1.SapphireSoCを選択します
Eclipse IDE Lancherが起動します
Workspace Directory はEmbedded_sw\SapphireSoCを選択します
Launchボタンをクリックします
Eclipse(RISC-V SDK) が起動しました
uartEchoDemoのプロジェクトを生成してビルドする
Welcomeは不要なので閉じます
Create a new Makefile ... をクリックします
New Projject ウインドが開くので、Browseボタンをクリックします
uartEchoDemoフォルダを選択します
Project NameにuartEchoDemoと入力してFinishボタンをクリック(Location選択時に自動的にProject Nameが入力される場合がある)
uartEchoDemoプロジェクトが出来ました
uartEchoDemoの中にはsecとmakefileがあります
srcの中にはmain.cがあります
Importを選択します
C/C++ Project Settingを選択します
Browseボタンをクリックする
project_settings_soc.xmlを開く
Select settings to importにインクルードパスとシンボルが入っていることを確認してFinishボタンをクリック
includeがプロジェクトに追加されています
クリーンプロジェクト実行します
成功しました
ビルドプロジェクトを実行します
成功しました
RUN/DEBUGの設定を行う
Importを選択します
Launch Configrationを選択
Browseボタンをクリック
configフォルダを選択
configのチェックボックスをチェックします
3種類のLaunchがチェックされています
default.launch以外のチェックボックスは外してから、Finishボタンをクリック
Run AsからRun Configrationsをクリックします
Run Configrationsウインドが開きます
GDB OpenOCD Debuggingのdefaultをクリック
Project選択のBrowserボタンをクリック
uartEchoDemoが選択されているのでOKボタンをクリック
C/C++ Application選択のBrowserボタンをクリック
uartEchoDemo\buildにあるelfファイルを開きます
Debuggerタブに切り替えます
ここではConfig optionsを修正する必要があります
cpu0.yamlのパスをフルパスでかつ、パス区切り文字は¥¥に書き換えます
Applyボタンをクリックします
RUNでuartEchoDemoを実行する
Runボタンをクリックしてプログラムを実行します
OpenOCDが起動しています
プログラムは実行されている状態です
デバイスマネージャでUSB Serial Portを確認します
XyloniのFT4232Hのうち1chのみFTDIのVCPのままでCOMポートして存在します
Terminalを起動します
Serial Terminalを選択します
先ほど確認したFTDIのCOMポートを選択します
他の設定はディフォルト(115200-8-N-1)のままでOKボタンをクリック
Terminalが下部のウインドに起動しています
キーボードから1を入力すると、echo character:1と出力されます
キーボードから2を入力すると、echo character:2と出力されます
キーボードから3を入力すると、echo character:3と出力されます
一旦Terminalをクローズします
Open OCD Debuggingを終了します
Debug用の環境変数を設定してDEBUG実行する
Windows から Preferencesを選択
C/C++ Build のEnvironmentで環境変数を追加します
変数名 DEBUG 値は noで追加する
もう一つ環境変数を追加します
変数名 DEBUG_OG 値は noで追加する
Apply and Closeボタンをクリックする
プロジェクト(uartEchoDemo)のPropertyを開く
C/C++ BuildのEnvironmentを開く
DEBUGを選択します
Editボタンをクリック
値をyesに設定
DEBUG_OGを選択します
Editボタンをクリック
最適化オプションをデバッグに対して最適化します(ステップ実行などしなければnoのままで良い)
Apply and Closeボタンをクリックする
クリーンプロジェクト実行します
成功しました
ビルドプロジェクトを実行します
成功しました
Debug AsからDebug configurationsを選択
Debugボタンをクリックしてデバッグ開始します
Switchボタンをクリックすることで、Perspectiveをdebugに切り替えます
main関数の先頭でBreakがかかります
Terminalを起動します
設定はそのままでOKボタンをクリックします
52行目にBreak Pointを設定する為、ダブルクリックします
ブレークポイントのマークがつきます
Resumeアイコンをクリック
プログラムが実行されCOM10にメッセージが出力されます
Terminalからaを入力するとブレークがかかり、Variableウインドを見るとdatに'a'が入っていることを確認できます
Resumeアイコンをクリック
echo character:aとTerminalに出力されます
Terminalを終了します
Open OCD Debuggingを終了します
Open OCD Debuggingが終了しました
ご閲覧ありがとございました
previous arrow
next arrow

Configuration Flash ROMデータ生成

  • Debug用の環境変数を設定してリビルドする
  • ファームウエアを結合したFlash ROM書き込みデータをコンパイルする
  • Configuration Flashへ書き込み動作を確認する
Configuration Flash ROMデータ生成
Configuration Flash ROM
データ生成
Debug用の環境変数を設定してリビルドする
Chapter 1

Debug用の環境変数を設定してリビルドする
PerspectiveをC/C++に切り替えます
プロジェクト(uartEchoDemo)のPropertyを開く
C/C++ BuildのEnvironmentを開き、DEBUGを選択してEditボタンをクリックします
値をnoに設定
DEBUG_OGを選択してEditボタンをクリックします
値をnoに設定
Apply and Closeボタンをクリックする
クリーンプロジェクト実行します
成功しました
ビルドプロジェクトを実行します
成功しました
ファームウエアを結合したFlash ROM書き込みデータをコンパイルする
Chapter 2

ファームウエアを結合したFlash ROM
書き込みデータをコンパイルする
コマンドプロンプトを起動して、setup.batを実行します
SapphireSoC\toolフォルダへ移動します
bandicam2022-08-0214-02-20-637
binGen.pyを実行します(-bはバイナリ, ファイルはビルドしたbin[フルパスor ..\software\と相対でも可]、-sはサイズ[4Kバイト->4096])
結合用のbinファイルの生成は成功しました
エクスプローラでtoolフォルダをみてみると、binGen.pyとromフォルダがあります
romフォルダには生成したbinファイルが4個あります
binファイルをコピーします
EfinityのプロジェクトのTOPフォルダを開きます
コピーしたbinファイルを貼り付けます
binファイルは、xyloni_sapphireのフォルダに置かれました
EfinityでSynthesisボタンをクリックしてコンパイル
コンパイルは成功しました
Configuration Flashへ書き込み、動作を確認する
Chapter 3

Configuration Flashへ書き込み
動作を確認する
プログラマを開きます
イメージファイルを選択します
Flash ROMに書き込むのでhexファイルを選択します
SPI Activeモードを選択します
書き込みを実行します
書き込み成功です
今回はSDKでなくTera Termで動作確認してみます
COM10で接続します
Serial Portの設定は115200-8-n-1にします
XyloniのCRSTスイッチを押すとReconfigされてuart echo demoが起動したことがわかります
キーボードから1を入力すると、echo character:1と出力されます
キーボードから2を入力すると、echo character:2と出力されます
キーボードから3を入力すると、echo character:3と出力されます
ご閲覧ありがとございました
ご閲覧ありがとございました
previous arrow
next arrow
 
Configuration Flash ROMデータ生成
Debug用の環境変数を設定してリビルドする
PerspectiveをC/C++に切り替えます
プロジェクト(uartEchoDemo)のPropertyを開く
C/C++ BuildのEnvironmentを開き、DEBUGを選択してEditボタンをクリックします
値をnoに設定
DEBUG_OGを選択してEditボタンをクリックします
値をnoに設定
Apply and Closeボタンをクリックする
クリーンプロジェクト実行します
成功しました
ビルドプロジェクトを実行します
成功しました
ファームウエアを結合したFlash ROM書き込みデータをコンパイルする
コマンドプロンプトを起動して、setup.batを実行します
SapphireSoC\toolフォルダへ移動します
bandicam2022-08-0214-02-20-637
binGen.pyを実行します(-bはバイナリ,  ファイルはビルドしたbin[フルパスor ..\software\と相対でも可]、-sはサイズ[4Kバイト->4096])
結合用のbinファイルの生成は成功しました
エクスプローラでtoolフォルダをみてみると、binGen.pyとromフォルダがあります
romフォルダには生成したbinファイルが4個あります
binファイルをコピーします
EfinityのプロジェクトのTOPフォルダを開きます
コピーしたbinファイルを貼り付けます
binファイルは、xyloni_sapphireのフォルダに置かれました
EfinityでSynthesisボタンをクリックしてコンパイル
コンパイルは成功しました
Configuration Flashへ書き込み、動作を確認する
プログラマを開きます
イメージファイルを選択します
Flash ROMに書き込むのでhexファイルを選択します
SPI Activeモードを選択します
書き込みを実行します
書き込み成功です
今回はSDKでなくTera Termで動作確認してみます
COM10で接続します
Serial Portの設定は115200-8-n-1にします
XyloniのCRSTスイッチを押すとReconfigされてuart echo demoが起動したことがわかります
キーボードから1を入力すると、echo character:1と出力されます
キーボードから2を入力すると、echo character:2と出力されます
キーボードから3を入力すると、echo character:3と出力されます
ご閲覧ありがとございました
previous arrow
next arrow

トラックバックURL

URL:https://rightxlight.co.jp/technical/xyloni-sapphire-soc/trackback/

よく読まれている記事はこちら

ソフトウェアからハードウェアまで、
まずはお気軽にご相談下さい。

お電話はこちら

お電話はこちら 06-6309-7782

受付時間:9:00~18:00(土日祝は除く)

メールフォームからはこちら

お問い合わせお問い合わせ

Copyright (C) Since 2011 RIGHTxLIGHT Co., Ltd. All Rights Reserved.

PAGE TOP