Merge pull request #3372 from miyazakh/Renesas_APRA6M

added set up guide for APRA6M board
This commit is contained in:
Chris Conlon
2020-10-12 14:23:06 -06:00
committed by GitHub
10 changed files with 496 additions and 89 deletions

View File

@@ -4,7 +4,7 @@ wolfSSL for Renesas RA Evaluation Kit (EK-RA6M3G)
## Description ## Description
This directory contains e2studio projects targeted at the Renesas RA 32-bit MCUs.\ This directory contains e2studio projects targeted at the Renesas RA 32-bit MCUs.\
The example projects include a wolfSSL TLS 1.2 client and server.\ The example projects include a wolfSSL TLS client and server.\
They also include benchmark and cryptography tests for the wolfCrypt library. They also include benchmark and cryptography tests for the wolfCrypt library.
The wolfssl project contains both the wolfSSL and wolfCrypt libraries.\ The wolfssl project contains both the wolfSSL and wolfCrypt libraries.\
@@ -15,28 +15,31 @@ The other projects (benchmark, client, server and test) are built as a\
`Renesas RA C Project Using RA Library`, where the RA library is the wolfssl project.\ `Renesas RA C Project Using RA Library`, where the RA library is the wolfssl project.\
The wolfssl Project Summary is listed below and is relevant for every project. The wolfssl Project Summary is listed below and is relevant for every project.
#### Project Summary ### Project Summary
|Item|Name/Version|
|:--|:--|
|Board|EK-RA6M3G|
|Device|R7FA6M3AH3CFC|
|Toolchain|GCC ARM Embedded|
|FSP Version|0.8.0|
`Board: EK-RA6M3G`\ #### Selected software components
`Device: R7FA6M3AH3CFC`\
`Toolchain: GCC ARM Embedded`\
`FSP Version: 0.8.0`
##### Selected software components |Components|Version|
|:--|:--|
`Board Support Package Common Files v0.8.0`\ |Board Support Package Common Files|v0.8.0`|
`Arm CMSIS Version 5 - Core (M) v5.5.1`\ |Arm CMSIS Version 5 - Core (M)|v5.5.1|
`Amazon FreeRTOS v0.8.0`\ |Amazon FreeRTOS|v0.8.0|
`RA6M3G-EK Board Support Files v0.8.0`\ |RA6M3G-EK Board Support Files|v0.8.0|
`Board support package for R7FA6M3AH3CFC v0.8.0`\ |Board support package for R7FA6M3AH3CFC|v0.8.0|
`Board support package for RA6M3 v0.8.0`\ |Board support package for RA6M3|v0.8.0|
`Board support package for RA6M3 v0.8.0`\ |Board support package for RA6M3|v0.8.0|
`Amazon FreeRTOS - Memory Management - Heap 4 v0.8.0`\ |Amazon FreeRTOS - Memory Management - Heap 4|v0.8.0|
`r_ether to FreeRTOS+TCP Wrapper v0.8.0`\ |r_ether to FreeRTOS+TCP Wrapper|v0.8.0|
`Ethernet v0.8.0`\ |Ethernet|v0.8.0|
`Ethernet PHY v0.8.0`\ |Ethernet PHY|v0.8.0|
`FreeRTOS+TCP v0.8.0`\ |FreeRTOS+TCP|v0.8.0|
`Amazon FreeRTOS - Buffer Allocation 2 v0.8.0` |Amazon FreeRTOS - Buffer Allocation 2|v0.8.0|
## Setup Steps ## Setup Steps
@@ -46,55 +49,64 @@ These files can be generated when creating a new Renesas RA Project.\
The following steps explain how to generate the missing files and where to place them. The following steps explain how to generate the missing files and where to place them.
1.) Create a 'dummy' Renesas RA C Library Project. 1.) Create a 'dummy' Renesas RA C Library Project.
+ Click File->New->`RA C/C++ Project`
+ Click `Renesas RA C Library Project`. Click Next + Click File->New->`RA C/C++ Project`
+ Enter `dummy_library` as the project name. Click Next. + Click `Renesas RA C Library Project`. Click Next
+ Under `Board: Custom User Board`, select `EK-RA6M3G`. + Enter `dummy_library` as the project name. Click Next.
+ Under `RTOS: No RTOS`, select `Amazon FreeRTOS`. + Under `Board: Custom User Board`, select `EK-RA6M3G`.
+ Click Next. Select `Amazon FreeRTOS - Minimal - Static Allocation` + Under `RTOS: No RTOS`, select `Amazon FreeRTOS`.
+ Click Finish. + Click Next. Select `Amazon FreeRTOS - Minimal - Static Allocation`
+ Click Finish.
2.) Create a 'dummy' Renesas RA C Project Using RA Library. 2.) Create a 'dummy' Renesas RA C Project Using RA Library.
+ Click File->New->`RA C/C++ Project`
+ Click `Renesas RA C Project Using RA Library`. Click Next + Click File->New->`RA C/C++ Project`
+ Enter `dummy_app` as the project name. Click Next. + Click `Renesas RA C Project Using RA Library`. Click Next
+ Under `RA library project`, select `dummy_library`. + Enter `dummy_app` as the project name. Click Next.
+ Click Finish. + Under `RA library project`, select `dummy_library`.
+ Click Finish.
3.) Import all the wolfSSL Projects into e2studio workspace. 3.) Import all the wolfSSL Projects into e2studio workspace.
+ Click File->`Open Projects from File System`
+ Click `Directory...` to the right of Import source + Click File->`Open Projects from File System`
+ Select the RA6M3G folder location that contains the projects\ + Click `Directory...` to the right of Import source
example path: wolfssl/IDE/Renesas/e2studio/RA6M3 + Select the RA6M3G folder location that contains the projects\
+ Deselect the Non-Eclipse project, RA6M3G, by clicking the checkbox\ example path: wolfssl/IDE/Renesas/e2studio/RA6M3
Only the folders with 'Eclipse project' under 'Import as' need to be selected. + Deselect the Non-Eclipse project, RA6M3G, by clicking the checkbox\
+ Click Finish. Only the folders with 'Eclipse project' under 'Import as' need to be selected.
+ Click Finish.
4.) Copy files from `dummy_library` into `wolfSSL_RA6M3G` 4.) Copy files from `dummy_library` into `wolfSSL_RA6M3G`
+ Expand the dummy_library and wolfSSL_RA6M3G projects\
(Click the drop-down arrow to the left of the project name.) + Expand the dummy_library and wolfSSL_RA6M3G projects\
+ Select and Copy the following folders/files inside dummy_library\ (Click the drop-down arrow to the left of the project name.)
` ra/`\ + Select and Copy the following folders/files inside dummy_library\
` ra_gen/`\
` ra_cfg/`\ `ra/`\
` script/`\ `ra_gen/`\
` R7FA6M3AH3CFC.pincfg`\ `ra_cfg/`\
` RA6M3G-EK.pingcfg` `script/`\
+ Paste the copied folders/files into wolfSSL_RA6M3G `R7FA6M3AH3CFC.pincfg`\
+ The `dummy_library` project can now be deleted. `RA6M3G-EK.pingcfg`
+ Generate Project Content.
+ Click `Open RA Configuration` in the top bar (Grey Settings Cog) + Paste the copied folders/files into wolfSSL_RA6M3G
+ Click `Generate Project Content` at top right (Green Icon) + The `dummy_library` project can now be deleted.
+ Build wolfSSL_RA6M3G. + Generate Project Content.
+ Click `Open RA Configuration` in the top bar (Grey Settings Cog)
+ Click `Generate Project Content` at top right (Green Icon)
+ Build wolfSSL_RA6M3G.
5.) Copy files from `dummy_app` into `./IDE/Renesas/e2studio/RA6M3/common/ra6m3g/`\ 5.) Copy files from `dummy_app` into `./IDE/Renesas/e2studio/RA6M3/common/ra6m3g/`\
**NOTE:** This may need to be done outside of the e2studio environment (e.g. File Explorer). **NOTE:** This may need to be done outside of the e2studio environment (e.g. File Explorer).
+ Select and Copy the followng folder inside dummy_app\
` src/`\ + Select and Copy the followng folder inside dummy_app\
` script/`
+ Paste the copied folders into `./IDE/Renesas/e2studio/RA6M3/common/ra6m3g/`\ `src/`\
` (The test, benchmark, client and server projects link to this folder.)` `script/`
+ The `dummy_app` project can now be deleted.
+ Paste the copied folders into `./IDE/Renesas/e2studio/RA6M3/common/ra6m3g/`\
`(The test, benchmark, client and server projects link to this folder.)`
+ The `dummy_app` project can now be deleted.
6.) Setup Network Environment 6.) Setup Network Environment
@@ -112,12 +124,14 @@ The following steps explain how to generate the missing files and where to place
Right-Click each Project and select Build. Right-Click each Project and select Build.
### Run wolfCrypt Test and Benchmark ### Run wolfCrypt Test and Benchmark
1.) Right-Click the Project name.\ 1.) Right-Click the Project name.\
2.) Select `Debug As` -> `Renesas GDB Hardware Debugging`\ 2.) Select `Debug As` -> `Renesas GDB Hardware Debugging`\
3.) Select J-Link ARM. Click OK.\ 3.) Select J-Link ARM. Click OK.\
4.) Select R7Fa6M3AH. Click OK. 4.) Select R7Fa6M3AH. Click OK.
### Run the wolfSSL TLS Server Example. ### Run the wolfSSL TLS Server Example.
1.) Right-Click the Project name.\ 1.) Right-Click the Project name.\
2.) Select `Debug As` -> `Renesas GDB Hardware Debugging`\ 2.) Select `Debug As` -> `Renesas GDB Hardware Debugging`\
3.) Select J-Link ARM. Click OK.\ 3.) Select J-Link ARM. Click OK.\
@@ -125,34 +139,35 @@ Right-Click each Project and select Build.
5.) Run the following wolfSSL example client command inside the base of the wolfssl directory. 5.) Run the following wolfSSL example client command inside the base of the wolfssl directory.
``` ```
./examples/client/client -h "ucIPAddress" -p 11111 -A ./certs/1024/ca-cert.pem ./examples/client/client -v 4 -h "ucIPAddress" -p 11111 -A ./certs/1024/ca-cert.pem
``` ```
**NOTE:** "ucIPAddress" is "192.168.1.241" by default. (See wolfssl_thread_entry.h) **NOTE:** "ucIPAddress" is "192.168.1.241" by default. (See wolfssl_thread_entry.h)
### Run the wolfSSL TLS Client Example. ### Run the wolfSSL TLS Client Example.
1.) Run the following wolfSSL example server command inside the base of the wolfssl directory. 1.) Run the following wolfSSL example server command inside the base of the wolfssl directory.
``` ```
./examples/server/server -b -d -p 11111 -c ./certs/1024/server-cert.pem -k ./certs/1024/server-key.pem ./examples/server/server -v 4 -b -d -p 11111 -c ./certs/1024/server-cert.pem -k ./certs/1024/server-key.pem
``` ```
**NOTE:** The port 11111 is the DEFAULT_PORT inside wolfssl_thread_entry.h.\
If DEFAULT_PORT was changed then the above command will need to match it. **NOTE:** The port 11111 is the DEFAULT_PORT inside wolfssl_thread_entry.h.\
2.) Right-Click the Project name.\ 2.) Right-Click the Project name.\
3.) Select `Debug As` -> `Renesas GDB Hardware Debugging`\ 3.) Select `Debug As` -> `Renesas GDB Hardware Debugging`\
4.) Select J-Link ARM. Click OK.\ 4.) Select J-Link ARM. Click OK.\
5.) Select R7Fa6M3AH. Click OK. 5.) Select R7Fa6M3AH. Click OK.
## Troubleshooting ## Troubleshooting
* The commands for the example client/server assumes it is being run from the + The commands for the example client/server assumes it is being run from the
base directory of wolfssl. base directory of wolfssl.
* Enter "#define DEBUG_WOLFSSL" inside user_settings.h or wolfssl_thread_entry.c\ + Enter "#define DEBUG_WOLFSSL" inside user_settings.h or wolfssl_thread_entry.c\
to enable wolfssl debug messages to the Renesas Virtual Debug Console. to enable wolfssl debug messages to the Renesas Virtual Debug Console.
* Some linking errors can be caused by the e2studio project files needing to be rebuilt and freshened. + Some linking errors can be caused by the e2studio project files needing to be rebuilt and freshened.
Right-Click a project, select Index, click Rebuild and then click Freshen Files. Repeat for each project. Right-Click a project, select Index, click Rebuild and then click Freshen Files. Repeat for each project.
[Support Forum](https://www.wolfssl.com/forums/) [Support Forum](https://www.wolfssl.com/forums/)

View File

@@ -0,0 +1,198 @@
wolfSSL for Alpha Project AP-RA6M-0A Setup Guide
=================================================
## Description
This directory contains e2studio projects targeted at the Alpha Project AP-RA6M-0A board including the Renesas RA 32-bit MCUs.
The example projects include a wolfSSL TLS client and server. They also include benchmark and cryptography tests for the wolfCrypt library.
The wolfssl project contains both the wolfSSL and wolfCrypt libraries. It is built as a `Renesas RA C Library Project` and contains the Renesas RA configuration.
The other projects (benchmark, client, server and test) are built as a `Renesas RA C Project Using RA Library`, where the RA library is the wolfssl project.
The wolfssl Project Summary is listed below and is relevant for every project.
### Project Summary
|Item|Name/Version|
|:--|:----|
|e2studio|2020-07|
|Board |AP-RA6M-0A |
|Device |R7FA6M3AH3CFC|
|Toolchain|GCC ARM Embedded
|FSP Version|1.3.0|
### Selected software components
|Component|Version|
|:--|:---|
|Board Support Package Common Files|v1.3.0|
|Arm CMSIS Version 5 - Core (M) |v5.7.0|
|Board support package for R7FA6M3AH3CFC |v1.3.0|
|Board support package for RA6M3|v1.3.0 |
|Board support package for RA6M3 - FSP Data|v1.3.0|
|FreeRTOS|v1.3.0|
|FreeRTOS - Buffer Allocation 2 |v1.3.0|
|FreeRTOS+TCP|v1.3.0|
|r_ether to FreeRTOS+TCP Wrapper|v1.3.0|
|Ethernet |v1.3.0 |
|Ethernet PHY|v1.3.0|
|I/O Port|v1.3.0 |
|BSP-Board|v1.2.0 |
## Setup Steps
The project directories are missing files necessary to build the project.\
These files can be generated when creating a new Renesas RA Project.\
The following steps explain how to generate the missing files and where to place them.
1.) Download Alpha project example program from [Alpha Project Home Page](https://www.apnet.co.jp/product/ra/ap-ra6m-0a.html)
+ Unzip the downloaded example project
2.) Create a 'dummy' Renesas RA C Library Project on e2studio
+ Click File->New->`RA C/C++ Project`
+ Enter `dummy_library` as the project name. Click Next.
+ Select `Board: Custom User Board`.
+ Select `R7FA6M3AH3CFC
+ Under `RTOS: No RTOS`, select `FreeRTOS`.
+ Click Next. Select `FreeRTOS - Minimal - Static Allocation`
+ Click `Renesas RA C Library Project`. Click Next
+ Click Finish.
3.) Create a 'dummy' Renesas RA C Project Using RA Library on e2studio
+ Click File->New->`RA C/C++ Project`
+ Enter `dummy_app` as the project name. Click Next.
+ Under `RA library project`, select `dummy_library`.
+ Click `Executable Using an RA Static Library`. Click Next
+ Click Finish.
+ Enter `dummy_app` as Project name
+ Select RA library project `dummy_library`
4.) Import all the wolfSSL Projects into e2studio workspace.
+ Click File->`Open Projects from File System`
+ Click `Directory...` to the right of Import source
+ Select the RA6M3G folder location that contains the projects
example path: wolfssl/IDE/Renesas/e2studio/RA6M3
+ Deselect the Non-Eclipse project, RA6M3G, by clicking the checkbox
Only the folders with 'Eclipse project' under 'Import as' need to be selected.
+ Click Finish.
5.) Copy files from `dummy_library` into `wolfSSL_RA6M3G`
+ Expand the dummy_library and wolfSSL_RA6M3G projects
(Click the drop-down arrow to the left of the project name.)
+ Select and Copy the following folders/files inside dummy_library
`ra/`
`ra_gen/`
`ra_cfg/`
`script/`
+ Paste the copied folders/files into wolfSSL_RA6M3G
+ The `dummy_library` project can now be deleted.
+ Copy `APRA6M0A.pincfg` from ap_ra6m_0a_sample\sample\ap_ra6m_0a_ether_sample to wolfSSL_RA6M3G
+ Delete `R7FA6M3AH3CFC.pincfg` from wolfSSL_RA6M3G
+ Generate Project Content.
+ Click `Open RA Configuration` in the top bar (Grey Settings Cog)
+ Go to `BSP` tab and import CMSIS pack file, AP.APRA6M0A.x.x.x.pack, from ap_ra6m_0a_sample\sample folder
+ Select APRA6M0A as Board
+ Go to `Pins` tab and select APRA6M0A.pincfg
+ Go to `Stacks` tab and add Heap 4 stack from New Stack(+ Icon)
+ Click `Generate Project Content` at top right (Green Icon)
+ Build wolfSSL_RA6M3G.
6.) Copy files from `dummy_app` into `./IDE/Renesas/e2studio/RA6M3/common/ra6m3g/`
**NOTE:** This may need to be done outside of the e2studio environment (e.g. File Explorer).
+ Select and Copy the followng folder inside dummy_app
`src/`
`script/`
+ Paste the copied folders into `./IDE/Renesas/e2studio/RA6M3/common/ra6m3g/`
`(The test, benchmark, client and server projects link to this folder.)`
+ The `dummy_app` project can now be deleted.
7.) Setup Network Environment
The client and server projects have defines inside their wolfssl_thread_entry.h.
These defines (ucIPAddress ... ucDNSServerAddress) may need to be changed
based on your internal network environment. The g_ether0_mac_address is the default
mac address found inside the RA configuration inside the wolfssl project.
The client wolfssl_thread_entry.h has defines (SERVER_IP and DEFAULT_PORT) that
will need to be changed based on the server you're trying to connect to over
the ethernet connection.
## Build and Run
### Build Each Project
Right-Click each Project and select Build.
### Run wolfCrypt Test and Benchmark
1.) Right-Click the Project name.
2.) Select `Debug As` -> `Renesas GDB Hardware Debugging`
3.) Select J-Link ARM. Click OK.
4.) Select R7Fa6M3AH. Click OK.
### Run the wolfSSL TLS Server Example.
1.) Right-Click the Project name.
2.) Select `Debug As` -> `Renesas GDB Hardware Debugging`
3.) Select J-Link ARM. Click OK.
4.) Select R7Fa6M3AH. Click OK.
5.) Run the following wolfSSL example client command inside the base of the wolfssl directory.
```
./examples/client/client -v 4 -h "ucIPAddress" -p 11111 -A ./certs/1024/ca-cert.pem
```
**NOTE:** "ucIPAddress" is "192.168.1.241" by default. (See wolfssl_thread_entry.h)
### Run the wolfSSL TLS Client Example.
1.) Run the following wolfSSL example server command inside the base of the wolfssl directory.
```
./examples/server/server -v 4 -b -d -p 11111 -c ./certs/1024/server-cert.pem -k ./certs/1024/server-key.pem
```
**NOTE:** The port 11111 is the DEFAULT_PORT inside wolfssl_thread_entry.h.
If DEFAULT_PORT was changed then the above command will need to match it.
2.) Right-Click the Project name.\
3.) Select `Debug As` -> `Renesas GDB Hardware Debugging`\
4.) Select J-Link ARM. Click OK.\
5.) Select R7Fa6M3AH. Click OK.
## Troubleshooting
+ The commands for the example client/server assumes it is being run from the
base directory of wolfssl.
+ Enter "#define DEBUG_WOLFSSL" inside user_settings.h or wolfssl_thread_entry.c
to enable wolfssl debug messages to the Renesas Virtual Debug Console.
+ Some linking errors can be caused by the e2studio project files needing to be rebuilt and freshened.
Right-Click a project, select Index, click Rebuild and then click Freshen Files. Repeat for each project.
[Support Forum](https://www.wolfssl.com/forums/)
Support Email: support@wolfssl.com
## Resources
[wolfSSL Website](https://www.wolfssl.com/)
[wolfSSL Wiki](https://github.com/wolfSSL/wolfssl/wiki)
[wolfSSL Manual](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-toc.html)
[wolfSSL API Reference](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-17-wolfssl-api-reference.html)
[wolfCrypt API Reference](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-18-wolfcrypt-api-reference.html)
[TLS 1.3](https://www.wolfssl.com/docs/tls13/)

View File

@@ -0,0 +1,197 @@
wolfSSL/AlphaProject AP-RA6M-0A ボードデモ セットアップガイド
=================================================
## はじめに
このフォルダにはルネサス社製 RA 32-bit MCU を搭載するアルファプロジェクト製 AP-RA6M-0A で wolfSSL を動作させるための手順です。
サンプルプログラムには、暗号テスト、ベンチマーク、及びクライアント・サーバーを含んでいます。
wolfSSL のプロジェクトファイルは、wolfSSL と wolfCrypt の両方で構成され、Renesas RA のコンフィグレーションを含む`Renesas RA C/C++ Library Project`としてビルドされます。
その他、ベンチマーク、暗号テスト、及びクライアント・サーバーのサンプルプログラムは、`Renesas RA C Project Using RA Library`としてビルドされます。
プロジェクトの概要と全ての関連するソフトウェアコンポーネントに関する情報を下記になります。
### プロジェクトの概要
|要素|名前/バージョン|
|:--|:--|
|e2studio|2020-07|
|Board|AP-RA6M-0A|
|Device|R7FA6M3AH3CFC|
|Toolchain|GCC ARM Embedded|
|FSP Version|1.3.0|
#### 必要なソフトウェアコンポーネント
|コンポーネント|バージョン|
|:--|:--|
|Board Support Package Common Files|v1.3.0|
|Arm CMSIS Version 5 - Core (M) |v5.7.0|
|Board support package for R7FA6M3AH3CFC |v1.3.0|
|Board support package for RA6M3|v1.3.0 |
|Board support package for RA6M3 - FSP Data|v1.3.0|
|FreeRTOS|v1.3.0|
|FreeRTOS - Buffer Allocation 2 |v1.3.0|
|FreeRTOS+TCP|v1.3.0|
|r_ether to FreeRTOS+TCP Wrapper|v1.3.0|
|Ethernet |v1.3.0 |
|Ethernet PHY|v1.3.0|
|I/O Port|v1.3.0 |
|BSP-Board|v1.2.0 |
## セットアップ手順
プロジェクトのフォルダーには、ビルドに必要なファイルが不足しています。そららのファイルをダミーのプロジェクトを作成し補います。
次に続くステップは、不足しているファイルを作成し、それらを必要としているプロジェクトにコピーする手順です。
1.) [アルファプロジェクト社のホームページ](https://www.apnet.co.jp/product/ra/ap-ra6m-0a.html)からサンプルプログラムをダウンロード
+ ダウンロードしたサンプルプログラムを適当なフォルダーへ解凍
2.) e2Studio で'ダミー' Renesas RA C Library プロジェクトを作成
+ ファイル→新規→`RA C/C++ Project`をクリック
+ `Renesas RA C/C++ Library Project`を選択し、次へをクリック
+ 'dummy_library` とプロジェクト名を入力します。
+ `Board:` ドロップダウンから `EK-RA6M3T`を選択します
+ `RTOS: No TROS` を `FreeRTOS` を選択します。
+ `Build Artifact Selection` の `Static Library`を選択し、次へをクリック
+ `FreeRTOS - Minimal - Static Allocation` を選択し、終了をクリック
3.) e2Studio で 'ダミー'の Renesas RA C/C++ Project Using RA Library を作成
+ ファイル→新規→`RA C/C++ Project`をクリック
+ `Renesas RA C/C++ Library Project`を選択し、次へをクリック
+ 'dummy_app` とプロジェクト名を入力します。
+ `Board:` ドロップダウンから `EK-RA6M3T`を選択します
+ `RTOS: No TROS``FreeRTOS` を選択しまし、次へをクリック
+ `Build Artifact Selection``Executable Using an RA Static Library`を選択し、終了をクリック
+ 'dummy_app` とプロジェクト名を入力し、次へクリック
+ `RA library project`の `Select RA Library`から, `dummy_library`を選択し、終了をクリック
4.) 全ての wolfSSL e2studio プロジェクトをインポート
+ メニューの「ファイル」→「ファイル・システムからプロジェクトを開く」をクリック
+ インポート元の `ディレクトリー...` をクリック
+ RA6M3 フォルダーを選択。wolfssl/IDE/Renesas/e2studio/RA6M3
+ Eclipseのプロジェクトではない、RA6M3を除外します。
その他、ベンチマーク、暗号テスト、クライアント・サーバーの各プロジェクトは選択しておく。
+ 終了をクリック
5.) `dummy_library`からwolfSSL_RA6M3Gへ必要なファイルをコピー
+ `dummy_library` と `wolfSSL_RA6M3G` プロジェクトを開く
プロジェクト名横にある矢印マークをクリック
+ `dummy_library` の以下のフォルダーとファイルを選択
`ra/`
`ra_gen/`
`ra_cfg/`
`script/`
+ 選択したフォルダーとファイルを `wolfSSL_RA6M3G`プロジェクトに貼り付け
+ `dummy_library`プロジェクトは削除しても構いません
+ `APRA6M0A.pincfg` を解凍した ap_ra6m_0a_sample\sample\ap_ra6m_0a_ether_sample から `wolfSSL_RA6M3G`プロジェクトへコピー
+ `wolfSSL_RA6M3G`フォルダー内の `R7FA6M3AH3CFC.pincfg` は削除します。
+ プロジェクトに必要なファイルを生成します。
+ `Open RA Configuration`(上部のアイコンバーにある灰色歯車ボタン)をクリック
+ `BSP` タブに移動し、CMSIS Pack のインポートボタンをクリック
+ インポート画面で、CMSIS pack ファイルを指定
ステップ 1で解凍したap_ra6m_0a_sample\sampleフォルダー中の AP.APRA6M0A.x.x.x.pack を指定します。
+ `APRA6M0A` を Board として指定
+ `Pins`タブに移動し、`APRA6M0A.pincfg`を選択
+ `Stacks`タブに移動し、Heap 4 stack を New Stack から追加
+ `Generate Project Content`(右上部にある緑色アイコン)をクリックし、ファイルを生成
+ `wolfSSL_RA6M3G`をビルド
6.) `dummy_app` から必要なファイルを`./IDE/Renesas/e2studio/RA6M3/common/ra6m3g/`へコピー
**NOTE:** この作業は、e2studio ではなく、Explorer などを使用します。
+ `dummy_app`の以下のフォルダーをコピー
`src/`
`script/`
+ 選択したフォルダーを`./IDE/Renesas/e2studio/RA6M3/common/ra6m3g/`へコピー
`(暗号テスト、ベンチマーク、クライアント・サーバーの各プロジェクトはこのフォルダーを参照)`
+ `dummy_app`プロジェクトは削除しても構いません
7.) ネットワーク環境について
クライアント・サーバーのプロジェクト内のwolfssl_thread_entry.hにネットワーク設定があります。
それらの設定ucIPAddress ... ucDNSServerAddress)は、ご使用のネットワーク環境に合わせて変更して
してください。g_ether0_mac_address は、`wolfSSL_RA6M3G`プロジェクト内の RA configuration
で定義されているデフォルトのMACアドレスです。クライアントのwolfssl_thread_entry.h は
ターゲットのサーバーのSERVER_IP と DEFAULT_PORTの定義を持ちます。それらはご使用のサーバーの
の設定に応じて変更してください。
## ビルドと実行
### 各プロジェクトをビルド
各プロジェクトで右クリックし、ビルドを選択
### 暗号テストとベンチマークを実行
1.) プロジェクト名を選択し、右クリック\
2.) `デバック` → `Renesas GDB Hardware Debugging`\
3.) `J-Link ARM`を選択し、OK をクリック\
4.) `R7FA6M3AH`を選択し、OK をクリック
### wolfSSL TLS サンプルサーバーを実行
1.) プロジェクト名を選択し、右クリック\
2.) `デバック` → `Renesas GDB Hardware Debugging`\
3.) `J-Link ARM`を選択し、OK をクリック\
4.) `R7FA6M3AH`を選択し、OK をクリック\
5.)以下のサンプルのクライアントプログラムを実行
```
./examples/client/client -v 4 -h "ucIPAddress" -p 11111 -A ./certs/1024/ca-cert.pem
```
**NOTE:** "ucIPAddress" はデフォルトでは "192.168.1.241" (参照: wolfssl_thread_entry.h)
### wolfSSL TLS サンプルクライアントを実行
1.)以下のサンプルのサーバープログラムを実行
```
./examples/server/server -b -d -p 11111 -c ./certs/1024/server-cert.pem -k ./certs/1024/server-key.pem
```
TLS 1.3 で接続する際には、引数に "-v 4" を追加します。
```
./examples/server/server -v 4 -b -d -p 11111 -c ./certs/1024/server-cert.pem -k ./certs/1024/server-key.pem
```
**NOTE:** wolfssl_thread_entry.h中にデフォルトのポート番号 11111 定義(DEFAULT_PORT)
もし、DEFAULT_PORTを変更している場合、、上記のコマンドの "-p" の値は対応するポート番号に要変更
2.) プロジェクト名を選択し、右クリック\
3.) `デバック` → `Renesas GDB Hardware Debugging`\
4.) `J-Link ARM`を選択し、OK をクリック\
5.) `R7FA6M3AH`を選択し、OK をクリック
## トラブルシューティング
+ サンプルのクライアント・サーバープログラムは、wolfSSL のルートディレクトリから実行する必要があります。
+ user_settings.h の #define DEBUG_WOLFSSL を有効にすることで、デバックメッセージを\
`Renesas Virtual Debug Console`へ出力します。
+ プロジェクトのビルドでリンクエラーが出た場合、リビルドしリフレッシュすることで解決することがあります。
[Support Forum](https://www.wolfssl.com/forums/)
Support Email: support@wolfssl.com
## 参考リンク
[wolfSSL Website](https://www.wolfssl.com/)
[wolfSSL Wiki](https://github.com/wolfSSL/wolfssl/wiki)
[wolfSSL Manual](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-toc.html)
[wolfSSL API Reference](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-17-wolfssl-api-reference.html)
[wolfCrypt API Reference](https://wolfssl.com/wolfSSL/Docs-wolfssl-manual-18-wolfcrypt-api-reference.html)
[TLS 1.3](https://www.wolfssl.com/docs/tls13/)

View File

@@ -95,7 +95,7 @@ void wolfssl_thread_entry(void *pvParameters) {
wolfSSL_Init(); wolfSSL_Init();
/* Create and initialize WOLFSSL_CTX */ /* Create and initialize WOLFSSL_CTX */
ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method()); ctx = wolfSSL_CTX_new(wolfSSLv23_client_method_ex((void *)NULL));
if (ctx == NULL) { if (ctx == NULL) {
printf("Error: wolfSSL_CTX_new.\n"); printf("Error: wolfSSL_CTX_new.\n");
util_inf_loop(xClientSocket, ctx, ssl); util_inf_loop(xClientSocket, ctx, ssl);

View File

@@ -24,11 +24,12 @@
#include <errno.h> #include <errno.h>
#include <wolfssl/certs_test.h> #include <wolfssl/certs_test.h>
extern uint8_t g_ether0_mac_address[6];
static const byte ucIPAddress[4] = { 192, 168, 1, 241 }; static const byte ucIPAddress[4] = { 192, 168, 1, 241 };
static const byte ucNetMask[4] = { 255, 255, 255, 0 }; static const byte ucNetMask[4] = { 255, 255, 255, 0 };
static const byte ucGatewayAddress[4] = { 192, 168, 1, 1 }; static const byte ucGatewayAddress[4] = { 192, 168, 1, 1 };
static const byte ucDNSServerAddress[4] = { 192, 168, 1, 1 }; static const byte ucDNSServerAddress[4] = { 192, 168, 1, 1 };
static const byte g_ether0_mac_address[6] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55 };
/* Client connects to the server with these details. */ /* Client connects to the server with these details. */
#define SERVER_IP "192.168.1.240" #define SERVER_IP "192.168.1.240"

View File

@@ -21,10 +21,16 @@
#ifndef USER_SETTINGS_H_ #ifndef USER_SETTINGS_H_
#define USER_SETTINGS_H_ #define USER_SETTINGS_H_
/* Temporary defines. Not suitable for production. */ /* Temporary defines. Not suitable for production. */
#define WOLFSSL_GENSEED_FORTEST /* Warning: define your own seed gen */ #define WOLFSSL_GENSEED_FORTEST /* Warning: define your own seed gen */
/* End temporary defines */ /* End temporary defines */
/* TLS 1.3 */
#define WOLFSSL_TLS13
#define HAVE_HKDF
#define WC_RSA_PSS
/* Operating Environment and Threading */ /* Operating Environment and Threading */
#define FREERTOS #define FREERTOS
#define FREERTOS_TCP #define FREERTOS_TCP
@@ -73,5 +79,6 @@
void wolfssl_thread_entry(void *pvParameters); void wolfssl_thread_entry(void *pvParameters);
extern void initialise_monitor_handles(void); extern void initialise_monitor_handles(void);
int strncasecmp(const char *s1, const char * s2, unsigned int sz);
#endif /* USER_SETTINGS_H_ */ #endif /* USER_SETTINGS_H_ */

View File

@@ -31,3 +31,6 @@ EXTRA_DIST+= IDE/Renesas/e2studio/RA6M3/wolfssl/configuration.xml
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M3/README.md EXTRA_DIST+= IDE/Renesas/e2studio/RA6M3/README.md
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M3G/README.md EXTRA_DIST+= IDE/Renesas/e2studio/RA6M3G/README.md
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M3/README_APRA6M_en.md
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M3/README_APRA6M_jp.md

View File

@@ -96,7 +96,7 @@ void wolfssl_thread_entry(void *pvParameters) {
configASSERT(xConnectedSocket != FREERTOS_INVALID_SOCKET); configASSERT(xConnectedSocket != FREERTOS_INVALID_SOCKET);
/* Create WOLFSSL_CTX object */ /* Create WOLFSSL_CTX object */
ctx = wolfSSL_CTX_new(wolfTLSv1_2_server_method()); ctx = wolfSSL_CTX_new(wolfSSLv23_server_method_ex((void *)NULL));
/* Load server certificates into WOLFSSL_CTX */ /* Load server certificates into WOLFSSL_CTX */
if (ctx == NULL) { if (ctx == NULL) {

View File

@@ -23,11 +23,12 @@
#include <wolfssl/certs_test.h> #include <wolfssl/certs_test.h>
extern uint8_t g_ether0_mac_address[6];
static const byte ucIPAddress[4] = { 192, 168, 1, 241 }; static const byte ucIPAddress[4] = { 192, 168, 1, 241 };
static const byte ucNetMask[4] = { 255, 255, 255, 0 }; static const byte ucNetMask[4] = { 255, 255, 255, 0 };
static const byte ucGatewayAddress[4] = { 192, 168, 1, 1 }; static const byte ucGatewayAddress[4] = { 192, 168, 1, 1 };
static const byte ucDNSServerAddress[4] = { 192, 168, 1, 1 }; static const byte ucDNSServerAddress[4] = { 192, 168, 1, 1 };
static const byte g_ether0_mac_address[6] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55 };
/* Server Cert and Key */ /* Server Cert and Key */
#define CERT_BUF server_cert_der_1024 #define CERT_BUF server_cert_der_1024

View File

@@ -30,11 +30,6 @@
<nature>com.renesas.cdt.ra.contentgen.raNature</nature> <nature>com.renesas.cdt.ra.contentgen.raNature</nature>
</natures> </natures>
<linkedResources> <linkedResources>
<link>
<name>src/bio.c</name>
<type>1</type>
<locationURI>PARENT-5-PROJECT_LOC/src/bio.c</locationURI>
</link>
<link> <link>
<name>src/crl.c</name> <name>src/crl.c</name>
<type>1</type> <type>1</type>
@@ -195,11 +190,6 @@
<type>1</type> <type>1</type>
<locationURI>PARENT-5-PROJECT_LOC/wolfcrypt/src/error.c</locationURI> <locationURI>PARENT-5-PROJECT_LOC/wolfcrypt/src/error.c</locationURI>
</link> </link>
<link>
<name>wolfcrypt/evp.c</name>
<type>1</type>
<locationURI>PARENT-5-PROJECT_LOC/wolfcrypt/src/evp.c</locationURI>
</link>
<link> <link>
<name>wolfcrypt/fe_low_mem.c</name> <name>wolfcrypt/fe_low_mem.c</name>
<type>1</type> <type>1</type>
@@ -275,11 +265,6 @@
<type>1</type> <type>1</type>
<locationURI>PARENT-5-PROJECT_LOC/wolfcrypt/src/memory.c</locationURI> <locationURI>PARENT-5-PROJECT_LOC/wolfcrypt/src/memory.c</locationURI>
</link> </link>
<link>
<name>wolfcrypt/misc.c</name>
<type>1</type>
<locationURI>PARENT-5-PROJECT_LOC/wolfcrypt/src/misc.c</locationURI>
</link>
<link> <link>
<name>wolfcrypt/pkcs12.c</name> <name>wolfcrypt/pkcs12.c</name>
<type>1</type> <type>1</type>