mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-01 03:34:39 +02:00
Merge pull request #3372 from miyazakh/Renesas_APRA6M
added set up guide for APRA6M board
This commit is contained in:
@@ -4,7 +4,7 @@ wolfSSL for Renesas RA Evaluation Kit (EK-RA6M3G)
|
||||
## Description
|
||||
|
||||
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.
|
||||
|
||||
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.\
|
||||
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`\
|
||||
`Device: R7FA6M3AH3CFC`\
|
||||
`Toolchain: GCC ARM Embedded`\
|
||||
`FSP Version: 0.8.0`
|
||||
#### Selected software components
|
||||
|
||||
##### Selected software components
|
||||
|
||||
`Board Support Package Common Files v0.8.0`\
|
||||
`Arm CMSIS Version 5 - Core (M) v5.5.1`\
|
||||
`Amazon FreeRTOS v0.8.0`\
|
||||
`RA6M3G-EK Board Support Files 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`\
|
||||
`Amazon FreeRTOS - Memory Management - Heap 4 v0.8.0`\
|
||||
`r_ether to FreeRTOS+TCP Wrapper v0.8.0`\
|
||||
`Ethernet v0.8.0`\
|
||||
`Ethernet PHY v0.8.0`\
|
||||
`FreeRTOS+TCP v0.8.0`\
|
||||
`Amazon FreeRTOS - Buffer Allocation 2 v0.8.0`
|
||||
|Components|Version|
|
||||
|:--|:--|
|
||||
|Board Support Package Common Files|v0.8.0`|
|
||||
|Arm CMSIS Version 5 - Core (M)|v5.5.1|
|
||||
|Amazon FreeRTOS|v0.8.0|
|
||||
|RA6M3G-EK Board Support Files|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|
|
||||
|Amazon FreeRTOS - Memory Management - Heap 4|v0.8.0|
|
||||
|r_ether to FreeRTOS+TCP Wrapper|v0.8.0|
|
||||
|Ethernet|v0.8.0|
|
||||
|Ethernet PHY|v0.8.0|
|
||||
|FreeRTOS+TCP|v0.8.0|
|
||||
|Amazon FreeRTOS - Buffer Allocation 2|v0.8.0|
|
||||
|
||||
|
||||
## 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.
|
||||
|
||||
1.) Create a 'dummy' Renesas RA C Library Project.
|
||||
+ Click File->New->`RA C/C++ Project`
|
||||
+ Click `Renesas RA C Library Project`. Click Next
|
||||
+ Enter `dummy_library` as the project name. Click Next.
|
||||
+ Under `Board: Custom User Board`, select `EK-RA6M3G`.
|
||||
+ Under `RTOS: No RTOS`, select `Amazon FreeRTOS`.
|
||||
+ Click Next. Select `Amazon FreeRTOS - Minimal - Static Allocation`
|
||||
+ Click Finish.
|
||||
|
||||
+ Click File->New->`RA C/C++ Project`
|
||||
+ Click `Renesas RA C Library Project`. Click Next
|
||||
+ Enter `dummy_library` as the project name. Click Next.
|
||||
+ Under `Board: Custom User Board`, select `EK-RA6M3G`.
|
||||
+ Under `RTOS: No RTOS`, select `Amazon FreeRTOS`.
|
||||
+ Click Next. Select `Amazon FreeRTOS - Minimal - Static Allocation`
|
||||
+ Click Finish.
|
||||
|
||||
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
|
||||
+ Enter `dummy_app` as the project name. Click Next.
|
||||
+ Under `RA library project`, select `dummy_library`.
|
||||
+ Click Finish.
|
||||
|
||||
+ Click File->New->`RA C/C++ Project`
|
||||
+ Click `Renesas RA C Project Using RA Library`. Click Next
|
||||
+ Enter `dummy_app` as the project name. Click Next.
|
||||
+ Under `RA library project`, select `dummy_library`.
|
||||
+ Click Finish.
|
||||
|
||||
3.) 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.
|
||||
|
||||
+ 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.
|
||||
|
||||
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.)
|
||||
+ Select and Copy the following folders/files inside dummy_library\
|
||||
` ra/`\
|
||||
` ra_gen/`\
|
||||
` ra_cfg/`\
|
||||
` script/`\
|
||||
` R7FA6M3AH3CFC.pincfg`\
|
||||
` RA6M3G-EK.pingcfg`
|
||||
+ Paste the copied folders/files into wolfSSL_RA6M3G
|
||||
+ The `dummy_library` project can now be deleted.
|
||||
+ 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.
|
||||
|
||||
+ 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/`\
|
||||
`R7FA6M3AH3CFC.pincfg`\
|
||||
`RA6M3G-EK.pingcfg`
|
||||
|
||||
+ Paste the copied folders/files into wolfSSL_RA6M3G
|
||||
+ The `dummy_library` project can now be deleted.
|
||||
+ 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/`\
|
||||
**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.
|
||||
|
||||
+ 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.
|
||||
|
||||
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.
|
||||
|
||||
### 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.\
|
||||
@@ -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.
|
||||
|
||||
```
|
||||
./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)
|
||||
|
||||
### Run the wolfSSL TLS Client Example.
|
||||
|
||||
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.\
|
||||
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
|
||||
+ 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\
|
||||
+ 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.
|
||||
|
||||
+ 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/)
|
||||
|
198
IDE/Renesas/e2studio/RA6M3/README_APRA6M_en.md
Normal file
198
IDE/Renesas/e2studio/RA6M3/README_APRA6M_en.md
Normal 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/)
|
197
IDE/Renesas/e2studio/RA6M3/README_APRA6M_jp.md
Normal file
197
IDE/Renesas/e2studio/RA6M3/README_APRA6M_jp.md
Normal 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/)
|
@@ -95,7 +95,7 @@ void wolfssl_thread_entry(void *pvParameters) {
|
||||
wolfSSL_Init();
|
||||
|
||||
/* 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) {
|
||||
printf("Error: wolfSSL_CTX_new.\n");
|
||||
util_inf_loop(xClientSocket, ctx, ssl);
|
||||
|
@@ -24,11 +24,12 @@
|
||||
#include <errno.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 ucNetMask[4] = { 255, 255, 255, 0 };
|
||||
static const byte ucGatewayAddress[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. */
|
||||
#define SERVER_IP "192.168.1.240"
|
||||
|
@@ -21,10 +21,16 @@
|
||||
#ifndef USER_SETTINGS_H_
|
||||
#define USER_SETTINGS_H_
|
||||
|
||||
|
||||
/* Temporary defines. Not suitable for production. */
|
||||
#define WOLFSSL_GENSEED_FORTEST /* Warning: define your own seed gen */
|
||||
/* End temporary defines */
|
||||
|
||||
/* TLS 1.3 */
|
||||
#define WOLFSSL_TLS13
|
||||
#define HAVE_HKDF
|
||||
#define WC_RSA_PSS
|
||||
|
||||
/* Operating Environment and Threading */
|
||||
#define FREERTOS
|
||||
#define FREERTOS_TCP
|
||||
@@ -73,5 +79,6 @@
|
||||
|
||||
void wolfssl_thread_entry(void *pvParameters);
|
||||
extern void initialise_monitor_handles(void);
|
||||
int strncasecmp(const char *s1, const char * s2, unsigned int sz);
|
||||
|
||||
#endif /* USER_SETTINGS_H_ */
|
||||
|
@@ -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/RA6M3G/README.md
|
||||
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M3/README_APRA6M_en.md
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M3/README_APRA6M_jp.md
|
||||
|
@@ -96,7 +96,7 @@ void wolfssl_thread_entry(void *pvParameters) {
|
||||
configASSERT(xConnectedSocket != FREERTOS_INVALID_SOCKET);
|
||||
|
||||
/* 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 */
|
||||
if (ctx == NULL) {
|
||||
|
@@ -23,11 +23,12 @@
|
||||
|
||||
#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 ucNetMask[4] = { 255, 255, 255, 0 };
|
||||
static const byte ucGatewayAddress[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 */
|
||||
#define CERT_BUF server_cert_der_1024
|
||||
|
@@ -30,11 +30,6 @@
|
||||
<nature>com.renesas.cdt.ra.contentgen.raNature</nature>
|
||||
</natures>
|
||||
<linkedResources>
|
||||
<link>
|
||||
<name>src/bio.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-5-PROJECT_LOC/src/bio.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/crl.c</name>
|
||||
<type>1</type>
|
||||
@@ -195,11 +190,6 @@
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-5-PROJECT_LOC/wolfcrypt/src/error.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>wolfcrypt/evp.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-5-PROJECT_LOC/wolfcrypt/src/evp.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>wolfcrypt/fe_low_mem.c</name>
|
||||
<type>1</type>
|
||||
@@ -275,11 +265,6 @@
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-5-PROJECT_LOC/wolfcrypt/src/memory.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>wolfcrypt/misc.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>PARENT-5-PROJECT_LOC/wolfcrypt/src/misc.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>wolfcrypt/pkcs12.c</name>
|
||||
<type>1</type>
|
||||
|
Reference in New Issue
Block a user